pullfrog 0.1.22 → 0.1.24
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/cli.mjs +28 -7
- package/dist/index.js +27 -6
- package/dist/internal.js +16 -1
- package/dist/models.d.ts +1 -0
- package/dist/toolState.d.ts +1 -0
- package/dist/utils/buildPullfrogFooter.d.ts +6 -0
- package/dist/utils/codexHome.d.ts +3 -2
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -101018,6 +101018,18 @@ var providers = {
|
|
|
101018
101018
|
}
|
|
101019
101019
|
}
|
|
101020
101020
|
}),
|
|
101021
|
+
"opencode-go": provider({
|
|
101022
|
+
displayName: "OpenCode Go",
|
|
101023
|
+
envVars: ["OPENCODE_API_KEY"],
|
|
101024
|
+
models: {
|
|
101025
|
+
"glm-5.1": {
|
|
101026
|
+
displayName: "GLM 5.1",
|
|
101027
|
+
resolve: "opencode-go/glm-5.1",
|
|
101028
|
+
openRouterResolve: "openrouter/z-ai/glm-5.1",
|
|
101029
|
+
preferred: true
|
|
101030
|
+
}
|
|
101031
|
+
}
|
|
101032
|
+
}),
|
|
101021
101033
|
bedrock: provider({
|
|
101022
101034
|
displayName: "Amazon Bedrock",
|
|
101023
101035
|
envVars: ["AWS_BEARER_TOKEN_BEDROCK", "AWS_REGION", "BEDROCK_MODEL_ID"],
|
|
@@ -101855,7 +101867,7 @@ var import_semver = __toESM(require_semver2(), 1);
|
|
|
101855
101867
|
// package.json
|
|
101856
101868
|
var package_default = {
|
|
101857
101869
|
name: "pullfrog",
|
|
101858
|
-
version: "0.1.
|
|
101870
|
+
version: "0.1.24",
|
|
101859
101871
|
type: "module",
|
|
101860
101872
|
bin: {
|
|
101861
101873
|
pullfrog: "dist/cli.mjs",
|
|
@@ -107617,6 +107629,7 @@ function installCodexAuth() {
|
|
|
107617
107629
|
mkdirSync5(opencodeDir, { recursive: true });
|
|
107618
107630
|
writeFileSync5(authPath, `${JSON.stringify(opencodeAuth, null, 2)}
|
|
107619
107631
|
`, { mode: 384 });
|
|
107632
|
+
process.env.XDG_DATA_HOME = xdgDataHome;
|
|
107620
107633
|
log.info(`\xBB installed Codex auth at ${authPath}`);
|
|
107621
107634
|
return {
|
|
107622
107635
|
authPath,
|
|
@@ -117134,6 +117147,9 @@ function formatModelLabel(params) {
|
|
|
117134
117147
|
// still render a friendly display name.
|
|
117135
117148
|
modelAliases.find((a) => a.resolve === params.model || a.openRouterResolve === params.model);
|
|
117136
117149
|
const displayName = alias?.displayName ?? params.model;
|
|
117150
|
+
if (params.oss) {
|
|
117151
|
+
return `\`${displayName}\` (free via [Pullfrog for OSS](https://pullfrog.com/for-oss))`;
|
|
117152
|
+
}
|
|
117137
117153
|
const base = alias?.isFree ? `\`${displayName}\` (free)` : `\`${displayName}\``;
|
|
117138
117154
|
if (!params.fallbackFrom) return base;
|
|
117139
117155
|
return `${base} (credentials for ${providerDisplayName(params.fallbackFrom)} not configured)`;
|
|
@@ -117155,7 +117171,7 @@ function buildPullfrogFooter(params) {
|
|
|
117155
117171
|
}
|
|
117156
117172
|
if (params.model) {
|
|
117157
117173
|
parts.push(
|
|
117158
|
-
`Using ${formatModelLabel({ model: params.model, fallbackFrom: params.fallbackFrom })}`
|
|
117174
|
+
`Using ${formatModelLabel({ model: params.model, fallbackFrom: params.fallbackFrom, oss: params.oss })}`
|
|
117159
117175
|
);
|
|
117160
117176
|
}
|
|
117161
117177
|
const allParts = [...parts, "[\u{1D54F}](https://x.com/pullfrogai)"];
|
|
@@ -117950,7 +117966,8 @@ function buildCommentFooter(ctx, customParts) {
|
|
|
117950
117966
|
} : void 0,
|
|
117951
117967
|
customParts,
|
|
117952
117968
|
model: ctx.toolState.model,
|
|
117953
|
-
fallbackFrom: ctx.toolState.modelFallback?.from
|
|
117969
|
+
fallbackFrom: ctx.toolState.modelFallback?.from,
|
|
117970
|
+
oss: ctx.oss
|
|
117954
117971
|
});
|
|
117955
117972
|
}
|
|
117956
117973
|
function buildImplementPlanLink(ctx, issueNumber, commentId) {
|
|
@@ -152818,7 +152835,8 @@ async function createAndSubmitWithFooter(ctx, params, opts) {
|
|
|
152818
152835
|
workflowRun: ctx.runId ? { owner: ctx.repo.owner, repo: ctx.repo.name, runId: ctx.runId, jobId: ctx.jobId } : void 0,
|
|
152819
152836
|
customParts,
|
|
152820
152837
|
model: ctx.toolState.model,
|
|
152821
|
-
fallbackFrom: ctx.toolState.modelFallback?.from
|
|
152838
|
+
fallbackFrom: ctx.toolState.modelFallback?.from,
|
|
152839
|
+
oss: ctx.oss
|
|
152822
152840
|
});
|
|
152823
152841
|
return await ctx.octokit.rest.pulls.submitReview({
|
|
152824
152842
|
owner: params.owner,
|
|
@@ -154242,7 +154260,8 @@ function buildPrBodyWithFooter(ctx, body) {
|
|
|
154242
154260
|
triggeredBy: true,
|
|
154243
154261
|
workflowRun: ctx.runId ? { owner: ctx.repo.owner, repo: ctx.repo.name, runId: ctx.runId, jobId: ctx.jobId } : void 0,
|
|
154244
154262
|
model: ctx.toolState.model,
|
|
154245
|
-
fallbackFrom: ctx.toolState.modelFallback?.from
|
|
154263
|
+
fallbackFrom: ctx.toolState.modelFallback?.from,
|
|
154264
|
+
oss: ctx.oss
|
|
154246
154265
|
});
|
|
154247
154266
|
const bodyWithoutFooter = stripExistingFooter(fixDoubleEscapedString(body));
|
|
154248
154267
|
return `${bodyWithoutFooter}${footer}`;
|
|
@@ -160768,7 +160787,8 @@ ${ctx.error}` : ctx.error;
|
|
|
160768
160787
|
workflowRun: runId ? { owner: repoContext.owner, repo: repoContext.name, runId } : void 0,
|
|
160769
160788
|
customParts,
|
|
160770
160789
|
model: ctx.toolState.model,
|
|
160771
|
-
fallbackFrom: ctx.toolState.modelFallback?.from
|
|
160790
|
+
fallbackFrom: ctx.toolState.modelFallback?.from,
|
|
160791
|
+
oss: ctx.toolState.oss
|
|
160772
160792
|
});
|
|
160773
160793
|
const body = `${formattedError}${footer}`;
|
|
160774
160794
|
const comment = ctx.toolState.progressComment;
|
|
@@ -161740,6 +161760,7 @@ async function main() {
|
|
|
161740
161760
|
}
|
|
161741
161761
|
const payload = resolvePayload(resolvedPromptInput, runContext.repoSettings);
|
|
161742
161762
|
toolState.model = payload.model;
|
|
161763
|
+
toolState.oss = runContext.oss;
|
|
161743
161764
|
if (payload.event.trigger === "pull_request_synchronize") {
|
|
161744
161765
|
toolState.beforeSha = payload.event.before_sha;
|
|
161745
161766
|
}
|
|
@@ -162984,7 +163005,7 @@ async function run2() {
|
|
|
162984
163005
|
}
|
|
162985
163006
|
|
|
162986
163007
|
// cli.ts
|
|
162987
|
-
var VERSION10 = "0.1.
|
|
163008
|
+
var VERSION10 = "0.1.24";
|
|
162988
163009
|
var bin = basename2(process.argv[1] || "");
|
|
162989
163010
|
var PROG = bin === "pf" || bin === "pullfrog" ? bin : "pullfrog";
|
|
162990
163011
|
var rawArgs = process.argv.slice(2);
|
package/dist/index.js
CHANGED
|
@@ -99218,6 +99218,18 @@ var providers = {
|
|
|
99218
99218
|
}
|
|
99219
99219
|
}
|
|
99220
99220
|
}),
|
|
99221
|
+
"opencode-go": provider({
|
|
99222
|
+
displayName: "OpenCode Go",
|
|
99223
|
+
envVars: ["OPENCODE_API_KEY"],
|
|
99224
|
+
models: {
|
|
99225
|
+
"glm-5.1": {
|
|
99226
|
+
displayName: "GLM 5.1",
|
|
99227
|
+
resolve: "opencode-go/glm-5.1",
|
|
99228
|
+
openRouterResolve: "openrouter/z-ai/glm-5.1",
|
|
99229
|
+
preferred: true
|
|
99230
|
+
}
|
|
99231
|
+
}
|
|
99232
|
+
}),
|
|
99221
99233
|
bedrock: provider({
|
|
99222
99234
|
displayName: "Amazon Bedrock",
|
|
99223
99235
|
envVars: ["AWS_BEARER_TOKEN_BEDROCK", "AWS_REGION", "BEDROCK_MODEL_ID"],
|
|
@@ -100055,7 +100067,7 @@ var import_semver = __toESM(require_semver2(), 1);
|
|
|
100055
100067
|
// package.json
|
|
100056
100068
|
var package_default = {
|
|
100057
100069
|
name: "pullfrog",
|
|
100058
|
-
version: "0.1.
|
|
100070
|
+
version: "0.1.24",
|
|
100059
100071
|
type: "module",
|
|
100060
100072
|
bin: {
|
|
100061
100073
|
pullfrog: "dist/cli.mjs",
|
|
@@ -105859,6 +105871,7 @@ function installCodexAuth() {
|
|
|
105859
105871
|
mkdirSync5(opencodeDir, { recursive: true });
|
|
105860
105872
|
writeFileSync4(authPath, `${JSON.stringify(opencodeAuth, null, 2)}
|
|
105861
105873
|
`, { mode: 384 });
|
|
105874
|
+
process.env.XDG_DATA_HOME = xdgDataHome;
|
|
105862
105875
|
log.info(`\xBB installed Codex auth at ${authPath}`);
|
|
105863
105876
|
return {
|
|
105864
105877
|
authPath,
|
|
@@ -115376,6 +115389,9 @@ function formatModelLabel(params) {
|
|
|
115376
115389
|
// still render a friendly display name.
|
|
115377
115390
|
modelAliases.find((a) => a.resolve === params.model || a.openRouterResolve === params.model);
|
|
115378
115391
|
const displayName = alias?.displayName ?? params.model;
|
|
115392
|
+
if (params.oss) {
|
|
115393
|
+
return `\`${displayName}\` (free via [Pullfrog for OSS](https://pullfrog.com/for-oss))`;
|
|
115394
|
+
}
|
|
115379
115395
|
const base = alias?.isFree ? `\`${displayName}\` (free)` : `\`${displayName}\``;
|
|
115380
115396
|
if (!params.fallbackFrom) return base;
|
|
115381
115397
|
return `${base} (credentials for ${providerDisplayName(params.fallbackFrom)} not configured)`;
|
|
@@ -115397,7 +115413,7 @@ function buildPullfrogFooter(params) {
|
|
|
115397
115413
|
}
|
|
115398
115414
|
if (params.model) {
|
|
115399
115415
|
parts.push(
|
|
115400
|
-
`Using ${formatModelLabel({ model: params.model, fallbackFrom: params.fallbackFrom })}`
|
|
115416
|
+
`Using ${formatModelLabel({ model: params.model, fallbackFrom: params.fallbackFrom, oss: params.oss })}`
|
|
115401
115417
|
);
|
|
115402
115418
|
}
|
|
115403
115419
|
const allParts = [...parts, "[\u{1D54F}](https://x.com/pullfrogai)"];
|
|
@@ -116192,7 +116208,8 @@ function buildCommentFooter(ctx, customParts) {
|
|
|
116192
116208
|
} : void 0,
|
|
116193
116209
|
customParts,
|
|
116194
116210
|
model: ctx.toolState.model,
|
|
116195
|
-
fallbackFrom: ctx.toolState.modelFallback?.from
|
|
116211
|
+
fallbackFrom: ctx.toolState.modelFallback?.from,
|
|
116212
|
+
oss: ctx.oss
|
|
116196
116213
|
});
|
|
116197
116214
|
}
|
|
116198
116215
|
function buildImplementPlanLink(ctx, issueNumber, commentId) {
|
|
@@ -151060,7 +151077,8 @@ async function createAndSubmitWithFooter(ctx, params, opts) {
|
|
|
151060
151077
|
workflowRun: ctx.runId ? { owner: ctx.repo.owner, repo: ctx.repo.name, runId: ctx.runId, jobId: ctx.jobId } : void 0,
|
|
151061
151078
|
customParts,
|
|
151062
151079
|
model: ctx.toolState.model,
|
|
151063
|
-
fallbackFrom: ctx.toolState.modelFallback?.from
|
|
151080
|
+
fallbackFrom: ctx.toolState.modelFallback?.from,
|
|
151081
|
+
oss: ctx.oss
|
|
151064
151082
|
});
|
|
151065
151083
|
return await ctx.octokit.rest.pulls.submitReview({
|
|
151066
151084
|
owner: params.owner,
|
|
@@ -152484,7 +152502,8 @@ function buildPrBodyWithFooter(ctx, body) {
|
|
|
152484
152502
|
triggeredBy: true,
|
|
152485
152503
|
workflowRun: ctx.runId ? { owner: ctx.repo.owner, repo: ctx.repo.name, runId: ctx.runId, jobId: ctx.jobId } : void 0,
|
|
152486
152504
|
model: ctx.toolState.model,
|
|
152487
|
-
fallbackFrom: ctx.toolState.modelFallback?.from
|
|
152505
|
+
fallbackFrom: ctx.toolState.modelFallback?.from,
|
|
152506
|
+
oss: ctx.oss
|
|
152488
152507
|
});
|
|
152489
152508
|
const bodyWithoutFooter = stripExistingFooter(fixDoubleEscapedString(body));
|
|
152490
152509
|
return `${bodyWithoutFooter}${footer}`;
|
|
@@ -159010,7 +159029,8 @@ ${ctx.error}` : ctx.error;
|
|
|
159010
159029
|
workflowRun: runId ? { owner: repoContext.owner, repo: repoContext.name, runId } : void 0,
|
|
159011
159030
|
customParts,
|
|
159012
159031
|
model: ctx.toolState.model,
|
|
159013
|
-
fallbackFrom: ctx.toolState.modelFallback?.from
|
|
159032
|
+
fallbackFrom: ctx.toolState.modelFallback?.from,
|
|
159033
|
+
oss: ctx.toolState.oss
|
|
159014
159034
|
});
|
|
159015
159035
|
const body = `${formattedError}${footer}`;
|
|
159016
159036
|
const comment = ctx.toolState.progressComment;
|
|
@@ -159982,6 +160002,7 @@ async function main() {
|
|
|
159982
160002
|
}
|
|
159983
160003
|
const payload = resolvePayload(resolvedPromptInput, runContext.repoSettings);
|
|
159984
160004
|
toolState.model = payload.model;
|
|
160005
|
+
toolState.oss = runContext.oss;
|
|
159985
160006
|
if (payload.event.trigger === "pull_request_synchronize") {
|
|
159986
160007
|
toolState.beforeSha = payload.event.before_sha;
|
|
159987
160008
|
}
|
package/dist/internal.js
CHANGED
|
@@ -284,6 +284,18 @@ var providers = {
|
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
286
|
}),
|
|
287
|
+
"opencode-go": provider({
|
|
288
|
+
displayName: "OpenCode Go",
|
|
289
|
+
envVars: ["OPENCODE_API_KEY"],
|
|
290
|
+
models: {
|
|
291
|
+
"glm-5.1": {
|
|
292
|
+
displayName: "GLM 5.1",
|
|
293
|
+
resolve: "opencode-go/glm-5.1",
|
|
294
|
+
openRouterResolve: "openrouter/z-ai/glm-5.1",
|
|
295
|
+
preferred: true
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}),
|
|
287
299
|
bedrock: provider({
|
|
288
300
|
displayName: "Amazon Bedrock",
|
|
289
301
|
envVars: ["AWS_BEARER_TOKEN_BEDROCK", "AWS_REGION", "BEDROCK_MODEL_ID"],
|
|
@@ -1127,6 +1139,9 @@ function formatModelLabel(params) {
|
|
|
1127
1139
|
// still render a friendly display name.
|
|
1128
1140
|
modelAliases.find((a) => a.resolve === params.model || a.openRouterResolve === params.model);
|
|
1129
1141
|
const displayName = alias?.displayName ?? params.model;
|
|
1142
|
+
if (params.oss) {
|
|
1143
|
+
return `\`${displayName}\` (free via [Pullfrog for OSS](https://pullfrog.com/for-oss))`;
|
|
1144
|
+
}
|
|
1130
1145
|
const base = alias?.isFree ? `\`${displayName}\` (free)` : `\`${displayName}\``;
|
|
1131
1146
|
if (!params.fallbackFrom) return base;
|
|
1132
1147
|
return `${base} (credentials for ${providerDisplayName(params.fallbackFrom)} not configured)`;
|
|
@@ -1148,7 +1163,7 @@ function buildPullfrogFooter(params) {
|
|
|
1148
1163
|
}
|
|
1149
1164
|
if (params.model) {
|
|
1150
1165
|
parts.push(
|
|
1151
|
-
`Using ${formatModelLabel({ model: params.model, fallbackFrom: params.fallbackFrom })}`
|
|
1166
|
+
`Using ${formatModelLabel({ model: params.model, fallbackFrom: params.fallbackFrom, oss: params.oss })}`
|
|
1152
1167
|
);
|
|
1153
1168
|
}
|
|
1154
1169
|
const allParts = [...parts, "[\u{1D54F}](https://x.com/pullfrogai)"];
|
package/dist/models.d.ts
CHANGED
package/dist/toolState.d.ts
CHANGED
|
@@ -108,6 +108,7 @@ export interface ToolState {
|
|
|
108
108
|
modelFallback?: {
|
|
109
109
|
from: string;
|
|
110
110
|
} | undefined;
|
|
111
|
+
oss?: boolean | undefined;
|
|
111
112
|
todoTracker?: TodoTracker | undefined;
|
|
112
113
|
diffCoverage?: DiffCoverageState | undefined;
|
|
113
114
|
agentDiagnostic?: AgentDiagnostic | undefined;
|
|
@@ -24,6 +24,12 @@ export interface BuildPullfrogFooterParams {
|
|
|
24
24
|
* so the substitution is visible in PR comments + reviews.
|
|
25
25
|
*/
|
|
26
26
|
fallbackFrom?: string | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* true when the run's model costs are covered by the Pullfrog for OSS
|
|
29
|
+
* program — the footer renders `Using <model> (free via Pullfrog for OSS)`
|
|
30
|
+
* with the phrase linking to the OSS application page.
|
|
31
|
+
*/
|
|
32
|
+
oss?: boolean | undefined;
|
|
27
33
|
}
|
|
28
34
|
/**
|
|
29
35
|
* build a pullfrog footer with configurable parts
|
|
@@ -23,6 +23,7 @@ export interface InstalledCodexAuth {
|
|
|
23
23
|
* caller treats null as "no codex auth, fall through to API key flow".
|
|
24
24
|
*
|
|
25
25
|
* The env value is server-side guaranteed fresh by `maybeRotateCodexSecret`
|
|
26
|
-
* in the run-context endpoint. We
|
|
27
|
-
*
|
|
26
|
+
* in the run-context endpoint. We parse + write it here and set
|
|
27
|
+
* `process.env.XDG_DATA_HOME` so every opencode subprocess discovers the
|
|
28
|
+
* auth.json; no refresh, no DB interaction. */
|
|
28
29
|
export declare function installCodexAuth(): InstalledCodexAuth | null;
|