@quickchatai/pi-quickreview 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/assets/config.example.toml +41 -9
  2. package/assets/prompts/onboarding.md +57 -18
  3. package/dist/src/engine/envmap.d.ts.map +1 -1
  4. package/dist/src/engine/envmap.js +5 -0
  5. package/dist/src/engine/envmap.js.map +1 -1
  6. package/dist/src/engine/pisdk.d.ts +9 -0
  7. package/dist/src/engine/pisdk.d.ts.map +1 -1
  8. package/dist/src/engine/pisdk.js +29 -4
  9. package/dist/src/engine/pisdk.js.map +1 -1
  10. package/dist/src/githubAuth.d.ts +39 -1
  11. package/dist/src/githubAuth.d.ts.map +1 -1
  12. package/dist/src/githubAuth.js +75 -8
  13. package/dist/src/githubAuth.js.map +1 -1
  14. package/dist/src/guards.d.ts +14 -1
  15. package/dist/src/guards.d.ts.map +1 -1
  16. package/dist/src/guards.js +61 -2
  17. package/dist/src/guards.js.map +1 -1
  18. package/dist/src/identity.d.ts +34 -0
  19. package/dist/src/identity.d.ts.map +1 -0
  20. package/dist/src/identity.js +67 -0
  21. package/dist/src/identity.js.map +1 -0
  22. package/dist/src/modelroute.d.ts +38 -0
  23. package/dist/src/modelroute.d.ts.map +1 -0
  24. package/dist/src/modelroute.js +105 -0
  25. package/dist/src/modelroute.js.map +1 -0
  26. package/dist/src/plugin/login.d.ts +3 -0
  27. package/dist/src/plugin/login.d.ts.map +1 -1
  28. package/dist/src/plugin/login.js +11 -2
  29. package/dist/src/plugin/login.js.map +1 -1
  30. package/dist/src/plugin/review.d.ts.map +1 -1
  31. package/dist/src/plugin/review.js +8 -4
  32. package/dist/src/plugin/review.js.map +1 -1
  33. package/dist/src/reviewconfig.d.ts +12 -0
  34. package/dist/src/reviewconfig.d.ts.map +1 -1
  35. package/dist/src/reviewconfig.js +9 -1
  36. package/dist/src/reviewconfig.js.map +1 -1
  37. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"githubAuth.js","sourceRoot":"","sources":["../../src/githubAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"githubAuth.js","sourceRoot":"","sources":["../../src/githubAuth.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@ import type { MutationGuard } from "./gate.js";
4
4
  import type { ReviewedHeadRow } from "./storerows.js";
5
5
  /** A bot's login: the App's own, or any `[bot]` account. Bot-authored PRs
6
6
  * never enter the state machine (spec §3, src/statemachine.ts re-exports
7
- * this), and a bot's approval is no human's. */
7
+ * this), and a bot's approval is no human's. `botLogin` is the bot ACCOUNT
8
+ * (identity.ts `botAccountLogin`); "" — person mode, which has none — names
9
+ * no login, so only `[bot]` accounts match. */
8
10
  export declare function isBotAuthor(author: string, botLogin: string): boolean;
9
11
  /** Mutation kinds that put words on a PR — the ones the guards inspect. */
10
12
  export declare const POSTING_KINDS: ReadonlySet<string>;
@@ -50,6 +52,10 @@ export interface GuardDeps {
50
52
  adapter: GuardAdapter;
51
53
  botLogin: string;
52
54
  guards: GuardsConfig;
55
+ /** `[github] auth = "user"` (person mode): the review posts on the person's
56
+ * own account, so every APPROVE / REQUEST_CHANGES is posted as a COMMENT
57
+ * whose body states the verdict (`personModeComment`). */
58
+ personMode?: boolean;
53
59
  log?: (msg: string, extra?: unknown) => void;
54
60
  }
55
61
  /** The review payload as it appears inside a `create_review` intent — the
@@ -88,6 +94,13 @@ export declare function hasNewEvidence(mark: ReviewedHeadRow | undefined, headSh
88
94
  /** Why a posting mutation was refused. Short tags — they land in the event log
89
95
  * and in `GateResult.blocked`. */
