@neturely/okffs 0.6.0 → 0.8.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 (65) hide show
  1. package/CHANGELOG.md +22 -1
  2. package/README.md +12 -6
  3. package/dist/config.d.ts +6 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +37 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/git.d.ts +12 -0
  8. package/dist/git.d.ts.map +1 -1
  9. package/dist/git.js +31 -0
  10. package/dist/git.js.map +1 -1
  11. package/dist/github.d.ts +56 -0
  12. package/dist/github.d.ts.map +1 -1
  13. package/dist/github.js +46 -2
  14. package/dist/github.js.map +1 -1
  15. package/dist/index.js +8 -2
  16. package/dist/index.js.map +1 -1
  17. package/dist/issue_types.d.ts +5 -0
  18. package/dist/issue_types.d.ts.map +1 -0
  19. package/dist/issue_types.js +65 -0
  20. package/dist/issue_types.js.map +1 -0
  21. package/dist/tools/commit_and_update.d.ts +19 -0
  22. package/dist/tools/commit_and_update.d.ts.map +1 -1
  23. package/dist/tools/commit_and_update.js +59 -6
  24. package/dist/tools/commit_and_update.js.map +1 -1
  25. package/dist/tools/create_issue.d.ts +3 -0
  26. package/dist/tools/create_issue.d.ts.map +1 -1
  27. package/dist/tools/create_issue.js +51 -41
  28. package/dist/tools/create_issue.js.map +1 -1
  29. package/dist/tools/create_issues_from_list.d.ts +6 -1
  30. package/dist/tools/create_issues_from_list.d.ts.map +1 -1
  31. package/dist/tools/create_issues_from_list.js +14 -1
  32. package/dist/tools/create_issues_from_list.js.map +1 -1
  33. package/dist/tools/create_pull_request.d.ts +4 -1
  34. package/dist/tools/create_pull_request.d.ts.map +1 -1
  35. package/dist/tools/create_pull_request.js +35 -8
  36. package/dist/tools/create_pull_request.js.map +1 -1
  37. package/dist/tools/fix_into_base.d.ts +23 -0
  38. package/dist/tools/fix_into_base.d.ts.map +1 -0
  39. package/dist/tools/fix_into_base.js +110 -0
  40. package/dist/tools/fix_into_base.js.map +1 -0
  41. package/dist/tools/list_issues.d.ts +1 -1
  42. package/dist/tools/list_issues.d.ts.map +1 -1
  43. package/dist/tools/list_issues.js +6 -1
  44. package/dist/tools/list_issues.js.map +1 -1
  45. package/dist/tools/merge_pull_request.d.ts +20 -0
  46. package/dist/tools/merge_pull_request.d.ts.map +1 -0
  47. package/dist/tools/merge_pull_request.js +176 -0
  48. package/dist/tools/merge_pull_request.js.map +1 -0
  49. package/dist/tools/plan.d.ts +6 -1
  50. package/dist/tools/plan.d.ts.map +1 -1
  51. package/dist/tools/plan.js +16 -1
  52. package/dist/tools/plan.js.map +1 -1
  53. package/dist/tools/reply_to_review_comment.d.ts +4 -1
  54. package/dist/tools/reply_to_review_comment.d.ts.map +1 -1
  55. package/dist/tools/reply_to_review_comment.js +39 -10
  56. package/dist/tools/reply_to_review_comment.js.map +1 -1
  57. package/dist/tools/set_issue_fields.d.ts +3 -0
  58. package/dist/tools/set_issue_fields.d.ts.map +1 -1
  59. package/dist/tools/set_issue_fields.js +40 -32
  60. package/dist/tools/set_issue_fields.js.map +1 -1
  61. package/dist/tools/update_issue.d.ts +32 -0
  62. package/dist/tools/update_issue.d.ts.map +1 -0
  63. package/dist/tools/update_issue.js +46 -0
  64. package/dist/tools/update_issue.js.map +1 -0
  65. package/package.json +1 -1
@@ -1,14 +1,15 @@
1
1
  import { z } from "zod";
2
- import { getIssue, extractBranchFromBody, getDefaultBranch, getBranchCommits, getIssueComments, createPullRequest, getOpenPullRequestForBranch, updatePullRequest, markPullRequestReady, getRepoDefaultBranch, addIssueComment, updateIssueBody, } from "../github.js";
2
+ import { getIssue, extractBranchFromBody, getDefaultBranch, getBranchCommits, getIssueComments, createPullRequest, createDraftPullRequest, getOpenPullRequestForBranch, updatePullRequest, markPullRequestReady, getRepoDefaultBranch, addIssueComment, updateIssueBody, } from "../github.js";
3
3
  import { config } from "../config.js";
4
4
  import { updateProjectDocs } from "../docs.js";
5
- import { git, currentBranch } from "../git.js";
5
+ import { git, currentBranch, pushEmptyInitCommit } from "../git.js";
6
6
  export const name = "create_pull_request";
