pullfrog 0.1.72 → 0.1.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -17639,12 +17639,12 @@ var require_lib = __commonJS({
17639
17639
  throw new Error("Client has already been disposed.");
17640
17640
  }
17641
17641
  const parsedUrl = new URL(requestUrl);
17642
- let info2 = this._prepareRequest(verb, parsedUrl, headers);
17642
+ let info3 = this._prepareRequest(verb, parsedUrl, headers);
17643
17643
  const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1;
17644
17644
  let numTries = 0;
17645
17645
  let response;
17646
17646
  do {
17647
- response = yield this.requestRaw(info2, data);
17647
+ response = yield this.requestRaw(info3, data);
17648
17648
  if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) {
17649
17649
  let authenticationHandler;
17650
17650
  for (const handler2 of this.handlers) {
@@ -17654,7 +17654,7 @@ var require_lib = __commonJS({
17654
17654
  }
17655
17655
  }
17656
17656
  if (authenticationHandler) {
17657
- return authenticationHandler.handleAuthentication(this, info2, data);
17657
+ return authenticationHandler.handleAuthentication(this, info3, data);
17658
17658
  } else {
17659
17659
  return response;
17660
17660
  }
@@ -17677,8 +17677,8 @@ var require_lib = __commonJS({
17677
17677
  }
17678
17678
  }
17679
17679
  }
17680
- info2 = this._prepareRequest(verb, parsedRedirectUrl, headers);
17681
- response = yield this.requestRaw(info2, data);
17680
+ info3 = this._prepareRequest(verb, parsedRedirectUrl, headers);
17681
+ response = yield this.requestRaw(info3, data);
17682
17682
  redirectsRemaining--;
17683
17683
  }
17684
17684
  if (!response.message.statusCode || !HttpResponseRetryCodes.includes(response.message.statusCode)) {
@@ -17707,7 +17707,7 @@ var require_lib = __commonJS({
17707
17707
  * @param info
17708
17708
  * @param data
17709
17709
  */
17710
- requestRaw(info2, data) {
17710
+ requestRaw(info3, data) {
17711
17711
  return __awaiter(this, void 0, void 0, function* () {
17712
17712
  return new Promise((resolve3, reject) => {
17713
17713
  function callbackForResult(err, res) {
@@ -17719,7 +17719,7 @@ var require_lib = __commonJS({
17719
17719
  resolve3(res);
17720
17720
  }
17721
17721
  }
17722
- this.requestRawWithCallback(info2, data, callbackForResult);
17722
+ this.requestRawWithCallback(info3, data, callbackForResult);
17723
17723
  });
17724
17724
  });
17725
17725
  }
@@ -17729,12 +17729,12 @@ var require_lib = __commonJS({
17729
17729
  * @param data
17730
17730
  * @param onResult
17731
17731
  */
17732
- requestRawWithCallback(info2, data, onResult) {
17732
+ requestRawWithCallback(info3, data, onResult) {
17733
17733
  if (typeof data === "string") {
17734
- if (!info2.options.headers) {
17735
- info2.options.headers = {};
17734
+ if (!info3.options.headers) {
17735
+ info3.options.headers = {};
17736
17736
  }
17737
- info2.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8");
17737
+ info3.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8");
17738
17738
  }
17739
17739
  let callbackCalled = false;
17740
17740
  function handleResult2(err, res) {
@@ -17743,7 +17743,7 @@ var require_lib = __commonJS({
17743
17743
  onResult(err, res);
17744
17744
  }
17745
17745
  }
17746
- const req = info2.httpModule.request(info2.options, (msg) => {
17746
+ const req = info3.httpModule.request(info3.options, (msg) => {
17747
17747
  const res = new HttpClientResponse(msg);
17748
17748
  handleResult2(void 0, res);
17749
17749
  });
@@ -17755,7 +17755,7 @@ var require_lib = __commonJS({
17755
17755
  if (socket) {
17756
17756
  socket.end();
17757
17757
  }
17758
- handleResult2(new Error(`Request timeout: ${info2.options.path}`));
17758
+ handleResult2(new Error(`Request timeout: ${info3.options.path}`));
17759
17759
  });
17760
17760
  req.on("error", function(err) {
17761
17761
  handleResult2(err);
@@ -17791,27 +17791,27 @@ var require_lib = __commonJS({
17791
17791
  return this._getProxyAgentDispatcher(parsedUrl, proxyUrl);
17792
17792
  }
17793
17793
  _prepareRequest(method, requestUrl, headers) {
17794
- const info2 = {};
17795
- info2.parsedUrl = requestUrl;
17796
- const usingSsl = info2.parsedUrl.protocol === "https:";
17797
- info2.httpModule = usingSsl ? https2 : http2;
17794
+ const info3 = {};
17795
+ info3.parsedUrl = requestUrl;
17796
+ const usingSsl = info3.parsedUrl.protocol === "https:";
17797
+ info3.httpModule = usingSsl ? https2 : http2;
17798
17798
  const defaultPort = usingSsl ? 443 : 80;
17799
- info2.options = {};
17800
- info2.options.host = info2.parsedUrl.hostname;
17801
- info2.options.port = info2.parsedUrl.port ? parseInt(info2.parsedUrl.port) : defaultPort;
17802
- info2.options.path = (info2.parsedUrl.pathname || "") + (info2.parsedUrl.search || "");
17803
- info2.options.method = method;
17804
- info2.options.headers = this._mergeHeaders(headers);
17799
+ info3.options = {};
17800
+ info3.options.host = info3.parsedUrl.hostname;
17801
+ info3.options.port = info3.parsedUrl.port ? parseInt(info3.parsedUrl.port) : defaultPort;
17802
+ info3.options.path = (info3.parsedUrl.pathname || "") + (info3.parsedUrl.search || "");
17803
+ info3.options.method = method;
17804
+ info3.options.headers = this._mergeHeaders(headers);
17805
17805
  if (this.userAgent != null) {
17806
- info2.options.headers["user-agent"] = this.userAgent;
17806
+ info3.options.headers["user-agent"] = this.userAgent;
17807
17807
  }
17808
- info2.options.agent = this._getAgent(info2.parsedUrl);
17808
+ info3.options.agent = this._getAgent(info3.parsedUrl);
17809
17809
  if (this.handlers) {
17810
17810
  for (const handler2 of this.handlers) {
17811
- handler2.prepareRequest(info2.options);
17811
+ handler2.prepareRequest(info3.options);
17812
17812
  }
17813
17813
  }
17814
- return info2;
17814
+ return info3;
17815
17815
  }
17816
17816
  _mergeHeaders(headers) {
17817
17817
  if (this.requestOptions && this.requestOptions.headers) {
@@ -19793,18 +19793,18 @@ Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);
19793
19793
  (0, command_1.issueCommand)("error", (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);
19794
19794
  }
19795
19795
  exports.error = error62;
19796
- function warning3(message, properties = {}) {
19796
+ function warning4(message, properties = {}) {
19797
19797
  (0, command_1.issueCommand)("warning", (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);
19798
19798
  }
19799
- exports.warning = warning3;
19799
+ exports.warning = warning4;
19800
19800
  function notice(message, properties = {}) {
19801
19801
  (0, command_1.issueCommand)("notice", (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);
19802
19802
  }
19803
19803
  exports.notice = notice;
19804
- function info2(message) {
19804
+ function info3(message) {
19805
19805
  process.stdout.write(message + os2.EOL);
19806
19806
  }
19807
- exports.info = info2;
19807
+ exports.info = info3;
19808
19808
  function startGroup3(name) {
19809
19809
  (0, command_1.issue)("group", name);
19810
19810
  }
@@ -19834,10 +19834,10 @@ Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);
19834
19834
  (0, command_1.issueCommand)("save-state", { name }, (0, utils_1.toCommandValue)(value2));
19835
19835
  }
19836
19836
  exports.saveState = saveState3;
19837
- function getState(name) {
19837
+ function getState2(name) {
19838
19838
  return process.env[`STATE_${name}`] || "";
19839
19839
  }
19840
- exports.getState = getState;
19840
+ exports.getState = getState2;
19841
19841
  function getIDToken2(aud) {
19842
19842
  return __awaiter(this, void 0, void 0, function* () {
19843
19843
  return yield oidc_utils_1.OidcClient.getIDToken(aud);
@@ -27621,11 +27621,11 @@ var require_mode = __commonJS({
27621
27621
  var require_isexe = __commonJS({
27622
27622
  "node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js"(exports, module) {
27623
27623
  var fs5 = __require("fs");
27624
- var core11;
27624
+ var core12;
27625
27625
  if (process.platform === "win32" || global.TESTING_WINDOWS) {
27626
- core11 = require_windows();
27626
+ core12 = require_windows();
27627
27627
  } else {
27628
- core11 = require_mode();
27628
+ core12 = require_mode();
27629
27629
  }
27630
27630
  module.exports = isexe;
27631
27631
  isexe.sync = sync;
@@ -27648,7 +27648,7 @@ var require_isexe = __commonJS({
27648
27648
  });
27649
27649
  });
27650
27650
  }
27651
- core11(path4, options || {}, function(er, is) {
27651
+ core12(path4, options || {}, function(er, is) {
27652
27652
  if (er) {
27653
27653
  if (er.code === "EACCES" || options && options.ignoreErrors) {
27654
27654
  er = null;
@@ -27660,7 +27660,7 @@ var require_isexe = __commonJS({
27660
27660
  }
27661
27661
  function sync(path4, options) {
27662
27662
  try {
27663
- return core11.sync(path4, options || {});
27663
+ return core12.sync(path4, options || {});
27664
27664
  } catch (er) {
27665
27665
  if (options && options.ignoreErrors || er.code === "EACCES") {
27666
27666
  return false;
@@ -38449,8 +38449,8 @@ var require_socks5_proxy_agent = __commonJS({
38449
38449
  const timeout = setTimeout(() => {
38450
38450
  reject(new Error("SOCKS5 connection timeout"));
38451
38451
  }, 5e3);
38452
- const onConnected = (info2) => {
38453
- debug3("SOCKS5 tunnel established to", targetHost, targetPort, "via", info2);
38452
+ const onConnected = (info3) => {
38453
+ debug3("SOCKS5 tunnel established to", targetHost, targetPort, "via", info3);
38454
38454
  clearTimeout(timeout);
38455
38455
  socks5Client.removeListener("error", onError);
38456
38456
  resolve3();
@@ -80800,7 +80800,7 @@ var require_core3 = __commonJS({
80800
80800
  Object.defineProperty(exports, "__esModule", { value: true });
80801
80801
  var id_1 = require_id();
80802
80802
  var ref_1 = require_ref();
80803
- var core11 = [
80803
+ var core12 = [
80804
80804
  "$schema",
80805
80805
  "$id",
80806
80806
  "$defs",
@@ -80810,7 +80810,7 @@ var require_core3 = __commonJS({
80810
80810
  id_1.default,
80811
80811
  ref_1.default
80812
80812
  ];
80813
- exports.default = core11;
80813
+ exports.default = core12;
80814
80814
  }
80815
80815
  });
80816
80816
 
@@ -109795,7 +109795,8 @@ var import_semver = __toESM(require_semver2(), 1);
109795
109795
  // package.json
109796
109796
  var package_default = {
109797
109797
  name: "pullfrog",
109798
- version: "0.1.72",
109798
+ version: "0.1.73",
109799
+ cliContractVersion: "1",
109799
109800
  type: "module",
109800
109801
  bin: {
109801
109802
  pullfrog: "dist/cli.mjs",
@@ -109861,7 +109862,8 @@ var package_default = {
109861
109862
  typescript: "^5.9.3",
109862
109863
  undici: "^7.22.0",
109863
109864
  vitest: "^4.0.17",
109864
- yaml: "^2.8.2"
109865
+ yaml: "^2.8.2",
109866
+ zod: "4.3.6"
109865
109867
  },
109866
109868
  repository: {
109867
109869
  type: "git",
@@ -111974,7 +111976,7 @@ var claude = agent({
111974
111976
  });
111975
111977
 
111976
111978
  // agents/codex.ts
111977
- var core2 = __toESM(require_core(), 1);
111979
+ var core3 = __toESM(require_core(), 1);
111978
111980
  import { existsSync as existsSync5, mkdirSync as mkdirSync6, readFileSync as readFileSync3, writeFileSync as writeFileSync5 } from "node:fs";
111979
111981
  import { join as join6 } from "node:path";
111980
111982
  import { performance as performance6 } from "node:perf_hooks";
@@ -112202,6 +112204,64 @@ function bootstrapPullfrogDataDir() {
112202
112204
  }
112203
112205
  }
112204
112206
 
112207
+ // utils/oauthWriteback.ts
112208
+ var core2 = __toESM(require_core(), 1);
112209
+
112210
+ // utils/apiUrl.ts
112211
+ function isLocalUrl(url4) {
112212
+ return url4.hostname === "localhost" || url4.hostname === "127.0.0.1";
112213
+ }
112214
+ function getApiUrl() {
112215
+ const raw2 = process.env.API_URL || "https://pullfrog.com";
112216
+ const parsed2 = new URL(raw2);
112217
+ if (parsed2.protocol !== "https:" && !isLocalUrl(parsed2)) {
112218
+ throw new Error(
112219
+ `API_URL must use https:// (got ${parsed2.protocol}). only localhost is exempt.`
112220
+ );
112221
+ }
112222
+ log.debug(`resolved API_URL: ${raw2}`);
112223
+ return raw2;
112224
+ }
112225
+ function isLocalApiUrl() {
112226
+ try {
112227
+ return isLocalUrl(new URL(getApiUrl()));
112228
+ } catch {
112229
+ return false;
112230
+ }
112231
+ }
112232
+
112233
+ // utils/apiFetch.ts
112234
+ async function apiFetch(options) {
112235
+ const apiUrl = getApiUrl();
112236
+ const url4 = new URL(options.path, apiUrl);
112237
+ const bypassSecret = process.env.VERCEL_AUTOMATION_BYPASS_SECRET;
112238
+ if (bypassSecret) {
112239
+ url4.searchParams.set("x-vercel-protection-bypass", bypassSecret);
112240
+ }
112241
+ const headers = {
112242
+ ...options.headers
112243
+ };
112244
+ if (bypassSecret) {
112245
+ headers["x-vercel-protection-bypass"] = bypassSecret;
112246
+ }
112247
+ if (!options.body) {
112248
+ for (const key of Object.keys(headers)) {
112249
+ if (key.toLowerCase() === "content-type") delete headers[key];
112250
+ }
112251
+ }
112252
+ log.debug(`api fetch: ${options.method ?? "GET"} ${url4.pathname}`);
112253
+ const init = {
112254
+ method: options.method ?? "GET",
112255
+ headers
112256
+ };
112257
+ if (options.body) init.body = options.body;
112258
+ if (options.signal) init.signal = options.signal;
112259
+ return fetch(url4.toString(), init);
112260
+ }
112261
+
112262
+ // utils/oauthWriteback.ts
112263
+ var OAUTH_WRITEBACK_STATE = "oauth_writeback";
112264
+
112205
112265
  // utils/secrets.ts
112206
112266
  var SENSITIVE_PATTERNS = [
112207
112267
  /_KEY$/i,
@@ -112770,8 +112830,8 @@ var codex = agent({
112770
112830
  effortRung: effort.rung && CODEX_EFFORTS.includes(effort.rung) ? effort.rung : void 0
112771
112831
  });
112772
112832
  if (codexHomeAuth) {
112773
- core2.saveState(
112774
- "oauth_writeback",
112833
+ core3.saveState(
112834
+ OAUTH_WRITEBACK_STATE,
112775
112835
  JSON.stringify({
112776
112836
  apiToken: ctx.apiToken,
112777
112837
  entries: [
@@ -112855,7 +112915,7 @@ var codex = agent({
112855
112915
  });
112856
112916
 
112857
112917
  // agents/opencode.ts
112858
- var core3 = __toESM(require_core(), 1);
112918
+ var core4 = __toESM(require_core(), 1);
112859
112919
  import { spawn as nodeSpawn2 } from "node:child_process";
112860
112920
  import { mkdirSync as mkdirSync7, writeFileSync as writeFileSync6 } from "node:fs";
112861
112921
  import { join as join7 } from "node:path";
@@ -119264,8 +119324,8 @@ var opencode = agent({
119264
119324
  });
119265
119325
  }
119266
119326
  if (writebacks.length > 0) {
119267
- core3.saveState(
119268
- "oauth_writeback",
119327
+ core4.saveState(
119328
+ OAUTH_WRITEBACK_STATE,
119269
119329
  JSON.stringify({ apiToken: ctx.apiToken, entries: writebacks })
119270
119330
  );
119271
119331
  }
@@ -125151,25 +125211,25 @@ var Protocol = class {
125151
125211
  });
125152
125212
  }
125153
125213
  _resetTimeout(messageId) {
125154
- const info2 = this._timeoutInfo.get(messageId);
125155
- if (!info2)
125214
+ const info3 = this._timeoutInfo.get(messageId);
125215
+ if (!info3)
125156
125216
  return false;
125157
- const totalElapsed = Date.now() - info2.startTime;
125158
- if (info2.maxTotalTimeout && totalElapsed >= info2.maxTotalTimeout) {
125217
+ const totalElapsed = Date.now() - info3.startTime;
125218
+ if (info3.maxTotalTimeout && totalElapsed >= info3.maxTotalTimeout) {
125159
125219
  this._timeoutInfo.delete(messageId);
125160
125220
  throw McpError.fromError(ErrorCode.RequestTimeout, "Maximum total timeout exceeded", {
125161
- maxTotalTimeout: info2.maxTotalTimeout,
125221
+ maxTotalTimeout: info3.maxTotalTimeout,
125162
125222
  totalElapsed
125163
125223
  });
125164
125224
  }
125165
- clearTimeout(info2.timeoutId);
125166
- info2.timeoutId = setTimeout(info2.onTimeout, info2.timeout);
125225
+ clearTimeout(info3.timeoutId);
125226
+ info3.timeoutId = setTimeout(info3.onTimeout, info3.timeout);
125167
125227
  return true;
125168
125228
  }
125169
125229
  _cleanupTimeout(messageId) {
125170
- const info2 = this._timeoutInfo.get(messageId);
125171
- if (info2) {
125172
- clearTimeout(info2.timeoutId);
125230
+ const info3 = this._timeoutInfo.get(messageId);
125231
+ if (info3) {
125232
+ clearTimeout(info3.timeoutId);
125173
125233
  this._timeoutInfo.delete(messageId);
125174
125234
  }
125175
125235
  }
@@ -125214,8 +125274,8 @@ var Protocol = class {
125214
125274
  this._progressHandlers.clear();
125215
125275
  this._taskProgressTokens.clear();
125216
125276
  this._pendingDebouncedNotifications.clear();
125217
- for (const info2 of this._timeoutInfo.values()) {
125218
- clearTimeout(info2.timeoutId);
125277
+ for (const info3 of this._timeoutInfo.values()) {
125278
+ clearTimeout(info3.timeoutId);
125219
125279
  }
125220
125280
  this._timeoutInfo.clear();
125221
125281
  for (const controller of this._requestHandlerAbortControllers.values()) {
@@ -135465,24 +135525,24 @@ var Protocol2 = class {
135465
135525
  });
135466
135526
  }
135467
135527
  _resetTimeout(messageId) {
135468
- const info2 = this._timeoutInfo.get(messageId);
135469
- if (!info2) return false;
135470
- const totalElapsed = Date.now() - info2.startTime;
135471
- if (info2.maxTotalTimeout && totalElapsed >= info2.maxTotalTimeout) {
135528
+ const info3 = this._timeoutInfo.get(messageId);
135529
+ if (!info3) return false;
135530
+ const totalElapsed = Date.now() - info3.startTime;
135531
+ if (info3.maxTotalTimeout && totalElapsed >= info3.maxTotalTimeout) {
135472
135532
  this._timeoutInfo.delete(messageId);
135473
135533
  throw new SdkError(SdkErrorCode.RequestTimeout, "Maximum total timeout exceeded", {
135474
- maxTotalTimeout: info2.maxTotalTimeout,
135534
+ maxTotalTimeout: info3.maxTotalTimeout,
135475
135535
  totalElapsed
135476
135536
  });
135477
135537
  }
135478
- clearTimeout(info2.timeoutId);
135479
- info2.timeoutId = setTimeout(info2.onTimeout, info2.timeout);
135538
+ clearTimeout(info3.timeoutId);
135539
+ info3.timeoutId = setTimeout(info3.onTimeout, info3.timeout);
135480
135540
  return true;
135481
135541
  }
135482
135542
  _cleanupTimeout(messageId) {
135483
- const info2 = this._timeoutInfo.get(messageId);
135484
- if (info2) {
135485
- clearTimeout(info2.timeoutId);
135543
+ const info3 = this._timeoutInfo.get(messageId);
135544
+ if (info3) {
135545
+ clearTimeout(info3.timeoutId);
135486
135546
  this._timeoutInfo.delete(messageId);
135487
135547
  }
135488
135548
  }
@@ -135527,7 +135587,7 @@ var Protocol2 = class {
135527
135587
  this._responseHandlers = /* @__PURE__ */ new Map();
135528
135588
  this._progressHandlers.clear();
135529
135589
  this._pendingDebouncedNotifications.clear();
135530
- for (const info2 of this._timeoutInfo.values()) clearTimeout(info2.timeoutId);
135590
+ for (const info3 of this._timeoutInfo.values()) clearTimeout(info3.timeoutId);
135531
135591
  this._timeoutInfo.clear();
135532
135592
  const requestHandlerAbortControllers = this._requestHandlerAbortControllers;
135533
135593
  this._requestHandlerAbortControllers = /* @__PURE__ */ new Map();
@@ -136176,7 +136236,7 @@ function validateToolName(name) {
136176
136236
  function issueToolNameWarning(name, warnings) {
136177
136237
  if (warnings.length > 0) {
136178
136238
  console.warn(`Tool name validation warning for "${name}":`);
136179
- for (const warning3 of warnings) console.warn(` - ${warning3}`);
136239
+ for (const warning4 of warnings) console.warn(` - ${warning4}`);
136180
136240
  console.warn("Tool registration will proceed, but this may cause compatibility issues.");
136181
136241
  console.warn("Consider updating the tool name to conform to the MCP tool naming standard.");
136182
136242
  console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.");
@@ -140132,7 +140192,7 @@ var require_core$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
140132
140192
  Object.defineProperty(exports, "__esModule", { value: true });
140133
140193
  const id_1 = require_id2();
140134
140194
  const ref_1 = require_ref2();
140135
- const core11 = [
140195
+ const core12 = [
140136
140196
  "$schema",
140137
140197
  "$id",
140138
140198
  "$defs",
@@ -140142,7 +140202,7 @@ var require_core$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
140142
140202
  id_1.default,
140143
140203
  ref_1.default
140144
140204
  ];
140145
- exports.default = core11;
140205
+ exports.default = core12;
140146
140206
  }));
140147
140207
  var require_limitNumber2 = /* @__PURE__ */ __commonJSMin(((exports) => {
140148
140208
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -142280,7 +142340,7 @@ var require_json_schema_2019_09 = /* @__PURE__ */ __commonJSMin(((exports) => {
142280
142340
  const metaSchema = require_schema$1();
142281
142341
  const applicator = require_applicator$1();
142282
142342
  const content = require_content$1();
142283
- const core11 = require_core$1();
142343
+ const core12 = require_core$1();
142284
142344
  const format2 = require_format3();
142285
142345
  const metadata = require_meta_data$1();
142286
142346
  const validation = require_validation$1();
@@ -142290,7 +142350,7 @@ var require_json_schema_2019_09 = /* @__PURE__ */ __commonJSMin(((exports) => {
142290
142350
  metaSchema,
142291
142351
  applicator,
142292
142352
  content,
142293
- core11,
142353
+ core12,
142294
142354
  with$data(this, format2),
142295
142355
  metadata,
142296
142356
  with$data(this, validation)
@@ -142730,7 +142790,7 @@ var require_json_schema_2020_12 = /* @__PURE__ */ __commonJSMin(((exports) => {
142730
142790
  const applicator = require_applicator2();
142731
142791
  const unevaluated = require_unevaluated();
142732
142792
  const content = require_content();
142733
- const core11 = require_core4();
142793
+ const core12 = require_core4();
142734
142794
  const format2 = require_format_annotation();
142735
142795
  const metadata = require_meta_data();
142736
142796
  const validation = require_validation2();
@@ -142741,7 +142801,7 @@ var require_json_schema_2020_12 = /* @__PURE__ */ __commonJSMin(((exports) => {
142741
142801
  applicator,
142742
142802
  unevaluated,
142743
142803
  content,
142744
- core11,
142804
+ core12,
142745
142805
  with$data(this, format2),
142746
142806
  metadata,
142747
142807
  with$data(this, validation)
@@ -149606,24 +149666,24 @@ var Protocol3 = class {
149606
149666
  });
149607
149667
  }
149608
149668
  _resetTimeout(messageId) {
149609
- const info2 = this._timeoutInfo.get(messageId);
149610
- if (!info2) return false;
149611
- const totalElapsed = Date.now() - info2.startTime;
149612
- if (info2.maxTotalTimeout && totalElapsed >= info2.maxTotalTimeout) {
149669
+ const info3 = this._timeoutInfo.get(messageId);
149670
+ if (!info3) return false;
149671
+ const totalElapsed = Date.now() - info3.startTime;
149672
+ if (info3.maxTotalTimeout && totalElapsed >= info3.maxTotalTimeout) {
149613
149673
  this._timeoutInfo.delete(messageId);
149614
149674
  throw new SdkError2(SdkErrorCode2.RequestTimeout, "Maximum total timeout exceeded", {
149615
- maxTotalTimeout: info2.maxTotalTimeout,
149675
+ maxTotalTimeout: info3.maxTotalTimeout,
149616
149676
  totalElapsed
149617
149677
  });
149618
149678
  }
149619
- clearTimeout(info2.timeoutId);
149620
- info2.timeoutId = setTimeout(info2.onTimeout, info2.timeout);
149679
+ clearTimeout(info3.timeoutId);
149680
+ info3.timeoutId = setTimeout(info3.onTimeout, info3.timeout);
149621
149681
  return true;
149622
149682
  }
149623
149683
  _cleanupTimeout(messageId) {
149624
- const info2 = this._timeoutInfo.get(messageId);
149625
- if (info2) {
149626
- clearTimeout(info2.timeoutId);
149684
+ const info3 = this._timeoutInfo.get(messageId);
149685
+ if (info3) {
149686
+ clearTimeout(info3.timeoutId);
149627
149687
  this._timeoutInfo.delete(messageId);
149628
149688
  }
149629
149689
  }
@@ -149668,7 +149728,7 @@ var Protocol3 = class {
149668
149728
  this._responseHandlers = /* @__PURE__ */ new Map();
149669
149729
  this._progressHandlers.clear();
149670
149730
  this._pendingDebouncedNotifications.clear();
149671
- for (const info2 of this._timeoutInfo.values()) clearTimeout(info2.timeoutId);
149731
+ for (const info3 of this._timeoutInfo.values()) clearTimeout(info3.timeoutId);
149672
149732
  this._timeoutInfo.clear();
149673
149733
  const requestHandlerAbortControllers = this._requestHandlerAbortControllers;
149674
149734
  this._requestHandlerAbortControllers = /* @__PURE__ */ new Map();
@@ -154183,7 +154243,7 @@ var require_core$22 = /* @__PURE__ */ __commonJSMin2(((exports) => {
154183
154243
  Object.defineProperty(exports, "__esModule", { value: true });
154184
154244
  const id_1 = require_id3();
154185
154245
  const ref_1 = require_ref3();
154186
- const core11 = [
154246
+ const core12 = [
154187
154247
  "$schema",
154188
154248
  "$id",
154189
154249
  "$defs",
@@ -154193,7 +154253,7 @@ var require_core$22 = /* @__PURE__ */ __commonJSMin2(((exports) => {
154193
154253
  id_1.default,
154194
154254
  ref_1.default
154195
154255
  ];
154196
- exports.default = core11;
154256
+ exports.default = core12;
154197
154257
  }));
154198
154258
  var require_limitNumber3 = /* @__PURE__ */ __commonJSMin2(((exports) => {
154199
154259
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -156331,7 +156391,7 @@ var require_json_schema_2019_092 = /* @__PURE__ */ __commonJSMin2(((exports) =>
156331
156391
  const metaSchema = require_schema$12();
156332
156392
  const applicator = require_applicator$12();
156333
156393
  const content = require_content$12();
156334
- const core11 = require_core$12();
156394
+ const core12 = require_core$12();
156335
156395
  const format2 = require_format4();
156336
156396
  const metadata = require_meta_data$12();
156337
156397
  const validation = require_validation$12();
@@ -156341,7 +156401,7 @@ var require_json_schema_2019_092 = /* @__PURE__ */ __commonJSMin2(((exports) =>
156341
156401
  metaSchema,
156342
156402
  applicator,
156343
156403
  content,
156344
- core11,
156404
+ core12,
156345
156405
  with$data(this, format2),
156346
156406
  metadata,
156347
156407
  with$data(this, validation)
@@ -156781,7 +156841,7 @@ var require_json_schema_2020_122 = /* @__PURE__ */ __commonJSMin2(((exports) =>
156781
156841
  const applicator = require_applicator3();
156782
156842
  const unevaluated = require_unevaluated2();
156783
156843
  const content = require_content2();
156784
- const core11 = require_core5();
156844
+ const core12 = require_core5();
156785
156845
  const format2 = require_format_annotation2();
156786
156846
  const metadata = require_meta_data2();
156787
156847
  const validation = require_validation3();
@@ -156792,7 +156852,7 @@ var require_json_schema_2020_122 = /* @__PURE__ */ __commonJSMin2(((exports) =>
156792
156852
  applicator,
156793
156853
  unevaluated,
156794
156854
  content,
156795
- core11,
156855
+ core12,
156796
156856
  with$data(this, format2),
156797
156857
  metadata,
156798
156858
  with$data(this, validation)
@@ -186528,7 +186588,7 @@ this usually means your local branch has commits that were never pushed \u2014 s
186528
186588
  }
186529
186589
 
186530
186590
  // utils/github.ts
186531
- var core4 = __toESM(require_core(), 1);
186591
+ var core5 = __toESM(require_core(), 1);
186532
186592
  import { createSign } from "node:crypto";
186533
186593
  import { rename, writeFile } from "node:fs/promises";
186534
186594
  import { dirname as dirname3, join as join11 } from "node:path";
@@ -186703,8 +186763,8 @@ function throttling(octokit, octokitOptions) {
186703
186763
  "error",
186704
186764
  (e) => octokit.log.warn("Error in throttling-plugin limit handler", e)
186705
186765
  );
186706
- state.retryLimiter.on("failed", async function(error62, info2) {
186707
- const [state2, request2, options] = info2.args;
186766
+ state.retryLimiter.on("failed", async function(error62, info3) {
186767
+ const [state2, request2, options] = info3.args;
186708
186768
  const { pathname } = new URL(options.url, "http://github.test");
186709
186769
  const shouldRetryGraphQL = pathname.startsWith("/graphql") && error62.status !== 401;
186710
186770
  if (!(shouldRetryGraphQL || error62.status === 403 || error62.status === 429)) {
@@ -190733,58 +190793,6 @@ var Octokit2 = Octokit.plugin(requestLog, legacyRestEndpointMethods, paginateRes
190733
190793
  }
190734
190794
  );
190735
190795
 
190736
- // utils/apiUrl.ts
190737
- function isLocalUrl(url4) {
190738
- return url4.hostname === "localhost" || url4.hostname === "127.0.0.1";
190739
- }
190740
- function getApiUrl() {
190741
- const raw2 = process.env.API_URL || "https://pullfrog.com";
190742
- const parsed2 = new URL(raw2);
190743
- if (parsed2.protocol !== "https:" && !isLocalUrl(parsed2)) {
190744
- throw new Error(
190745
- `API_URL must use https:// (got ${parsed2.protocol}). only localhost is exempt.`
190746
- );
190747
- }
190748
- log.debug(`resolved API_URL: ${raw2}`);
190749
- return raw2;
190750
- }
190751
- function isLocalApiUrl() {
190752
- try {
190753
- return isLocalUrl(new URL(getApiUrl()));
190754
- } catch {
190755
- return false;
190756
- }
190757
- }
190758
-
190759
- // utils/apiFetch.ts
190760
- async function apiFetch(options) {
190761
- const apiUrl = getApiUrl();
190762
- const url4 = new URL(options.path, apiUrl);
190763
- const bypassSecret = process.env.VERCEL_AUTOMATION_BYPASS_SECRET;
190764
- if (bypassSecret) {
190765
- url4.searchParams.set("x-vercel-protection-bypass", bypassSecret);
190766
- }
190767
- const headers = {
190768
- ...options.headers
190769
- };
190770
- if (bypassSecret) {
190771
- headers["x-vercel-protection-bypass"] = bypassSecret;
190772
- }
190773
- if (!options.body) {
190774
- for (const key of Object.keys(headers)) {
190775
- if (key.toLowerCase() === "content-type") delete headers[key];
190776
- }
190777
- }
190778
- log.debug(`api fetch: ${options.method ?? "GET"} ${url4.pathname}`);
190779
- const init = {
190780
- method: options.method ?? "GET",
190781
- headers
190782
- };
190783
- if (options.body) init.body = options.body;
190784
- if (options.signal) init.signal = options.signal;
190785
- return fetch(url4.toString(), init);
190786
- }
190787
-
190788
190796
  // utils/github.ts
190789
190797
  var OIDC_AUDIENCE = "pullfrog-api";
190790
190798
  function isObject4(value2) {
@@ -190830,7 +190838,7 @@ async function fetchIdTokenFromStash(creds) {
190830
190838
  throw new Error("ID token response has no value field");
190831
190839
  }
190832
190840
  if (isGitHubActions) {
190833
- core4.setSecret(body.value);
190841
+ core5.setSecret(body.value);
190834
190842
  }
190835
190843
  return body.value;
190836
190844
  }
@@ -190843,7 +190851,7 @@ function translateIdTokenError(error62) {
190843
190851
  var mintIdToken = op(
190844
190852
  async () => {
190845
190853
  try {
190846
- return await core4.getIDToken(OIDC_AUDIENCE);
190854
+ return await core5.getIDToken(OIDC_AUDIENCE);
190847
190855
  } catch (error62) {
190848
190856
  throw translateIdTokenError(error62);
190849
190857
  }
@@ -192513,11 +192521,6 @@ function buildTrialDisclosure(owner) {
192513
192521
  }
192514
192522
  function buildPullfrogFooter(params) {
192515
192523
  const parts = [];
192516
- if (params.shaPinned) {
192517
- parts.push(
192518
- "\u26A0\uFE0F this action is pinned to a commit SHA, which [freezes the cleanup step](https://docs.pullfrog.com/versioning) \u2014 switch to `@v0` or keep the SHA fresh with Dependabot"
192519
- );
192520
- }
192521
192524
  if (params.customParts) {
192522
192525
  parts.push(...params.customParts);
192523
192526
  }
@@ -192702,7 +192705,6 @@ function buildCommentFooter(ctx, customParts) {
192702
192705
  fallbackFrom: ctx.toolState.modelFallback?.from,
192703
192706
  clamped: ctx.toolState.modelClamped,
192704
192707
  unselectedProxyDefault: ctx.toolState.unselectedProxyDefault,
192705
- shaPinned: ctx.toolState.shaPinned,
192706
192708
  oss: ctx.oss,
192707
192709
  owner: ctx.repo.owner
192708
192710
  });
@@ -193702,7 +193704,6 @@ async function createAndSubmitWithFooter(ctx, params, opts) {
193702
193704
  fallbackFrom: ctx.toolState.modelFallback?.from,
193703
193705
  clamped: ctx.toolState.modelClamped,
193704
193706
  unselectedProxyDefault: ctx.toolState.unselectedProxyDefault,
193705
- shaPinned: ctx.toolState.shaPinned,
193706
193707
  oss: ctx.oss,
193707
193708
  owner: ctx.repo.owner
193708
193709
  });
@@ -196464,7 +196465,6 @@ function buildPrBodyWithFooter(ctx, body) {
196464
196465
  fallbackFrom: ctx.toolState.modelFallback?.from,
196465
196466
  clamped: ctx.toolState.modelClamped,
196466
196467
  unselectedProxyDefault: ctx.toolState.unselectedProxyDefault,
196467
- shaPinned: ctx.toolState.shaPinned,
196468
196468
  oss: ctx.oss,
196469
196469
  owner: ctx.repo.owner
196470
196470
  });
@@ -197545,8 +197545,8 @@ function CheckoutRepoTool(ctx) {
197545
197545
  const state = ensureRepoState(ctx.toolState, { owner, name: repo, dir, access });
197546
197546
  const rc = resolveRepoCtx(ctx, repo);
197547
197547
  try {
197548
- const info2 = await rc.octokit.rest.repos.get({ owner, repo });
197549
- const defaultBranch = info2.data.default_branch;
197548
+ const info3 = await rc.octokit.rest.repos.get({ owner, repo });
197549
+ const defaultBranch = info3.data.default_branch;
197550
197550
  state.defaultBranch = defaultBranch;
197551
197551
  const url4 = `https://github.com/${owner}/${repo}.git`;
197552
197552
  $("git", ["init", "-q"], { cwd: dir });
@@ -199239,7 +199239,7 @@ function buildModelAccessError(input2) {
199239
199239
  }
199240
199240
 
199241
199241
  // utils/normalizeEnv.ts
199242
- var core5 = __toESM(require_core(), 1);
199242
+ var core6 = __toESM(require_core(), 1);
199243
199243
  function hasControlCharacter(value2) {
199244
199244
  return [...value2].some((ch) => {
199245
199245
  const code = ch.charCodeAt(0);
@@ -199265,7 +199265,7 @@ function sanitizeSecret(key, value2) {
199265
199265
  `\xBB stripped whitespace from ${key} (whitespace in secret values breaks GitHub Actions log masking)`
199266
199266
  );
199267
199267
  }
199268
- core5.setSecret(trimmed);
199268
+ core6.setSecret(trimmed);
199269
199269
  return trimmed;
199270
199270
  }
199271
199271
  function normalizeEnv() {
@@ -199309,7 +199309,7 @@ function normalizeEnv() {
199309
199309
  }
199310
199310
 
199311
199311
  // utils/overrides.ts
199312
- var core6 = __toESM(require_core(), 1);
199312
+ var core7 = __toESM(require_core(), 1);
199313
199313
  var DENIED_OVERRIDE_NAMES = /* @__PURE__ */ new Set([
199314
199314
  "GITHUB_TOKEN",
199315
199315
  "GH_TOKEN",
@@ -199355,7 +199355,7 @@ function applyOverrides(params) {
199355
199355
  denied.push(key);
199356
199356
  continue;
199357
199357
  }
199358
- if (value2.length > 0) core6.setSecret(value2);
199358
+ if (value2.length > 0) core7.setSecret(value2);
199359
199359
  params.env[key] = value2;
199360
199360
  applied.push(key);
199361
199361
  }
@@ -199364,7 +199364,7 @@ function applyOverrides(params) {
199364
199364
  }
199365
199365
 
199366
199366
  // utils/payload.ts
199367
- var core7 = __toESM(require_core(), 1);
199367
+ var core8 = __toESM(require_core(), 1);
199368
199368
  import { readFileSync as readFileSync7 } from "node:fs";
199369
199369
  import { isAbsolute as isAbsolute2, resolve as resolve2 } from "node:path";
199370
199370
 
@@ -199498,8 +199498,8 @@ function assertDispatchPayloadIntact(promptInput) {
199498
199498
  );
199499
199499
  }
199500
199500
  function resolvePromptInput() {
199501
- const promptInput = core7.getInput("prompt");
199502
- const promptFile = core7.getInput("prompt_file");
199501
+ const promptInput = core8.getInput("prompt");
199502
+ const promptFile = core8.getInput("prompt_file");
199503
199503
  if (promptInput && promptFile) {
199504
199504
  throw new Error("set exactly one of 'prompt' or 'prompt_file' inputs, not both.");
199505
199505
  }
@@ -199533,7 +199533,7 @@ function resolvePromptFile(input2) {
199533
199533
  }
199534
199534
  function warnIfDeprecatedStatusChecks(value2) {
199535
199535
  if (value2 !== void 0) {
199536
- core7.warning(
199536
+ core8.warning(
199537
199537
  "`status_checks` is deprecated. Both checks are now repository settings \u2014 open the Pullfrog console for this repo (Automations \u2192 Review PRs) and set them there, then remove `status_checks` from your workflow. It keeps working until you do."
199538
199538
  );
199539
199539
  }
@@ -199541,15 +199541,15 @@ function warnIfDeprecatedStatusChecks(value2) {
199541
199541
  }
199542
199542
  function resolveNonPromptInputs() {
199543
199543
  return Inputs.omit("prompt", "prompt_file").assert({
199544
- model: core7.getInput("model") || void 0,
199545
- effort: core7.getInput("effort") || void 0,
199546
- debug: core7.getInput("debug") || void 0,
199547
- timeout: core7.getInput("timeout") || void 0,
199548
- cwd: core7.getInput("cwd") || void 0,
199549
- push: core7.getInput("push") || void 0,
199550
- shell: core7.getInput("shell") || void 0,
199551
- status_checks: warnIfDeprecatedStatusChecks(core7.getInput("status_checks") || void 0),
199552
- progress_comments: core7.getInput("progress_comments") || void 0
199544
+ model: core8.getInput("model") || void 0,
199545
+ effort: core8.getInput("effort") || void 0,
199546
+ debug: core8.getInput("debug") || void 0,
199547
+ timeout: core8.getInput("timeout") || void 0,
199548
+ cwd: core8.getInput("cwd") || void 0,
199549
+ push: core8.getInput("push") || void 0,
199550
+ shell: core8.getInput("shell") || void 0,
199551
+ status_checks: warnIfDeprecatedStatusChecks(core8.getInput("status_checks") || void 0),
199552
+ progress_comments: core8.getInput("progress_comments") || void 0
199553
199553
  });
199554
199554
  }
199555
199555
  function resolvePayload(resolvedPromptInput, repoSettings) {
@@ -199619,7 +199619,7 @@ function resolvePayload(resolvedPromptInput, repoSettings) {
199619
199619
  };
199620
199620
  }
199621
199621
  function resolveOutputSchema() {
199622
- const raw2 = core7.getInput("output_schema");
199622
+ const raw2 = core8.getInput("output_schema");
199623
199623
  if (!raw2) return void 0;
199624
199624
  let parsed2;
199625
199625
  try {
@@ -199635,10 +199635,10 @@ function resolveOutputSchema() {
199635
199635
  }
199636
199636
 
199637
199637
  // utils/proxy.ts
199638
- var core9 = __toESM(require_core(), 1);
199638
+ var core10 = __toESM(require_core(), 1);
199639
199639
 
199640
199640
  // utils/token.ts
199641
- var core8 = __toESM(require_core(), 1);
199641
+ var core9 = __toESM(require_core(), 1);
199642
199642
  import assert2 from "node:assert/strict";
199643
199643
  var mcpTokenValue;
199644
199644
  var refreshMcpTokenFn;
@@ -199646,7 +199646,7 @@ function getMcpTokenRefresh() {
199646
199646
  return refreshMcpTokenFn;
199647
199647
  }
199648
199648
  function getJobToken() {
199649
- const inputToken = core8.getInput("token");
199649
+ const inputToken = core9.getInput("token");
199650
199650
  if (inputToken) {
199651
199651
  return inputToken;
199652
199652
  }
@@ -199662,7 +199662,7 @@ async function resolveTokens(params) {
199662
199662
  if (externalToken) {
199663
199663
  mcpTokenValue = externalToken;
199664
199664
  if (isGitHubActions) {
199665
- core8.setSecret(externalToken);
199665
+ core9.setSecret(externalToken);
199666
199666
  }
199667
199667
  log.info("\xBB using external GH_TOKEN for both git and MCP");
199668
199668
  return {
@@ -199686,7 +199686,7 @@ async function resolveTokens(params) {
199686
199686
  permissions: gitPermissions
199687
199687
  });
199688
199688
  if (isGitHubActions) {
199689
- core8.setSecret(gitToken);
199689
+ core9.setSecret(gitToken);
199690
199690
  }
199691
199691
  log.info(
199692
199692
  `\xBB acquired git token (${Object.entries(gitPermissions).map((e) => e.join(":")).join(", ")})`
@@ -199707,7 +199707,7 @@ async function resolveTokens(params) {
199707
199707
  permissions: mcpPermissions
199708
199708
  });
199709
199709
  if (isGitHubActions) {
199710
- core8.setSecret(mcpToken);
199710
+ core9.setSecret(mcpToken);
199711
199711
  }
199712
199712
  log.info(
199713
199713
  `\xBB acquired scoped MCP token (${Object.entries(mcpPermissions).map((e) => e.join(":")).join(", ")})`
@@ -199716,7 +199716,7 @@ async function resolveTokens(params) {
199716
199716
  let ghToken;
199717
199717
  if (ghPermissions) {
199718
199718
  ghToken = await acquireNewToken({ permissions: ghPermissions });
199719
- if (isGitHubActions) core8.setSecret(ghToken);
199719
+ if (isGitHubActions) core9.setSecret(ghToken);
199720
199720
  log.info(
199721
199721
  `\xBB acquired gh token mirroring ${params.authorPermission} (${formatPermissions(ghPermissions)})`
199722
199722
  );
@@ -199728,7 +199728,7 @@ async function resolveTokens(params) {
199728
199728
  xrepoGrant: params.xrepoGrant,
199729
199729
  permissions: { contents: "read" }
199730
199730
  });
199731
- if (isGitHubActions) core8.setSecret(readToken);
199731
+ if (isGitHubActions) core9.setSecret(readToken);
199732
199732
  log.info(`\xBB acquired cross-repo read token (contents:read, ${params.xrepo.read.length} repos)`);
199733
199733
  }
199734
199734
  mcpTokenValue = mcpToken;
@@ -199748,7 +199748,7 @@ async function resolveTokens(params) {
199748
199748
  oidc: params.oidc ?? void 0
199749
199749
  }).then((fresh) => {
199750
199750
  if (isGitHubActions) {
199751
- core8.setSecret(fresh);
199751
+ core9.setSecret(fresh);
199752
199752
  }
199753
199753
  mcpTokenValue = fresh;
199754
199754
  currentMcpToken = fresh;
@@ -199770,7 +199770,7 @@ async function resolveTokens(params) {
199770
199770
  permissions: gitPermissions,
199771
199771
  oidc: params.oidc ?? void 0
199772
199772
  }).then((fresh) => {
199773
- if (isGitHubActions) core8.setSecret(fresh);
199773
+ if (isGitHubActions) core9.setSecret(fresh);
199774
199774
  void revokeGitHubInstallationToken(currentGitToken);
199775
199775
  currentGitToken = fresh;
199776
199776
  log.warning("\xBB GitHub rejected the git token; re-acquired a fresh git token");
@@ -199788,7 +199788,7 @@ async function resolveTokens(params) {
199788
199788
  permissions: { contents: "read" },
199789
199789
  oidc: params.oidc ?? void 0
199790
199790
  }).then((fresh) => {
199791
- if (isGitHubActions) core8.setSecret(fresh);
199791
+ if (isGitHubActions) core9.setSecret(fresh);
199792
199792
  void revokeGitHubInstallationToken(read2);
199793
199793
  currentReadToken = fresh;
199794
199794
  log.warning("\xBB GitHub rejected the read token; re-acquired a fresh read token");
@@ -199882,7 +199882,6 @@ ${ctx.error}` : ctx.error;
199882
199882
  fallbackFrom: ctx.toolState.modelFallback?.from,
199883
199883
  clamped: ctx.toolState.modelClamped,
199884
199884
  unselectedProxyDefault: ctx.toolState.unselectedProxyDefault,
199885
- shaPinned: ctx.toolState.shaPinned,
199886
199885
  oss: ctx.toolState.oss,
199887
199886
  owner: repoContext.owner
199888
199887
  });
@@ -200003,7 +200002,7 @@ async function resolveProxyModel(ctx) {
200003
200002
  });
200004
200003
  if (!key) return;
200005
200004
  process.env.OPENROUTER_API_KEY = key;
200006
- core9.setSecret(key);
200005
+ core10.setSecret(key);
200007
200006
  ctx.payload.proxyModel = ctx.proxyModel;
200008
200007
  ctx.toolState.model = ctx.proxyModel;
200009
200008
  const label = ctx.oss ? "oss" : "router";
@@ -200081,7 +200080,7 @@ async function resolveTrialFallback(ctx) {
200081
200080
  });
200082
200081
  if (!key) return false;
200083
200082
  process.env.OPENROUTER_API_KEY = key;
200084
- core9.setSecret(key);
200083
+ core10.setSecret(key);
200085
200084
  ctx.payload.proxyModel = DEFAULT_PROXY_MODEL;
200086
200085
  ctx.toolState.model = DEFAULT_PROXY_MODEL;
200087
200086
  ctx.toolState.modelClamped = {
@@ -200317,23 +200316,11 @@ async function fetchRunContext(params) {
200317
200316
  }
200318
200317
 
200319
200318
  // utils/runContextData.ts
200320
- function isActionPinnedToSha() {
200321
- const ref = process.env.GITHUB_ACTION_REF;
200322
- return !!ref && /^[0-9a-f]{40}$/i.test(ref);
200323
- }
200324
- function warnIfPinnedToSha() {
200325
- if (isActionPinnedToSha()) {
200326
- log.warning(
200327
- `\xBB pinned to a commit SHA (${process.env.GITHUB_ACTION_REF}); the post-run cleanup step is frozen at that commit and won't receive fixes. keep the SHA fresh with Dependabot, or pin to \`pullfrog/pullfrog@v0\` if your org doesn't require full-SHA action pinning \u2014 see https://docs.pullfrog.com/versioning`
200328
- );
200329
- }
200330
- }
200331
200319
  async function resolveRunContextData(params) {
200332
200320
  const actionRef = process.env.GITHUB_ACTION_REF;
200333
200321
  log.info(
200334
200322
  `\xBB running Pullfrog v${package_default.version}${actionRef ? ` (ref: ${actionRef})` : ""}...`
200335
200323
  );
200336
- warnIfPinnedToSha();
200337
200324
  const repoContext = parseRepoContext();
200338
200325
  let oidcToken;
200339
200326
  try {
@@ -200767,7 +200754,7 @@ ${genericBody}`,
200767
200754
  }
200768
200755
 
200769
200756
  // utils/runLifecycle.ts
200770
- var core10 = __toESM(require_core(), 1);
200757
+ var core11 = __toESM(require_core(), 1);
200771
200758
 
200772
200759
  // utils/autoMerge.ts
200773
200760
  function hasBlockingHumanReview(reviews) {
@@ -201163,7 +201150,7 @@ async function finalizeSuccessRun(input2) {
201163
201150
  }
201164
201151
  if (input2.toolState.output) {
201165
201152
  log.info(`::pullfrog-output::${Buffer.from(input2.toolState.output).toString("base64")}`);
201166
- core10.setOutput("result", input2.toolState.output);
201153
+ core11.setOutput("result", input2.toolState.output);
201167
201154
  }
201168
201155
  if (input2.result.success) {
201169
201156
  await approveAfterFix(input2.toolContext).catch((error62) => {
@@ -201463,7 +201450,6 @@ async function main() {
201463
201450
  });
201464
201451
  toolState.model = payload.model;
201465
201452
  toolState.oss = runContext.oss;
201466
- toolState.shaPinned = isActionPinnedToSha();
201467
201453
  if (payload.event.issue_number !== void 0) {
201468
201454
  primaryRepoState(toolState).issueNumber = payload.event.issue_number;
201469
201455
  }