90
96
  export type BlockReason = "pr-merged" | "pr-closed" | "pr-unreadable" | "no-new-evidence" | "head-drift";
97
+ /** The line a person-mode review carries in place of the GitHub event it
98
+ * could not use. The verdict is the session's, decided on the merits; only
99
+ * the event changed. */
100
+ export declare function personModeNote(verdict: "APPROVE" | "REQUEST_CHANGES"): string;
101
+ /** APPROVE / REQUEST_CHANGES → COMMENT, findings untouched, the verdict
102
+ * stated in the body. A COMMENT (and anything else) passes as it is. */
103
+ export declare function personModeComment(body: ReviewBody): ReviewBody;
91
104
  export declare function makePostingGuard(deps: GuardDeps): MutationGuard;
92
105
  export {};
93
106
  //# sourceMappingURL=guards.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":"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"}
@@ -42,9 +42,11 @@ import { ciBlocksApproval, classifyCi, withholdApproval, } from "./cigate.js";
42
42
  import { standingReview } from "./standing-review.js";
43
43
  /** A bot's login: the App's own, or any `[bot]` account. Bot-authored PRs
44
44
  * never enter the state machine (spec §3, src/statemachine.ts re-exports
45
- * this), and a bot's approval is no human's. */
45
+ * this), and a bot's approval is no human's. `botLogin` is the bot ACCOUNT
46
+ * (identity.ts `botAccountLogin`); "" — person mode, which has none — names
47
+ * no login, so only `[bot]` accounts match. */
46
48
  export function isBotAuthor(author, botLogin) {
47
- return author === botLogin || author.endsWith("[bot]");
49
+ return (botLogin !== "" && author === botLogin) || author.endsWith("[bot]");
48
50
  }
49
51
  /** Mutation kinds that put words on a PR — the ones the guards inspect. */