7
- export const description = "Create a pull request for the current issue branch. Reads the issue, its comments, and commits to generate a PR title and body. Always includes Closes #N. If OKFFS_UPDATE_DOCS is true, writes a per-issue changelog fragment under .changes/unreleased/ (assembled into CHANGELOG.md at release time by prepare_release — not a direct CHANGELOG.md edit), plus SECURITY.md for security-related changes, and commits them onto the branch before creating the PR. If a PR already exists for the branch (e.g. a draft opened by create_issue under OKFFS_AUTO_PR=true), it is updated and marked ready for review instead of erroring. Posts a summary comment to the issue. If the issue has no okffs-created branch link (no **Branch:** line — e.g. a pre-okffs issue or a hand-made branch), pass an explicit branch, or check out a branch named {issue-number}-… and okffs infers it; either way it backfills the **Branch:** line. If the PR targets OKFFS_PROTECTED_BRANCH, okffs still opens it (opening is safe and reversible) and adds a reminder that the merge/tag stay with the user — OKFFS_PROTECTED_BRANCH governs autonomous merging, never PR creation.";
7
+ export const description = "Create a pull request for the current issue branch. Reads the issue, its comments, and commits to generate a PR title and body. Always includes Closes #N. If OKFFS_UPDATE_DOCS is true, writes a per-issue changelog fragment under .changes/unreleased/ (assembled into CHANGELOG.md at release time by prepare_release — not a direct CHANGELOG.md edit), plus SECURITY.md for security-related changes, and commits them onto the branch before creating the PR. If a PR already exists for the branch (e.g. a draft opened by create_issue under OKFFS_AUTO_PR=true), it is updated and marked ready for review instead of erroring. By default, a branch with no commits ahead of base is refused (a PR needs a diff); pass allow_empty: true to instead push an empty init commit so the branch diverges and open a **draft** tracking PR — the same mechanism create_issue uses under OKFFS_AUTO_PR, for backfilling a PR onto a branch that was created empty. Posts a summary comment to the issue. If the issue has no okffs-created branch link (no **Branch:** line — e.g. a pre-okffs issue or a hand-made branch), pass an explicit branch, or check out a branch named {issue-number}-… and okffs infers it; either way it backfills the **Branch:** line. If the PR targets OKFFS_PROTECTED_BRANCH, okffs still opens it (opening is safe and reversible) and adds a reminder that the merge/tag stay with the user — OKFFS_PROTECTED_BRANCH governs autonomous merging, never PR creation.";
8
8
  export const inputSchema = z.object({
9
9
  issue_number: z.number().int().positive().describe("The issue number to create a PR for"),
10
10
  summary: z.string().optional().describe("Optional summary of what was done — used in PR body and issue comment"),
11
11
  branch: z.string().optional().describe("Branch to open the PR from, for issues whose branch okffs didn't create (no **Branch:** line in the body). Usually unnecessary — okffs-created issues carry the link, and a checked-out branch named {issue-number}-… is inferred automatically. When used, okffs backfills the **Branch:** line onto the issue."),
12
+ allow_empty: z.boolean().optional().describe("When the branch has no commits ahead of base, push an empty init commit so it diverges and open a DRAFT tracking PR instead of refusing. Opt-in (default false) — use to backfill a PR onto a branch that was created empty. Ignored when the branch already has commits."),
12
13
  });
13
14
  export async function handler(input) {
14
15
  const issue = await getIssue(input.issue_number);
@@ -67,13 +68,33 @@ export async function handler(input) {
67
68
  `merging will **not** auto-close #${input.issue_number}. Close it manually with \`close_issue\` after merge.`;
68
69
  }
69
70
  }
70
- const commits = await getBranchCommits(branchName, baseBranch);
71
+ let commits = await getBranchCommits(branchName, baseBranch);
71
72
  const comments = await getIssueComments(input.issue_number);
73
+ // Whether this is a backfilled tracking PR (empty branch + allow_empty). Such
74
+ // PRs are opened as drafts — there's no real work to review yet.
75
+ let draftMode = false;
72
76
  if (commits.length === 0) {
73
- await addIssueComment(input.issue_number, `PR not created — branch \`${branchName}\` has no commits ahead of \`${baseBranch}\`. Push commits to the branch first, then create the PR.`);
74
- return {
75
- content: [{ type: "text", text: `PR not created — branch \`${branchName}\` has no commits ahead of \`${baseBranch}\`. Push commits first.` }],
76
- };
77
+ if (!input.allow_empty) {
78
+ await addIssueComment(input.issue_number, `PR not created — branch \`${branchName}\` has no commits ahead of \`${baseBranch}\`. Push commits to the branch first, or pass \`allow_empty: true\` to open a draft tracking PR.`);
79
+ return {
80
+ content: [{ type: "text", text: `PR not created — branch \`${branchName}\` has no commits ahead of \`${baseBranch}\`. Push commits first, or pass allow_empty: true for a draft tracking PR.` }],
81
+ };
82
+ }
83
+ // allow_empty: push an empty init commit so the branch diverges from base,
84
+ // then open a draft PR — the same mechanism create_issue uses under
85
+ // OKFFS_AUTO_PR (shared helper), applied to an already-created empty branch.
86
+ try {
87
+ pushEmptyInitCommit(branchName, input.issue_number);
88
+ }
89
+ catch (err) {
90
+ await addIssueComment(input.issue_number, `PR not created — branch \`${branchName}\` is empty and okffs could not push an init commit to diverge it from \`${baseBranch}\`. Push a commit manually, then retry.`);
91
+ return {
92
+ content: [{ type: "text", text: `PR not created — could not push an empty init commit to \`${branchName}\`: ${err instanceof Error ? err.message : String(err)}` }],
93
+ };
94
+ }
95
+ draftMode = true;
96
+ // Re-read so the PR body's Changes section reflects the new init commit.
97
+ commits = await getBranchCommits(branchName, baseBranch);
77
98
  }
78
99
  const title = `Close #${input.issue_number} - ${issue.title}`;
79
100
  const cleanedDescription = issue.body
@@ -184,6 +205,12 @@ export async function handler(input) {
184
205
  pr = { number: existing.number, html_url: existing.html_url };
185
206
  action = existing.draft ? "finalized (marked ready)" : "updated";
186
207
  }
208
+ else if (draftMode) {
209
+ // Empty-branch backfill — open a draft tracking PR (createDraftPullRequest
210
+ // returns just number + html_url, which is all we surface below).
211
+ pr = await createDraftPullRequest(title, body, branchName, baseBranch);
212
+ action = "created (draft tracking PR)";
213
+ }
187
214
  else {
188
215
  pr = await createPullRequest(title, body, branchName, baseBranch);
189
216
  action = "created";
@@ -1 +1 @@
1
- {"version":3,"file":"create_pull_request.js","sourceRoot":"","sources":["../../src/tools/create_pull_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;AAE1C,MAAM,CAAC,MAAM,WAAW,GACtB,gnCAAgnC,CAAC;AAEnnC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACzF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IAChH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kTAAkT,CAAC;CAC3V,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAkC;IAC9D,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnD,+EAA+E;IAC/E,gFAAgF;IAChF,iFAAiF;IACjF,iFAAiF;IACjF,yCAAyC;IACzC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1F,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,GAAG,QAAQ,CAAC;YACtB,4EAA4E;YAC5E,uCAAuC;YACvC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,qBAAqB,UAAU,IAAI,CAAC,CAAC,CAAC,iBAAiB,UAAU,IAAI,CAAC;YACpG,IAAI,CAAC;gBACH,MAAM,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,0EAA0E;gBAC1E,OAAO,CAAC,IAAI,CAAC,uDAAuD,KAAK,CAAC,YAAY,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACvI,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,eAAe,CACnB,KAAK,CAAC,YAAY,EAClB,2BAA2B,KAAK,CAAC,YAAY,mGAAmG,KAAK,CAAC,YAAY,6FAA6F,CAChQ,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,KAAK,CAAC,YAAY,4FAA4F,EAAE,CAAC;SACrK,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE5C,0EAA0E;IAC1E,+EAA+E;IAC/E,+EAA+E;IAC/E,6EAA6E;IAC7E,6EAA6E;IAC7E,2EAA2E;IAC3E,2EAA2E;IAC3E,yCAAyC;IACzC,MAAM,aAAa,GACjB,MAAM,CAAC,eAAe,IAAI,UAAU,KAAK,MAAM,CAAC,eAAe;QAC7D,CAAC,CAAC,4BAA4B,UAAU,mGAAmG;QAC3I,CAAC,CAAC,EAAE,CAAC;IAET,4EAA4E;IAC5E,0EAA0E;IAC1E,qEAAqE;IACrE,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,MAAM,oBAAoB,EAAE,CAAC;QACjD,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAC/B,aAAa;gBACX,4BAA4B,UAAU,gCAAgC,WAAW,OAAO;oBACxF,oCAAoC,KAAK,CAAC,YAAY,uDAAuD,CAAC;QAClH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAE5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,eAAe,CACnB,KAAK,CAAC,YAAY,EAClB,6BAA6B,UAAU,gCAAgC,UAAU,2DAA2D,CAC7I,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6BAA6B,UAAU,gCAAgC,UAAU,yBAAyB,EAAE,CAAC;SACvJ,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,KAAK,CAAC,YAAY,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IAE9D,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI;QACnC,CAAC,CAAC,KAAK,CAAC,IAAI;aACP,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC;aACzC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC;aACvC,IAAI,EAAE;QACX,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAEhB,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC;IAE3D,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;QACvC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACvE,CAAC,CAAC,oBAAoB,CAAC;IAEzB,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACtD,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC;QAC/C,CAAC,CAAC,cAAc;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,YAAY,CAAC;aAC3C,IAAI,CAAC,aAAa,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,SAAS,GAAG;QAChB,YAAY;QACZ,cAAc;QACd,EAAE;QACF,YAAY;QACZ,cAAc;KACf,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACpB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IAEpD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,WAAW,GAAa,EAAE,CAAC;IAC/B,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,WAAW,GAAG,MAAM,iBAAiB,CAAC;YACpC,OAAO,EAAE,qBAAqB;YAC9B,WAAW,EAAE,KAAK,CAAC,YAAY;YAC/B,UAAU,EAAE,KAAK,CAAC,KAAK;YACvB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,kBAAkB;YAC5C,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,8EAA8E;IAC9E,0CAA0C;IAC1C,MAAM,cAAc,GAAG,aAAa,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,qCAAqC,UAAU,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3G,MAAM,eAAe,CACnB,KAAK,CAAC,YAAY,EAClB,iDAAiD,UAAU,2EAA2E,CACvI,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iDAAiD,UAAU,aAAa,EAAE,CAAC;SACrH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,uEAAuE;QACvE,qEAAqE;QACrE,8EAA8E;QAC9E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxE,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC7B,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,KAAK,SAAS,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CACV,6CAA6C,KAAK,CAAC,YAAY,6BAA6B,EAC5F,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,0DAA0D;QAC1D,IAAI,CAAC;YACH,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,iCAAiC,UAAU,aAAa,EACxD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC;YACF,MAAM,eAAe,CACnB,KAAK,CAAC,YAAY,EAClB,4CAA4C,UAAU,yDAAyD,UAAU,mDAAmD,CAC7K,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4CAA4C,UAAU,kDAAkD,UAAU,+CAA+C,EAAE,CAAC;aAC9M,CAAC;QACJ,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,cAAc,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,GAAG,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,oCAAoC,cAAc,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChH,CAAC;QACH,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAC/D,IAAI,EAAwC,CAAC;IAC7C,IAAI,MAAc,CAAC;IAEnB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CACV,8BAA8B,QAAQ,CAAC,MAAM,4CAA4C,EACzF,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC9D,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAClE,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG;QACd,MAAM,MAAM,KAAK,EAAE,CAAC,QAAQ,EAAE;QAC9B,EAAE;QACF,IAAI;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,GAAG,aAAa,CAAC;IAC7C,MAAM,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEnD,4EAA4E;IAC5E,6EAA6E;IAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc;QACxC,CAAC,CAAC,uLAAuL,UAAU,6BAA6B;QAChO,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,MAAM,IAAI,MAAM,KAAK,EAAE,CAAC,QAAQ,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,EAAE,EAAE,CAAC;KACxI,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create_pull_request.js","sourceRoot":"","sources":["../../src/tools/create_pull_request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ export declare const name = "fix_into_base";
3
+ export declare const description: string;
4
+ export declare const inputSchema: z.ZodObject<{
5
+ head: z.ZodOptional<z.ZodString>;
6
+ base: z.ZodOptional<z.ZodString>;
7
+ summary: z.ZodOptional<z.ZodString>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ summary?: string | undefined;
10
+ head?: string | undefined;
11
+ base?: string | undefined;
12
+ }, {
13
+ summary?: string | undefined;
14
+ head?: string | undefined;
15
+ base?: string | undefined;
16
+ }>;
17
+ export declare function handler(input: z.infer<typeof inputSchema>): Promise<{
18
+ content: {
19
+ type: "text";
20
+ text: string;
21
+ }[];
22
+ }>;
23
+ //# sourceMappingURL=fix_into_base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix_into_base.d.ts","sourceRoot":"","sources":["../../src/tools/fix_into_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,IAAI,kBAAkB,CAAC;AAEpC,eAAO,MAAM,WAAW,QAI4e,CAAC;AAErgB,eAAO,MAAM,WAAW;;;;;;;;;;;;EAatB,CAAC;AAIH,wBAAsB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC;;;;;GA4F/D"}
@@ -0,0 +1,110 @@
1
+ import { z } from "zod";
2
+ import { getDefaultBranch, getBranchCommits, createPullRequest, getOpenPullRequestForBranch, updatePullRequest, } from "../github.js";
3
+ import { git, currentBranch } from "../git.js";
4
+ import { config } from "../config.js";
5
+ import { addIssueToProject, getProjectMetadata, setProjectFieldValue } from "../projects.js";
6
+ import { handler as mergePullRequest } from "./merge_pull_request.js";
7
+ export const name = "fix_into_base";
8
+ export const description = "Open (and, when opted in, merge) an ISSUE-LESS fix PR into the base branch (e.g. develop) — the mirror of promote_branch, which does the base→protected promotion. " +
9
+ "Use this for a small fix that doesn't warrant its own issue (e.g. review-comment cleanups) instead of dropping to raw `gh pr create` + `gh pr merge`: it is deliberately issue-less (no issue lookup, no Closes #N, no **Branch:** line required), authenticates with okffs's token, and — when the board is enabled — adds the PR to the Projects v2 board. " +
10
+ "head defaults to the current branch; base defaults to OKFFS_BASE_BRANCH (or the repo default). It NEVER targets OKFFS_PROTECTED_BRANCH — that stays promote_branch + a manual, user-driven merge. " +
11
+ "Opening the PR is always safe and unconditional. The merge is then attempted under the SAME gates and opt-in as merge_pull_request: it only merges when OKFFS_AUTO_MERGE_BASE=true, OKFFS_PROTECTED_BRANCH is set, and the PR is green (all checks pass), conflict-free, not blocked/behind, and has every review thread resolved — using OKFFS_BASE_MERGE_METHOD. If merge is off or a gate isn't met, the PR is left open with an actionable reason (re-run once it's green, or merge with merge_pull_request({ pr_number })).";
12
+ export const inputSchema = z.object({
13
+ head: z
14
+ .string()
15
+ .optional()
16
+ .describe("Branch to open the fix PR FROM (the PR head). Defaults to the current branch."),
17
+ base: z
18
+ .string()
19
+ .optional()
20
+ .describe("Branch to open the fix PR INTO (the PR base). Defaults to OKFFS_BASE_BRANCH, else the repo default. Never OKFFS_PROTECTED_BRANCH."),
21
+ summary: z
22
+ .string()
23
+ .optional()
24
+ .describe("Optional summary for the PR body. When omitted, the body lists the commits being landed."),
25
+ });
26
+ const text = (t) => ({ content: [{ type: "text", text: t }] });
27
+ export async function handler(input) {
28
+ // head defaults to the checked-out branch — this tool lands the work you're on.
29
+ const head = input.head ?? currentBranch() ?? undefined;
30
+ if (!head) {
31
+ return text("Could not determine the head branch to land — pass an explicit `head`.");
32
+ }
33
+ // base defaults to the base tier (OKFFS_BASE_BRANCH or the repo default).
34
+ const base = input.base ?? (await getDefaultBranch());
35
+ if (head === base) {
36
+ return text(`Nothing to land — head and base are both \`${base}\`. Check out the fix branch first, or pass a distinct \`head\`.`);
37
+ }
38
+ // This tool is base-tier only. Promoting into the protected branch is
39
+ // promote_branch's job (open) + a manual merge — never here.
40
+ if (config.protectedBranch && base === config.protectedBranch) {
41
+ return text(`[okffs] Refusing: \`${base}\` is OKFFS_PROTECTED_BRANCH. fix_into_base only lands into the base tier — use promote_branch to open a PR into the protected branch, then merge it yourself.`);
42
+ }
43
+ // Push the head so GitHub has the branch, then confirm it diverges from base.
44
+ try {
45
+ git(["push", "origin", head]);
46
+ }
47
+ catch (err) {
48
+ return text(`[okffs] Could not push \`${head}\` to origin: ${err instanceof Error ? err.message : String(err)}`);
49
+ }
50
+ const commits = await getBranchCommits(head, base);
51
+ if (commits.length === 0) {
52
+ return text(`Nothing to land — \`${head}\` has no commits ahead of \`${base}\`. Commit your fix first (e.g. commit_and_update).`);
53
+ }
54
+ const title = `Fix into ${base}: ${head}`;
55
+ const changes = commits.map((c) => `- ${c.commit.message.split("\n")[0]}`).join("\n");
56
+ const body = [
57
+ input.summary ?? `Issue-less fix PR from \`${head}\` into \`${base}\`. No \`Closes #N\` — this is a standalone fix, not an issue.`,
58
+ ``,
59
+ `## Landing (${commits.length} commit${commits.length === 1 ? "" : "s"})`,
60
+ changes,
61
+ ].join("\n");
62
+ // Reuse an already-open PR for this head→base rather than erroring (GitHub
63
+ // permits only one open PR per head→base pair).
64
+ const existing = await getOpenPullRequestForBranch(head, base);
65
+ let pr;
66
+ let action;
67
+ if (existing) {
68
+ await updatePullRequest(existing.number, { title, body });
69
+ pr = { number: existing.number, html_url: existing.html_url, node_id: existing.node_id };
70
+ action = "updated";
71
+ }
72
+ else {
73
+ pr = await createPullRequest(title, body, head, base);
74
+ action = "created";
75
+ }
76
+ const notes = [];
77
+ // Best-effort board placement — mirror promote_branch: a PR node id boards the
78
+ // PR itself as a first-class card. Never blocks the PR/merge.
79
+ if (config.projectEnabled) {
80
+ try {
81
+ const itemId = await addIssueToProject(pr.node_id);
82
+ notes.push("Added the PR to the project board.");
83
+ if (config.promotionStatus) {
84
+ const meta = await getProjectMetadata();
85
+ const optionId = meta.statusFieldId ? meta.statusOptions.get(config.promotionStatus) : undefined;
86
+ if (meta.statusFieldId && optionId) {
87
+ await setProjectFieldValue(itemId, meta.statusFieldId, optionId);
88
+ notes.push(`Moved the card to "${config.promotionStatus}".`);
89
+ }
90
+ }
91
+ }
92
+ catch (err) {
93
+ const msg = err instanceof Error ? err.message : String(err);
94
+ console.warn(`[okffs] Failed to add fix PR #${pr.number} to the board:`, msg);
95
+ notes.push(`⚠️ Could not add the PR to the board: ${msg}`);
96
+ }
97
+ }
98
+ const lines = [`Fix PR #${pr.number} ${action}: ${pr.html_url}`];
99
+ if (notes.length > 0)
100
+ lines.push(...notes);
101
+ // Merge step: reuse merge_pull_request's gating verbatim via its pr_number
102
+ // mode. It self-gates on OKFFS_AUTO_MERGE_BASE and every green check, so when
103
+ // merge is off or the PR isn't green it declines with an actionable reason and
104
+ // the PR stays open (re-run once green, or call merge_pull_request directly).
105
+ const mergeResult = await mergePullRequest({ pr_number: pr.number });
106
+ const mergeText = mergeResult.content.map((c) => c.text).join("\n");
107
+ lines.push("", `— Merge attempt —`, mergeText);
108
+ return text(lines.join("\n"));
109
+ }
110
+ //# sourceMappingURL=fix_into_base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix_into_base.js","sourceRoot":"","sources":["../../src/tools/fix_into_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,CAAC,MAAM,IAAI,GAAG,eAAe,CAAC;AAEpC,MAAM,CAAC,MAAM,WAAW,GACtB,qKAAqK;IACrK,+VAA+V;IAC/V,oMAAoM;IACpM,kgBAAkgB,CAAC;AAErgB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mIAAmI,CAAC;IAChJ,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0FAA0F,CAAC;CACxG,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAEhF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAkC;IAC9D,gFAAgF;IAChF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,aAAa,EAAE,IAAI,SAAS,CAAC;IACxD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC,wEAAwE,CAAC,CAAC;IACxF,CAAC;IAED,0EAA0E;IAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;IAEtD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,8CAA8C,IAAI,kEAAkE,CAAC,CAAC;IACpI,CAAC;IAED,sEAAsE;IACtE,6DAA6D;IAC7D,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,KAAK,MAAM,CAAC,eAAe,EAAE,CAAC;QAC9D,OAAO,IAAI,CACT,uBAAuB,IAAI,gKAAgK,CAC5L,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,IAAI,CAAC;QACH,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,4BAA4B,IAAI,iBAAiB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,uBAAuB,IAAI,gCAAgC,IAAI,qDAAqD,CAAC,CAAC;IACpI,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,IAAI,KAAK,IAAI,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG;QACX,KAAK,CAAC,OAAO,IAAI,4BAA4B,IAAI,aAAa,IAAI,gEAAgE;QAClI,EAAE;QACF,eAAe,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;QACzE,OAAO;KACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,2EAA2E;IAC3E,gDAAgD;IAChD,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/D,IAAI,EAAyD,CAAC;IAC9D,IAAI,MAAc,CAAC;IACnB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzF,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,+EAA+E;IAC/E,8DAA8D;IAC9D,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,kBAAkB,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACjG,IAAI,IAAI,CAAC,aAAa,IAAI,QAAQ,EAAE,CAAC;oBACnC,MAAM,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;oBACjE,KAAK,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC,MAAM,gBAAgB,EAAE,GAAG,CAAC,CAAC;YAC9E,KAAK,CAAC,IAAI,CAAC,yCAAyC,GAAG,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,MAAM,IAAI,MAAM,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAE3C,2EAA2E;IAC3E,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;IAE/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  export declare const name = "list_issues";
3
- export declare const description = "List all open GitHub issues, each with its branch, any linked open or draft PR, its board column (project), its Priority, and its relationships (parent, children, blocked-by, blocking) shown as a tree. Issues are ordered by Priority (Urgent \u2192 High \u2192 Medium \u2192 Low \u2192 unset) so the most important work surfaces first \u2014 factor Priority in when deciding what to do next. Replaces the need for a separate PR-listing tool.";
3
+ export declare const description = "List all open GitHub issues, each with its branch, any linked open or draft PR, its board column (project), its Priority, its native Issue Type (Task/Bug/Feature/\u2026, when the org defines them), and its relationships (parent, children, blocked-by, blocking) shown as a tree. Issues are ordered by Priority (Urgent \u2192 High \u2192 Medium \u2192 Low \u2192 unset) so the most important work surfaces first \u2014 factor Priority in when deciding what to do next. Replaces the need for a separate PR-listing tool.";
4
4
  export declare const inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
5
5
  export declare function handler(_input: z.infer<typeof inputSchema>): Promise<{
6
6
  content: {
@@ -1 +1 @@
1
- {"version":3,"file":"list_issues.d.ts","sourceRoot":"","sources":["../../src/tools/list_issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,IAAI,gBAAgB,CAAC;AAElC,eAAO,MAAM,WAAW,6bAC2Y,CAAC;AAEpa,eAAO,MAAM,WAAW,gDAAe,CAAC;AAWxC,wBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC;;;;;GAoHhE"}
1
+ {"version":3,"file":"list_issues.d.ts","sourceRoot":"","sources":["../../src/tools/list_issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,IAAI,gBAAgB,CAAC;AAElC,eAAO,MAAM,WAAW,ygBACkd,CAAC;AAE3e,eAAO,MAAM,WAAW,gDAAe,CAAC;AAWxC,wBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC;;;;;GA0HhE"}
@@ -3,7 +3,7 @@ import { listIssues, listOpenPullRequests, parseRelationships, buildBranchName,
3
3
  import { config } from "../config.js";
4
4
  import { getProjectFieldsByIssueNumber, getOrgIssueFieldValuesByNumber } from "../projects.js";
5
5
  export const name = "list_issues";
6
- export const description = "List all open GitHub issues, each with its branch, any linked open or draft PR, its board column (project), its Priority, and its relationships (parent, children, blocked-by, blocking) shown as a tree. Issues are ordered by Priority (Urgent → High → Medium → Low → unset) so the most important work surfaces first — factor Priority in when deciding what to do next. Replaces the need for a separate PR-listing tool.";
6
+ export const description = "List all open GitHub issues, each with its branch, any linked open or draft PR, its board column (project), its Priority, its native Issue Type (Task/Bug/Feature/…, when the org defines them), and its relationships (parent, children, blocked-by, blocking) shown as a tree. Issues are ordered by Priority (Urgent → High → Medium → Low → unset) so the most important work surfaces first — factor Priority in when deciding what to do next. Replaces the need for a separate PR-listing tool.";
7
7
  export const inputSchema = z.object({});
8
8
  // Board Priority order (highest first); unknown named priorities rank between the
9
9
  // known set and unset, so custom option names still sort ahead of no priority.
@@ -106,6 +106,11 @@ export async function handler(_input) {
106
106
  if (effort) {
107
107
  lines.push(` effort: ${effort}`);
108
108
  }
109
+ // Native GitHub Issue Type (Task/Bug/Feature/…), read straight off the issue
110
+ // object — no extra fetch. Absent on user repos / when the org defines none.
111
+ if (issue.type) {
112
+ lines.push(` type: ${issue.type}`);
113
+ }
109
114
  // Relationships as a small tree under the issue.
110
115
  const relLines = [];
111
116
  if (rels.parent.length)
@@ -1 +1 @@
1
- {"version":3,"file":"list_issues.js","sourceRoot":"","sources":["../../src/tools/list_issues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list_issues.js","sourceRoot":"","sources":["../../src/tools/list_issues.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { z } from "zod";
2
+ export declare const name = "merge_pull_request";
3
+ export declare const description: string;
4
+ export declare const inputSchema: z.ZodObject<{
5
+ issue_number: z.ZodOptional<z.ZodNumber>;
6
+ pr_number: z.ZodOptional<z.ZodNumber>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ issue_number?: number | undefined;
9
+ pr_number?: number | undefined;
10
+ }, {
11
+ issue_number?: number | undefined;
12
+ pr_number?: number | undefined;
13
+ }>;
14
+ export declare function handler(input: z.infer<typeof inputSchema>): Promise<{
15
+ content: {
16
+ type: "text";
17
+ text: string;
18
+ }[];
19
+ }>;
20
+ //# sourceMappingURL=merge_pull_request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge_pull_request.d.ts","sourceRoot":"","sources":["../../src/tools/merge_pull_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,eAAO,MAAM,IAAI,uBAAuB,CAAC;AAEzC,eAAO,MAAM,WAAW,QAM4S,CAAC;AAErU,eAAO,MAAM,WAAW;;;;;;;;;EAiBtB,CAAC;AAgBH,wBAAsB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC;;;;;GAyK/D"}
@@ -0,0 +1,176 @@
1
+ import { z } from "zod";
2
+ import { getIssue, extractBranchFromBody, getDefaultBranch, getRepoDefaultBranch, getOpenPullRequestForBranch, getPullRequest, getCombinedStatus, getCheckRuns, getPullRequestReview, mergePullRequest, closeIssue, addIssueComment, } from "../github.js";
3
+ import { config } from "../config.js";
4
+ export const name = "merge_pull_request";
5
+ export const description = "Autonomously merge a GREEN, review-resolved PR into the BASE branch (e.g. develop) using the configured per-tier merge method (OKFFS_BASE_MERGE_METHOD, default squash). " +
6
+ "Provide EXACTLY ONE of: issue_number (merge the issue's PR and complete the loop — comment on the issue and close it when the base isn't the repo default) OR pr_number (merge-only mode for an ISSUE-LESS fix PR into the base branch — skips the issue lookup, comment, and close, and needs no **Branch:** line). " +
7
+ "This is the ONE okffs action that merges — every other tool only opens PRs and hands back. It is therefore heavily gated and OPT-IN: it does nothing unless OKFFS_AUTO_MERGE_BASE=true. " +
8
+ "It NEVER merges OKFFS_PROTECTED_BRANCH (e.g. main) — that stays a manual, user-driven merge/tag — and refuses entirely if OKFFS_PROTECTED_BRANCH is unset, so it can't merge into an unnamed protected branch. " +
9
+ "Before merging it independently verifies (not merely trusting branch-protection rules): the PR targets the base tier and not the protected branch; it is open, not a draft, and free of conflicts; all commit statuses AND check runs on the head are green (no failing or pending checks); the PR is not blocked by a required gate; and every review thread is resolved. Any unmet gate → it refuses with an actionable reason and does not merge. " +
10
+ "On success (issue mode) it merges, comments on the issue, and — when the base isn't the repo default (so GitHub's Closes #N won't auto-close) — closes the issue to complete the loop. Use for landing small review-fix / feature PRs into develop without a human merge; the develop→main promotion always stays with the user.";
11
+ export const inputSchema = z.object({
12
+ issue_number: z
13
+ .number()
14
+ .int()
15
+ .positive()
16
+ .optional()
17
+ .describe("The issue whose PR (into the base branch) should be merged — completes the loop (issue comment + close). Provide this OR pr_number, not both."),
18
+ pr_number: z
19
+ .number()
20
+ .int()
21
+ .positive()
22
+ .optional()
23
+ .describe("Merge-only mode: merge an ISSUE-LESS fix PR into the base branch directly by PR number — no issue comment/close and no **Branch:** line required, but all the same green gates apply. Provide this OR issue_number, not both."),
24
+ });
25
+ const text = (t) => ({ content: [{ type: "text", text: t }] });
26
+ // Poll the PR until GitHub finishes computing `mergeable` (it returns null right
27
+ // after a push). A few short retries; if it never settles we refuse rather than
28
+ // guess. Uses setTimeout (not a shell sleep) so it works inside the server.
29
+ async function getPullRequestWhenComputed(prNumber) {
30
+ let detail = await getPullRequest(prNumber);
31
+ for (let i = 0; detail.mergeable === null && i < 5; i++) {
32
+ await new Promise((r) => setTimeout(r, 800));
33
+ detail = await getPullRequest(prNumber);
34
+ }
35
+ return detail;
36
+ }
37
+ export async function handler(input) {
38
+ // ── Gate 0: exactly one of issue_number / pr_number ───────────────────────
39
+ const hasIssue = input.issue_number !== undefined;
40
+ const hasPr = input.pr_number !== undefined;
41
+ if (hasIssue === hasPr) {
42
+ return text("[okffs] Provide exactly one of issue_number (merge an issue's PR and complete the loop — comment + close) " +
43
+ "or pr_number (merge-only mode for an issue-less fix PR into the base branch). " +
44
+ (hasIssue ? "You passed both." : "You passed neither."));
45
+ }
46
+ // ── Gate 1: opt-in ────────────────────────────────────────────────────────
47
+ if (!config.autoMergeBase) {
48
+ return text("Autonomous merge is off. okffs will not merge a PR unless OKFFS_AUTO_MERGE_BASE=true — set it to opt in " +
49
+ "(the develop→main promotion always stays a manual, user-driven merge regardless).");
50
+ }
51
+ // ── Gate 2: protected branch must be named ────────────────────────────────
52
+ if (!config.protectedBranch) {
53
+ return text("[okffs] Refusing to merge: OKFFS_PROTECTED_BRANCH is unset. okffs must know which branch it may never merge " +
54
+ "into before it merges anything — set OKFFS_PROTECTED_BRANCH (e.g. main) so autonomous merges can be confined to the base tier.");
55
+ }
56
+ const baseTier = await getDefaultBranch(); // OKFFS_BASE_BRANCH or the repo default
57
+ // Misconfiguration guard: the base tier must not itself be the protected branch.
58
+ if (baseTier === config.protectedBranch) {
59
+ return text(`[okffs] Refusing to merge: the base branch (\`${baseTier}\`) is the same as OKFFS_PROTECTED_BRANCH. ` +
60
+ "okffs never autonomously merges the protected branch — set OKFFS_BASE_BRANCH to a distinct base tier (e.g. develop).");
61
+ }
62
+ // Resolve the PR to merge. Issue mode reads the issue's **Branch:** line and
63
+ // finds its open PR into the base tier; merge-only mode takes the PR directly.
64
+ let prNumber;
65
+ if (hasIssue) {
66
+ const issue = await getIssue(input.issue_number);
67
+ const branch = extractBranchFromBody(issue.body);
68
+ if (!branch) {
69
+ return text(`Issue #${input.issue_number} has no associated branch (no **Branch:** line), so there's no PR to merge.`);
70
+ }
71
+ const prRef = await getOpenPullRequestForBranch(branch, baseTier);
72
+ if (!prRef) {
73
+ return text(`No open PR found for branch \`${branch}\` into \`${baseTier}\`. Open one with create_pull_request first.`);
74
+ }
75
+ prNumber = prRef.number;
76
+ }
77
+ else {
78
+ prNumber = input.pr_number;
79
+ }
80
+ const pr = await getPullRequestWhenComputed(prNumber);
81
+ const label = `PR #${pr.number} (${pr.head.ref} → ${pr.base.ref})`;
82
+ // ── Gate 3: target is the base tier, never the protected branch ───────────
83
+ if (pr.base.ref === config.protectedBranch) {
84
+ return text(`[okffs] Refusing to merge ${label}: it targets the protected branch \`${config.protectedBranch}\`. ` +
85
+ "Promotion into the protected branch is a manual, user-driven merge (use promote_branch to open it) — okffs never merges it.");
86
+ }
87
+ if (pr.base.ref !== baseTier) {
88
+ return text(`[okffs] Refusing to merge ${label}: it targets \`${pr.base.ref}\`, not the base tier \`${baseTier}\`. ` +
89
+ "Autonomous merge only lands issue PRs into the base branch.");
90
+ }
91
+ // ── Basic state: open, not draft, not already merged ──────────────────────
92
+ if (pr.merged)
93
+ return text(`${label} is already merged — nothing to do.`);
94
+ if (pr.state !== "open")
95
+ return text(`[okffs] Refusing to merge ${label}: the PR is ${pr.state}, not open.`);
96
+ if (pr.draft)
97
+ return text(`[okffs] Refusing to merge ${label}: it is still a draft. Mark it ready (e.g. create_pull_request finalizes it) first.`);
98
+ // ── Conflicts / needs-update / required-gate signals (mergeable_state) ────
99
+ if (pr.mergeable === false || pr.mergeable_state === "dirty") {
100
+ return text(`[okffs] Refusing to merge ${label}: it has merge conflicts with \`${baseTier}\`. Resolve them, then retry.`);
101
+ }
102
+ if (pr.mergeable_state === "behind") {
103
+ return text(`[okffs] Refusing to merge ${label}: the branch is behind \`${baseTier}\`. Update it (merge/rebase base in), then retry.`);
104
+ }
105
+ if (pr.mergeable_state === "blocked") {
106
+ return text(`[okffs] Refusing to merge ${label}: GitHub reports it as blocked by a required gate (required review or required check not yet satisfied).`);
107
+ }
108
+ if (pr.mergeable === null || pr.mergeable_state === "unknown") {
109
+ return text(`[okffs] Refusing to merge ${label}: GitHub hasn't finished computing its mergeability. Try again shortly.`);
110
+ }
111
+ // ── Gate 4: independently verify checks are green (don't trust the ruleset) ─
112
+ // A ruleset may require NO status checks, yet CI can still be red — so verify
113
+ // the head commit's statuses AND check runs ourselves. Any failing or pending
114
+ // check refuses the merge.
115
+ const [combined, checks] = await Promise.all([
116
+ getCombinedStatus(pr.head.sha),
117
+ getCheckRuns(pr.head.sha),
118
+ ]);
119
+ const badStatuses = combined.statuses
120
+ .filter((s) => s.state !== "success")
121
+ .map((s) => `${s.context} (${s.state})`);
122
+ const badChecks = checks.check_runs
123
+ .filter((c) => c.status !== "completed" || !["success", "neutral", "skipped"].includes(c.conclusion ?? ""))
124
+ .map((c) => `${c.name} (${c.status === "completed" ? c.conclusion : c.status})`);
125
+ const failing = [...badStatuses, ...badChecks];
126
+ if (failing.length > 0) {
127
+ return text(`[okffs] Refusing to merge ${label}: not all checks are green. Outstanding: ${failing.join(", ")}. ` +
128
+ "Wait for them to pass (or fix them), then retry.");
129
+ }
130
+ // ── Gate 5: every review thread must be resolved ──────────────────────────
131
+ const review = await getPullRequestReview(pr.number);
132
+ const unresolved = review.threads.filter((t) => !t.isResolved && t.comments.length > 0);
133
+ if (unresolved.length > 0) {
134
+ return text(`[okffs] Refusing to merge ${label}: ${unresolved.length} review thread(s) still unresolved. ` +
135
+ "Address and resolve them (see the address_pr_review prompt), then retry.");
136
+ }
137
+ // ── All gates passed — merge with the base-tier method ────────────────────
138
+ const method = config.baseMergeMethod;
139
+ try {
140
+ await mergePullRequest(pr.number, method);
141
+ }
142
+ catch (err) {
143
+ return text(`[okffs] Merge of ${label} failed at the GitHub API: ${err instanceof Error ? err.message : String(err)}`);
144
+ }
145
+ const lines = [`✅ Merged ${label} into \`${baseTier}\` via ${method}.`];
146
+ // Merge-only mode: there's no issue to comment on or close — we're done.
147
+ if (!hasIssue) {
148
+ return text(lines.join("\n"));
149
+ }
150
+ const issueNumber = input.issue_number;
151
+ // Complete the loop: `Closes #N` only auto-closes when merging into the repo
152
+ // default. For a non-default base tier (e.g. develop) the issue stays open, so
153
+ // close it here. Non-fatal — the merge already succeeded.
154
+ const repoDefault = await getRepoDefaultBranch();
155
+ if (baseTier !== repoDefault) {
156
+ try {
157
+ await closeIssue(issueNumber);
158
+ lines.push(`Closed #${issueNumber} (merging into \`${baseTier}\` doesn't trigger GitHub's auto-close).`);
159
+ }
160
+ catch (err) {
161
+ lines.push(`⚠ Could not auto-close #${issueNumber} — close it manually. (${err instanceof Error ? err.message : String(err)})`);
162
+ }
163
+ }
164
+ else {
165
+ lines.push(`GitHub will auto-close #${issueNumber} via \`Closes #${issueNumber}\` (merged into the default branch).`);
166
+ }
167
+ // Log the merge on the issue for an audit trail.
168
+ try {
169
+ await addIssueComment(issueNumber, lines.join("\n"));
170
+ }
171
+ catch {
172
+ /* non-fatal: the response still reports the outcome */
173
+ }
174
+ return text(lines.join("\n"));
175
+ }
176
+ //# sourceMappingURL=merge_pull_request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge_pull_request.js","sourceRoot":"","sources":["../../src/tools/merge_pull_request.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  export declare const name = "plan";
3
- export declare const description = "Plan a piece of work and create all the resulting GitHub issues (with branches, draft PRs when OKFFS_AUTO_PR=true, and board placement when OKFFS_PROJECT_AUTO_ADD=true) in one shot. Given a free-text description of the work, break it down yourself into a structured list of issues \u2014 each with a title, description, inferred labels, an inferred priority/effort where you can judge it, and any relationships between them \u2014 and pass that breakdown as the tasks array. Infer labels from GitHub's defaults: bug, documentation, duplicate, enhancement, good first issue, help wanted, invalid, question, wontfix. Express dependencies via per-task relationships, referencing other tasks by their 1-based position in the list. Two-step confirmation: call once to preview the plan, then re-call with confirmed: true to create everything.";
3
+ export declare const description = "Plan a piece of work and create all the resulting GitHub issues (with branches, draft PRs when OKFFS_AUTO_PR=true, and board placement when OKFFS_PROJECT_AUTO_ADD=true) in one shot. Given a free-text description of the work, break it down yourself into a structured list of issues \u2014 each with a title, description, inferred labels, an inferred priority/effort where you can judge it, an inferred native GitHub Issue Type (Task/Bug/Feature/\u2026 \u2014 commonly Epic for the overall effort and Task/Story/Feature/Bug for its children), and any relationships between them \u2014 and pass that breakdown as the tasks array. Infer labels from GitHub's defaults: bug, documentation, duplicate, enhancement, good first issue, help wanted, invalid, question, wontfix. Express dependencies via per-task relationships, referencing other tasks by their 1-based position in the list. Two-step confirmation: call once to preview the plan, then re-call with confirmed: true to create everything.";
4
4
  export declare const inputSchema: z.ZodObject<{
5
5
  description: z.ZodString;
6
6
  tasks: z.ZodArray<z.ZodObject<{
@@ -11,6 +11,7 @@ export declare const inputSchema: z.ZodObject<{
11
11
  milestone: z.ZodOptional<z.ZodNumber>;
12
12
  priority: z.ZodOptional<z.ZodString>;
13
13
  effort: z.ZodOptional<z.ZodString>;
14
+ type: z.ZodOptional<z.ZodString>;
14
15
  relationships: z.ZodOptional<z.ZodArray<z.ZodObject<{
15
16
  type: z.ZodEnum<["blocked_by", "blocking", "parent"]>;
16
17
  target: z.ZodNumber;
@@ -24,6 +25,7 @@ export declare const inputSchema: z.ZodObject<{
24
25
  }, "strip", z.ZodTypeAny, {
25
26
  title: string;
26
27
  description: string;
28
+ type?: string | undefined;
27
29
  priority?: string | undefined;
28
30
  effort?: string | undefined;
29
31
  assignees?: string[] | undefined;
@@ -36,6 +38,7 @@ export declare const inputSchema: z.ZodObject<{
36
38
  }, {
37
39
  title: string;
38
40
  description: string;
41
+ type?: string | undefined;
39
42
  priority?: string | undefined;
40
43
  effort?: string | undefined;
41
44
  assignees?: string[] | undefined;
@@ -52,6 +55,7 @@ export declare const inputSchema: z.ZodObject<{
52
55
  tasks: {
53
56
  title: string;
54
57
  description: string;
58
+ type?: string | undefined;
55
59
  priority?: string | undefined;
56
60
  effort?: string | undefined;
57
61
  assignees?: string[] | undefined;
@@ -68,6 +72,7 @@ export declare const inputSchema: z.ZodObject<{
68
72
  tasks: {
69
73
  title: string;
70
74
  description: string;
75
+ type?: string | undefined;
71
76
  priority?: string | undefined;
72
77
  effort?: string | undefined;
73
78
  assignees?: string[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/tools/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,IAAI,SAAS,CAAC;AAE3B,eAAO,MAAM,WAAW,y0BACsyB,CAAC;AAiC/zB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAStB,CAAC;AAQH,wBAAsB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC;;;;;GAuM/D"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/tools/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuBxB,eAAO,MAAM,IAAI,SAAS,CAAC;AAE3B,eAAO,MAAM,WAAW,i+BACo7B,CAAC;AAoC78B,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAStB,CAAC;AAQH,wBAAsB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC;;;;;GAyN/D"}