50
52
  export const POSTING_KINDS = new Set([
@@ -146,7 +148,64 @@ async function readCi(deps, pr, head, log) {
146
148
  return null;
147
149
  }
148
150
  }
151
+ // ---- person mode: every review is a COMMENT ------------------------------
152
+ /** The line a person-mode review carries in place of the GitHub event it
153
+ * could not use. The verdict is the session's, decided on the merits; only
154
+ * the event changed. */
155
+ export function personModeNote(verdict) {
156
+ const said = verdict === "APPROVE"
157
+ ? "**Verdict: APPROVE** — no blockers found."
158
+ : "**Verdict: REQUEST_CHANGES** — the blockers above need fixing before this merges.";
159
+ return (`_${said} Posted as a comment: this reviewer runs on a person's own GitHub account, ` +
160
+ "and an automated verdict must never count as that person's approval or block " +
161
+ "(GitHub refuses both on an author's own pull request)._");
162
+ }
163
+ /** APPROVE / REQUEST_CHANGES → COMMENT, findings untouched, the verdict
164
+ * stated in the body. A COMMENT (and anything else) passes as it is. */
165
+ export function personModeComment(body) {
166
+ const event = (body.event ?? "").toUpperCase();
167
+ if (event !== "APPROVE" && event !== "REQUEST_CHANGES")
168
+ return body;
169
+ return {
170
+ ...body,
171
+ event: "COMMENT",
172
+ body: `${body.body ?? ""}\n\n${personModeNote(event)}`,
173
+ };
174
+ }
175
+ /** The person-mode step, after every other guard: whatever they decided
176
+ * (refuse, soften, nothing), a review that would still post a verdict event
177
+ * posts as a COMMENT. Never on a refused intent; only `body` and `note`
178
+ * change, as every guard rewrite. */
179
+ function personModeStep(intent, decision) {
180
+ if (decision.block)
181
+ return decision;
182
+ const current = decision.intent ?? intent;
183
+ if (current.kind !== "create_review")
184
+ return decision;
185
+ const body = (current.body ?? {});
186
+ const rewritten = personModeComment(body);
187
+ if (rewritten === body)
188
+ return decision;
189
+ return {
190
+ intent: {
191
+ ...current,
192
+ body: rewritten,
193
+ note: `post COMMENT review on #${current.pr ?? "?"} (person mode: verdict ${(body.event ?? "").toUpperCase()} stated in the body)`,
194
+ },
195
+ };
196
+ }
149
197
  export function makePostingGuard(deps) {
198
+ const guard = makeAppPostingGuard(deps);
199
+ if (!deps.personMode)
200
+ return guard;
201
+ return {
202
+ async before(intent) {
203
+ return personModeStep(intent, await guard.before(intent));
204
+ },
205
+ ...(guard.after ? { after: guard.after.bind(guard) } : {}),
206
+ };
207
+ }
208
+ function makeAppPostingGuard(deps) {
150
209
  const log = deps.log ?? (() => { });
151
210
  const refuse = (intent, pr, reason, extra = {}) => {
152
211
  log(`guard: refused ${intent.kind} on #${pr} — ${reason}`);
@@ -1 +1 @@
1
- {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { GithubAuthMode, GithubConfig } from "./reviewconfig.js";
2
+ /** What the identity rules read off `[github]`. */
3
+ export type GithubIdentity = Pick<GithubConfig, "auth" | "bot_login" | "app_slug">;
4
+ export declare function authMode(g: Pick<GithubConfig, "auth">): GithubAuthMode;
5
+ /** `[github] auth = "user"`: the person's own credential, posting as them. */
6
+ export declare function isPersonMode(g: Pick<GithubConfig, "auth">): boolean;
7
+ /** The body carries something only the reviewer writes. */
8
+ export declare function carriesOwnMarker(body: string | null | undefined): boolean;
9
+ /** The logins the reviewer's content is posted under. App mode: the
10
+ * configured bot login and the App's `<slug>[bot]` (when a slug is set).
11
+ * Person mode: the person's login alone. Never an empty string. */
12
+ export declare function ownLogins(g: GithubIdentity): string[];
13
+ /** GraphQL's bare App actor, only for a matching configured bot login, and
14
+ * never in person mode (there is no App). */
15
+ export declare function ownActorAlias(g: GithubIdentity): string | undefined;
16
+ /**
17
+ * Is this review or comment the reviewer's own? App mode: by its login (one
18
+ * of `ownLogins`, or the bare App actor), as it always was. Person mode: by
19
+ * the person's login AND a marker or the footer in its body — a comment the
20
+ * person typed themselves is a human comment.
21
+ */
22
+ export declare function isOwnContent(g: GithubIdentity, author: string | null | undefined, body: string | null | undefined): boolean;
23
+ /**
24
+ * The login that is a BOT ACCOUNT, for the questions "is this PR a bot's PR"
25
+ * and "is this captured comment a bot's": the App's login in app mode, and ""
26
+ * in person mode — there the person's login is a person's, and only the
27
+ * `[bot]`-suffixed / `Bot`-typed accounts the call sites already exclude are
28
+ * bots.
29
+ */
30
+ export declare function botAccountLogin(g: GithubIdentity): string;
31
+ /** The search qualifier that keeps the App's own PRs out of a search, or ""
32
+ * when there is no App slug (person mode, or an unset slug). */
33
+ export declare function excludeOwnAppQualifier(g: GithubIdentity): string;
34
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/identity.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtE,mDAAmD;AACnD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC;AAEnF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,cAAc,CAEtE;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,OAAO,CAEnE;AASD,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGzE;AAED;;mEAEmE;AACnE,wBAAgB,SAAS,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,EAAE,CAKrD;AAED;6CAC6C;AAC7C,wBAAgB,aAAa,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAGnE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,cAAc,EACjB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,OAAO,CAKT;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAEzD;AAED;gEACgE;AAChE,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAEhE"}
@@ -0,0 +1,67 @@
1
+ export function authMode(g) {
2
+ return g.auth === "user" ? "user" : "app";
3
+ }
4
+ /** `[github] auth = "user"`: the person's own credential, posting as them. */
5
+ export function isPersonMode(g) {
6
+ return authMode(g) === "user";
7
+ }
8
+ /** Every hidden marker the system writes opens `<!-- qcr-` or `<!-- qcr:`
9
+ * (posting key, finding, round, recheck, reply, migration, escalation,
10
+ * filing, author response). */
11
+ const OWN_MARKER_RE = /<!--\s*qcr[-:]/;
12
+ /** The review footer's fixed words (`renderedFooter`, reviewrender.ts). */
13
+ const OWN_FOOTER_RE = /\(quickreview sandbox\)/;
14
+ /** The body carries something only the reviewer writes. */
15
+ export function carriesOwnMarker(body) {
16
+ if (typeof body !== "string" || body === "")
17
+ return false;
18
+ return OWN_MARKER_RE.test(body) || OWN_FOOTER_RE.test(body);
19
+ }
20
+ /** The logins the reviewer's content is posted under. App mode: the
21
+ * configured bot login and the App's `<slug>[bot]` (when a slug is set).
22
+ * Person mode: the person's login alone. Never an empty string. */
23
+ export function ownLogins(g) {
24
+ const out = new Set();
25
+ if (g.bot_login)
26
+ out.add(g.bot_login);
27
+ if (!isPersonMode(g) && g.app_slug)
28
+ out.add(`${g.app_slug}[bot]`);
29
+ return [...out];
30
+ }
31
+ /** GraphQL's bare App actor, only for a matching configured bot login, and
32
+ * never in person mode (there is no App). */
33
+ export function ownActorAlias(g) {
34
+ if (isPersonMode(g) || !g.app_slug)
35
+ return undefined;
36
+ return g.bot_login === `${g.app_slug}[bot]` ? g.app_slug : undefined;
37
+ }
38
+ /**
39
+ * Is this review or comment the reviewer's own? App mode: by its login (one
40
+ * of `ownLogins`, or the bare App actor), as it always was. Person mode: by
41
+ * the person's login AND a marker or the footer in its body — a comment the
42
+ * person typed themselves is a human comment.
43
+ */
44
+ export function isOwnContent(g, author, body) {
45
+ const login = author ?? "";
46
+ if (login === "")
47
+ return false;
48
+ if (isPersonMode(g))
49
+ return login === g.bot_login && carriesOwnMarker(body);
50
+ return ownLogins(g).includes(login) || login === ownActorAlias(g);
51
+ }
52
+ /**
53
+ * The login that is a BOT ACCOUNT, for the questions "is this PR a bot's PR"
54
+ * and "is this captured comment a bot's": the App's login in app mode, and ""
55
+ * in person mode — there the person's login is a person's, and only the
56
+ * `[bot]`-suffixed / `Bot`-typed accounts the call sites already exclude are
57
+ * bots.
58
+ */
59
+ export function botAccountLogin(g) {
60
+ return isPersonMode(g) ? "" : g.bot_login;
61
+ }
62
+ /** The search qualifier that keeps the App's own PRs out of a search, or ""
63
+ * when there is no App slug (person mode, or an unset slug). */
64
+ export function excludeOwnAppQualifier(g) {
65
+ return !isPersonMode(g) && g.app_slug ? ` -author:app/${g.app_slug}` : "";
66
+ }
67
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/identity.ts"],"names":[],"mappings":"AAuBA,MAAM,UAAU,QAAQ,CAAC,CAA6B;IACpD,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,CAA6B;IACxD,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;AAChC,CAAC;AAED;;+BAE+B;AAC/B,MAAM,aAAa,GAAG,gBAAgB,CAAC;AACvC,2EAA2E;AAC3E,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAEhD,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAAC,IAA+B;IAC9D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED;;mEAEmE;AACnE,MAAM,UAAU,SAAS,CAAC,CAAiB;IACzC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,CAAC,CAAC,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED;6CAC6C;AAC7C,MAAM,UAAU,aAAa,CAAC,CAAiB;IAC7C,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IACrD,OAAO,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,CAAiB,EACjB,MAAiC,EACjC,IAA+B;IAE/B,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;IAC3B,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC/B,IAAI,YAAY,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,KAAK,CAAC,CAAC,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5E,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,CAAiB;IAC/C,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED;gEACgE;AAChE,MAAM,UAAU,sBAAsB,CAAC,CAAiB;IACtD,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,38 @@
1
+ /** The OpenAI providers, each the other's twin. */
2
+ export declare const OPENAI_PROVIDERS: readonly string[];
3
+ /** The provider that serves the same models on another OpenAI login, or
4
+ * undefined for a provider outside the family. */
5
+ export declare function twinProvider(provider: string): string | undefined;
6
+ /** A spec taken apart at its first `/`: `provider/rest`, where `rest` is the
7
+ * model id with any `:thinking` suffix left on. Null for a bare id. */
8
+ export declare function splitProvider(spec: string): {
9
+ provider: string;
10
+ rest: string;
11
+ } | null;
12
+ /** The model id of a spec's `rest`: the `:thinking` suffix dropped. */
13
+ export declare function modelIdOf(rest: string): string;
14
+ export interface ProviderProbe {
15
+ /** Does this provider have a usable credential? */
16
+ hasCredential(provider: string): boolean;
17
+ /** Does this provider serve this model id? Omitted: assume it does (the
18
+ * OpenAI twins carry the same catalog). */
19
+ hasModel?(provider: string, modelId: string): boolean;
20
+ }
21
+ /** The provider to run `provider`'s model `modelId` on: `provider` itself when
22
+ * it has a credential (or when nothing better exists), else its OpenAI twin
23
+ * when the twin has one and serves the model. */
24
+ export declare function routeProvider(provider: string, modelId: string, probe: ProviderProbe): string;
25
+ /** A whole spec (`provider/id[:thinking]`) rerouted by `routeProvider`; a spec
26
+ * with no provider prefix is returned as given. */
27
+ export declare function routeModelSpec(spec: string, probe: ProviderProbe): string;
28
+ /** The providers a pi `auth.json` holds a credential for: every entry of type
29
+ * "oauth" or "api_key" (pi's two stored credential shapes; an api_key's `key`
30
+ * may be a literal, an env name or a `!command`, all of which count). An API key
31
+ * in `OPENAI_API_KEY` counts for `openai`, as pi's own env lookup does. Text
32
+ * that does not parse holds nothing. */
33
+ export declare function providersInAuthJson(raw: string | null, env?: Readonly<Record<string, string | undefined>>): Set<string>;
34
+ /** `routeModelSpec` over a login file's text (null: no file) and the env the
35
+ * pi will run with: for a host that starts a CLI pi on a login it holds as a
36
+ * file (a takeover's or a debug round's borrowed copy). */
37
+ export declare function routeModelSpecForLogin(spec: string, authJson: string | null, env?: Readonly<Record<string, string | undefined>>): string;
38
+ //# sourceMappingURL=modelroute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelroute.d.ts","sourceRoot":"","sources":["../../src/modelroute.ts"],"names":[],"mappings":"AAoBA,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAA+B,CAAC;AAE9E;kDACkD;AAClD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIjE;AAED;uEACuE;AACvE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIrF;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACzC;+CAC2C;IAC3C,QAAQ,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CACvD;AAED;;iDAEiD;AACjD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAM7F;AAED;mDACmD;AACnD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAKzE;AAED;;;;wCAIwC;AACxC,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,GAAG,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAM,GACrD,GAAG,CAAC,MAAM,CAAC,CAqBb;AAED;;2DAE2D;AAC3D,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,GAAG,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAM,GACrD,MAAM,CAGR"}
@@ -0,0 +1,105 @@
1
+ // Which provider a model spec runs on, given the logins that exist.
2
+ //
3
+ // pi offers three OpenAI logins, and they land on two providers:
4
+ // - "OpenAI Codex (legacy)" (an OAuth login) is the provider `openai-codex`;
5
+ // - "Sign in with ChatGPT" (pi 1.4's newer OAuth login) is the provider `openai`;
6
+ // - an OpenAI API key (stored by /login, or OPENAI_API_KEY) is also `openai`.
7
+ // Both providers serve the same model ids (pi-ai's catalogs carry gpt-6.1-sol
8
+ // on each), so one login is as good as the other for a review. The shipped
9
+ // specs name `openai-codex/…`, the route the production install logged in
10
+ // with, and stay that way: this module only reroutes a spec whose named
11
+ // provider has no usable credential while its twin has one. The provider a
12
+ // spec names always wins when its credential exists, so an install that works
13
+ // today runs exactly as before.
14
+ //
15
+ // Pure: the caller says which providers have a credential. The SDK host asks
16
+ // pi's own ModelRuntime (packages/pi-plugin/src/engine/pisdk.ts); a CLI pi is
17
+ // rerouted by its own extension from pi's model registry
18
+ // (extensions/login-route.ts); a host that only has a login FILE (the companion
19
+ // entrypoint's default model) reads it with `providersInAuthJson`.
20
+ /** The OpenAI providers, each the other's twin. */
21
+ export const OPENAI_PROVIDERS = ["openai-codex", "openai"];
22
+ /** The provider that serves the same models on another OpenAI login, or
23
+ * undefined for a provider outside the family. */
24
+ export function twinProvider(provider) {
25
+ if (provider === "openai-codex")
26
+ return "openai";
27
+ if (provider === "openai")
28
+ return "openai-codex";
29
+ return undefined;
30
+ }
31
+ /** A spec taken apart at its first `/`: `provider/rest`, where `rest` is the
32
+ * model id with any `:thinking` suffix left on. Null for a bare id. */
33
+ export function splitProvider(spec) {
34
+ const at = spec.indexOf("/");
35
+ if (at <= 0 || at === spec.length - 1)
36
+ return null;
37
+ return { provider: spec.slice(0, at), rest: spec.slice(at + 1) };
38
+ }
39
+ /** The model id of a spec's `rest`: the `:thinking` suffix dropped. */
40
+ export function modelIdOf(rest) {
41
+ const colon = rest.lastIndexOf(":");
42
+ return colon > 0 ? rest.slice(0, colon) : rest;
43
+ }
44
+ /** The provider to run `provider`'s model `modelId` on: `provider` itself when
45
+ * it has a credential (or when nothing better exists), else its OpenAI twin
46
+ * when the twin has one and serves the model. */
47
+ export function routeProvider(provider, modelId, probe) {
48
+ if (probe.hasCredential(provider))
49
+ return provider;
50
+ const twin = twinProvider(provider);
51
+ if (twin === undefined || !probe.hasCredential(twin))
52
+ return provider;
53
+ if (probe.hasModel && !probe.hasModel(twin, modelId))
54
+ return provider;
55
+ return twin;
56
+ }
57
+ /** A whole spec (`provider/id[:thinking]`) rerouted by `routeProvider`; a spec
58
+ * with no provider prefix is returned as given. */
59
+ export function routeModelSpec(spec, probe) {
60
+ const parts = splitProvider(spec);
61
+ if (parts === null)
62
+ return spec;
63
+ const provider = routeProvider(parts.provider, modelIdOf(parts.rest), probe);
64
+ return provider === parts.provider ? spec : `${provider}/${parts.rest}`;
65
+ }
66
+ /** The providers a pi `auth.json` holds a credential for: every entry of type
67
+ * "oauth" or "api_key" (pi's two stored credential shapes; an api_key's `key`
68
+ * may be a literal, an env name or a `!command`, all of which count). An API key
69
+ * in `OPENAI_API_KEY` counts for `openai`, as pi's own env lookup does. Text
70
+ * that does not parse holds nothing. */
71
+ export function providersInAuthJson(raw, env = {}) {
72
+ const out = new Set();
73
+ if (raw !== null) {
74
+ try {
75
+ const parsed = JSON.parse(raw);
76
+ if (typeof parsed === "object" && parsed !== null)
77
+ for (const [name, v] of Object.entries(parsed)) {
78
+ if (typeof v !== "object" || v === null)
79
+ continue;
80
+ const type = v["type"];
81
+ if (type === "oauth")
82
+ out.add(name);
83
+ else if (type === "api_key") {
84
+ const key = v["key"];
85
+ if (typeof key === "string" && key.trim() !== "")
86
+ out.add(name);
87
+ }
88
+ }
89
+ }
90
+ catch {
91
+ // an unreadable login holds no credential
92
+ }
93
+ }
94
+ if ((env["OPENAI_API_KEY"] ?? "").trim() !== "")
95
+ out.add("openai");
96
+ return out;
97
+ }
98
+ /** `routeModelSpec` over a login file's text (null: no file) and the env the
99
+ * pi will run with: for a host that starts a CLI pi on a login it holds as a
100
+ * file (a takeover's or a debug round's borrowed copy). */
101
+ export function routeModelSpecForLogin(spec, authJson, env = {}) {
102
+ const have = providersInAuthJson(authJson, env);
103
+ return routeModelSpec(spec, { hasCredential: (p) => have.has(p) });
104
+ }
105
+ //# sourceMappingURL=modelroute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelroute.js","sourceRoot":"","sources":["../../src/modelroute.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,9 @@ export declare function reviewProviders(cfg: Pick<CoreConfig, "models">): string
18
18
  export type BorrowResult = {
19
19
  ok: true;
20
20
  refreshed: string[];
21
+ /** The providers the run uses, each OpenAI one on the login that exists:
22
+ * the run's login copy carries exactly these. */
23
+ providers: string[];
21
24
  } | {
22
25
  ok: false;
23
26
  error: string;
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/plugin/login.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;0DAC0D;AAC1D,MAAM,WAAW,QAAQ;IACvB,8EAA8E;IAC9E,MAAM,IAAI,YAAY,CAAC;IACvB;2BACuB;IACvB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC;+EAC2E;IAC3E,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED;8CAC8C;AAC9C,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,MAAM,EAAE,CAgBzE;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5F,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAS9E;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE;IACnC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,YAAY,CAAC,CAkCxB"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/plugin/login.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD;0DAC0D;AAC1D,MAAM,WAAW,QAAQ;IACvB,8EAA8E;IAC9E,MAAM,IAAI,YAAY,CAAC;IACvB;2BACuB;IACvB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC;+EAC2E;IAC3E,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED;8CAC8C;AAC9C,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,MAAM,EAAE,CAgBzE;AAED,MAAM,MAAM,YAAY,GACpB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;qDACiD;IACjD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAS9E;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE;IACnC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,YAAY,CAAC,CAyCxB"}
@@ -1,3 +1,4 @@
1
+ import { routeProvider } from "../modelroute.js";
1
2
  /** The providers the review's sessions run on: every model spec's
2
3
  * `provider/` prefix, in first-seen order. */
3
4
  export function reviewProviders(cfg) {
@@ -37,7 +38,15 @@ export async function borrowLogin(o) {
37
38
  const want = o.needMs + o.marginMs;
38
39
  const refreshed = [];
39
40
  let logins = o.host.logins();
40
- for (const p of o.providers) {
41
+ const providers = [];
42
+ for (const named of o.providers) {
43
+ const p = routeProvider(named, "", {
44
+ hasCredential: (q) => logins[q] !== undefined || o.host.configured(q),
45
+ });
46
+ if (!providers.includes(p))
47
+ providers.push(p);
48
+ }
49
+ for (const p of providers) {
41
50
  const login = logins[p];
42
51
  if (login?.type === "oauth") {
43
52
  if (login.expires !== null && login.expires >= now() + want)
@@ -68,6 +77,6 @@ export async function borrowLogin(o) {
68
77
  .map(([name]) => name);
69
78
  return { ok: false, error: noLoginHint(p, keyed) };
70
79
  }
71
- return { ok: true, refreshed };
80
+ return { ok: true, refreshed, providers };
72
81
  }
73
82
  //# sourceMappingURL=login.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/plugin/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/plugin/login.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/plugin/review.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,MAAM,IAAI,UAAU,EAIpB,KAAK,aAAa,EAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAUrD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1D,sDAAsD;AACtD,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,gDAAgD;AAChD,eAAO,MAAM,iBAAiB,QAAc,CAAC;AAE7C,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,EAAE,aAI/B,CAAC;AAEF;wDACwD;AACxD,eAAO,MAAM,aAAa,QAAS,CAAC;AAEpC,iCAAiC;AACjC,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,UAAU,CAAC;IAC1B,OAAO,EAAE,OAAO,WAAW,CAAC;IAC5B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,oBAAoB,KAAK,aAAa,CAAC;CACtE;AAED,eAAO,MAAM,WAAW,EAAE,iBAKzB,CAAC;AAIF,0EAA0E;AAC1E,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,SAAS,EACb,IAAI,GAAE,iBAA+B,GACpC,OAAO,CAAC,IAAI,CAAC,CAwMf"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/plugin/review.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,MAAM,IAAI,UAAU,EAIpB,KAAK,aAAa,EAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAUrD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1D,sDAAsD;AACtD,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,gDAAgD;AAChD,eAAO,MAAM,iBAAiB,QAAc,CAAC;AAE7C,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,EAAE,aAI/B,CAAC;AAEF;wDACwD;AACxD,eAAO,MAAM,aAAa,QAAS,CAAC;AAEpC,iCAAiC;AACjC,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,UAAU,CAAC;IAC1B,OAAO,EAAE,OAAO,WAAW,CAAC;IAC5B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,oBAAoB,KAAK,aAAa,CAAC;CACtE;AAED,eAAO,MAAM,WAAW,EAAE,iBAKzB,CAAC;AAIF,0EAA0E;AAC1E,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,SAAS,EACb,IAAI,GAAE,iBAA+B,GACpC,OAAO,CAAC,IAAI,CAAC,CA4Mf"}
@@ -91,18 +91,22 @@ export async function runReviewCommand(line, host, ui, deps = REVIEW_DEPS) {
91
91
  : `posting needs dry_run = false, and ${configPath} keeps dry_run on`);
92
92
  if (!cmd.preview && target.kind !== "diff" && target.kind !== "pr" && !isGitWorkTree(host.cwd))
93
93
  return fail(`${host.cwd} is not inside a git repository: /review reviews a git checkout`);
94
+ // The providers whose logins ride into the run: the config's, routed by
95
+ // borrowLogin to the OpenAI login that exists.
96
+ let runProviders = reviewProviders(cfg);
94
97
  if (!cmd.preview) {
95
98
  // The borrowed login first: refreshed by the host when short, refused
96
99
  // with a hint when pi has none for a provider the review runs on, before
97
100
  // the person is asked anything.
98
101
  const borrowed = await borrowLogin({
99
- providers: reviewProviders(cfg),
102
+ providers: runProviders,
100
103
  host: host.auth,
101
104
  needMs: REVIEW_TIMEOUT_MS,
102
105
  marginMs: PI_REFRESH_MARGIN_MS,
103
106
  });
104
107
  if (!borrowed.ok)
105
108
  return fail(borrowed.error);
109
+ runProviders = borrowed.providers;
106
110
  if (postBlocked && cmd.to.includes("pr"))
107
111
  return fail(`${postBlocked}; the review was not started.`);
108
112
  const plan = planDestinations({
@@ -191,13 +195,13 @@ export async function runReviewCommand(line, host, ui, deps = REVIEW_DEPS) {
191
195
  });
192
196
  },
193
197
  // Only the review's providers ride into the run, as borrowLogin renewed
194
- // them: a person's pi holds other logins, which neither go along nor
195
- // refuse the run.
198
+ // (and, for an OpenAI model, routed) them: a person's pi holds other
199
+ // logins, which neither go along nor refuse the run.
196
200
  prepareHost: (req) => prepareReviewHost({
197
201
  ...req,
198
202
  profile: req.profile,
199
203
  authWords: PLUGIN_AUTH_WORDS,
200
- authProviders: reviewProviders(cfg),
204
+ authProviders: runProviders,
201
205
  }),
202
206
  memory: null,
203
207
  destinations,