@neturely/okffs 0.6.0 → 0.7.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 (53) hide show
  1. package/CHANGELOG.md +12 -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 +6 -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/create_issue.d.ts +3 -0
  22. package/dist/tools/create_issue.d.ts.map +1 -1
  23. package/dist/tools/create_issue.js +51 -41
  24. package/dist/tools/create_issue.js.map +1 -1
  25. package/dist/tools/create_issues_from_list.d.ts +6 -1
  26. package/dist/tools/create_issues_from_list.d.ts.map +1 -1
  27. package/dist/tools/create_issues_from_list.js +14 -1
  28. package/dist/tools/create_issues_from_list.js.map +1 -1
  29. package/dist/tools/create_pull_request.d.ts +4 -1
  30. package/dist/tools/create_pull_request.d.ts.map +1 -1
  31. package/dist/tools/create_pull_request.js +35 -8
  32. package/dist/tools/create_pull_request.js.map +1 -1
  33. package/dist/tools/list_issues.d.ts +1 -1
  34. package/dist/tools/list_issues.d.ts.map +1 -1
  35. package/dist/tools/list_issues.js +6 -1
  36. package/dist/tools/list_issues.js.map +1 -1
  37. package/dist/tools/merge_pull_request.d.ts +17 -0
  38. package/dist/tools/merge_pull_request.d.ts.map +1 -0
  39. package/dist/tools/merge_pull_request.js +142 -0
  40. package/dist/tools/merge_pull_request.js.map +1 -0
  41. package/dist/tools/plan.d.ts +6 -1
  42. package/dist/tools/plan.d.ts.map +1 -1
  43. package/dist/tools/plan.js +16 -1
  44. package/dist/tools/plan.js.map +1 -1
  45. package/dist/tools/set_issue_fields.d.ts +3 -0
  46. package/dist/tools/set_issue_fields.d.ts.map +1 -1
  47. package/dist/tools/set_issue_fields.js +40 -32
  48. package/dist/tools/set_issue_fields.js.map +1 -1
  49. package/dist/tools/update_issue.d.ts +32 -0
  50. package/dist/tools/update_issue.d.ts.map +1 -0
  51. package/dist/tools/update_issue.js +46 -0
  52. package/dist/tools/update_issue.js.map +1 -0
  53. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ See [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.7.0] - 2026-07-06
9
+ ### Added
10
+ - Address #217 review: allow clearing milestone in update_issue + accurate auth wording ([#218](https://github.com/neturely/okffs/issues/218))
11
+ - Add merge-method-per-tier config: OKFFS_BASE_MERGE_METHOD / OKFFS_PROTECTED_MERGE_METHOD ([#209](https://github.com/neturely/okffs/issues/209))
12
+ - create_pull_request: opt-in draft/empty-branch mode to backfill a PR for a branch with no commits ([#205](https://github.com/neturely/okffs/issues/205))
13
+ - Add update_issue tool — mutate title/assignees/labels/milestone on an existing issue ([#203](https://github.com/neturely/okffs/issues/203))
14
+ - Support GitHub native Issue Types: infer + set on create_issue, surface in list_issues ([#201](https://github.com/neturely/okffs/issues/201))
15
+ ### Changed
16
+ - Autonomous base-branch merge for green issue PRs (opt-in, heavily gated; never touches protected) ([#211](https://github.com/neturely/okffs/issues/211))
17
+
8
18
  ## [0.6.0] - 2026-07-05
9
19
  ### Fixed
10
20
  - Reorganise env vars into labelled groups across .env.example and README (and fix stale/missing entries) ([#196](https://github.com/neturely/okffs/issues/196))
@@ -125,7 +135,8 @@ See [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
125
135
  - `create_pull_request` commits the updated CHANGELOG onto the branch and pushes the branch before opening the PR, with non-blocking error handling ([#38](https://github.com/2b9sa2owa/okffs/issues/38)).
126
136
  - All git operations now run via `execFileSync` with argument arrays (no shell), removing command-injection risk from branch names and commit hints; tools also checkout the target branch before committing/pushing and restore the original branch afterward.
127
137
 
128
- [Unreleased]: https://github.com/neturely/okffs/compare/v0.6.0...HEAD
138
+ [Unreleased]: https://github.com/neturely/okffs/compare/v0.7.0...HEAD
139
+ [0.7.0]: https://github.com/neturely/okffs/compare/v0.6.0...v0.7.0
129
140
  [0.6.0]: https://github.com/neturely/okffs/compare/v0.5.2...v0.6.0
130
141
  [0.5.2]: https://github.com/neturely/okffs/compare/v0.5.1...v0.5.2
131
142
  [0.5.1]: https://github.com/neturely/okffs/compare/v0.5.0...v0.5.1
package/README.md CHANGED
@@ -46,22 +46,24 @@ Claude infers labels (`bug`, `enhancement`, …) from the title and description
46
46
 
47
47
  | Tool | What it does |
48
48
  |------|-------------|
49
- | `create_issue` | Creates an issue and a matching branch. Infers labels, and a board `priority`/`effort` from the task (toggle with `OKFFS_INFER_PRIORITY`/`OKFFS_INFER_EFFORT`). Optional `assignees`, `labels`, `milestone`, `priority`, `effort`. Opens a draft PR immediately when `OKFFS_AUTO_PR=true`. |
50
- | `create_issues_from_list` | Creates many issues + branches from a task list in one shot. Confirms first. Per-task `labels`, `assignees`, `milestone`, `priority`, `effort`. |
51
- | `plan` | Give it a free-text description plus the breakdown Claude generates (titles, descriptions, labels, relationships); it creates every issue + branch, wires up relationships, and opens draft PRs when `OKFFS_AUTO_PR=true`. Confirms first. |
52
- | `list_issues` | Lists open issues with branch, linked PR, board column, `priority:`/`effort:`, and relationships as a tree — ordered by priority so the most important work is on top. |
49
+ | `create_issue` | Creates an issue and a matching branch. Infers labels, a board `priority`/`effort`, and a native Issue Type from the task (toggle with `OKFFS_INFER_PRIORITY`/`OKFFS_INFER_EFFORT`/`OKFFS_INFER_TYPE`). Optional `assignees`, `labels`, `milestone`, `priority`, `effort`, `type`. Opens a draft PR immediately when `OKFFS_AUTO_PR=true`. |
50
+ | `create_issues_from_list` | Creates many issues + branches from a task list in one shot. Confirms first. Per-task `labels`, `assignees`, `milestone`, `priority`, `effort`, `type`. |
51
+ | `plan` | Give it a free-text description plus the breakdown Claude generates (titles, descriptions, labels, priority/effort/type, relationships); it creates every issue + branch, wires up relationships, and opens draft PRs when `OKFFS_AUTO_PR=true`. Confirms first. |
52
+ | `list_issues` | Lists open issues with branch, linked PR, board column, `priority:`/`effort:`, native `type:`, and relationships as a tree — ordered by priority so the most important work is on top. |
53
53
  | `get_issue` | Full details for one issue: title, body, labels, assignees, branch, status. |
54
54
  | `comment_issue` | Posts a comment — handy for logging what a branch did. |
55
55
  | `link_issues` | Links two issues (`blocked_by`, `blocking`, `parent`), stored under a `## Relationships` section. |
56
56
  | `close_issue` | Closes an issue and tips you to `/clear` before the next one. |
57
- | `create_pull_request` | Opens a PR for an issue branch — generates the title/body, pushes the branch, always includes `Closes #N`, and comments back. Can write changelog fragments when `OKFFS_UPDATE_DOCS=true`. |
57
+ | `create_pull_request` | Opens a PR for an issue branch — generates the title/body, pushes the branch, always includes `Closes #N`, and comments back. Can write changelog fragments when `OKFFS_UPDATE_DOCS=true`. Pass `allow_empty: true` to backfill a **draft** tracking PR on a branch with no commits (pushes an empty init commit to diverge it). |
58
58
  | `commit_and_update` | Stages, commits (message from your `hint` or the diff), pushes, and posts a progress comment to the issue. |
59
+ | `merge_pull_request` | The one okffs tool that **merges**: autonomously merges a green, review-resolved issue PR into the **base** branch (e.g. `develop`) using `OKFFS_BASE_MERGE_METHOD`, then closes the issue. Opt-in (`OKFFS_AUTO_MERGE_BASE=true`) and heavily gated — never touches `OKFFS_PROTECTED_BRANCH`, independently verifies checks/mergeability/threads. The `develop → main` promotion stays your manual merge. |
59
60
  | `list_pr_review_comments` | Fetches a PR's inline review threads and summaries. |
60
61
  | `reply_to_review_comment` | Replies to an inline review thread by id. |
61
62
  | `resolve_review_thread` | Resolves a review thread — only when `OKFFS_RESOLVE_THREADS=true`. |
62
63
  | `prepare_release` | Bumps the version, rolls the CHANGELOG, commits on a release branch, and opens a PR. Confirms first; does not tag or publish. |
63
64
  | `update_project_status` | Moves an issue between board columns (`Backlog`, `Ready`, `In Progress`, `Review`). Needs `OKFFS_PROJECT_ENABLED`. |
64
- | `set_issue_fields` | Sets board Priority/Effort on an **existing** issue (adds it to the board first if needed) handles project-native and org-level Issue Fields. `create_issue` only sets these at creation; use this afterwards. Status stays with `update_project_status`. |
65
+ | `set_issue_fields` | Sets board Priority/Effort **and/or the native Issue Type** on an **existing** issue. Priority/Effort handle project-native and org-level Issue Fields (needs `OKFFS_PROJECT_ENABLED`); `type` is org-native and works independently. `create_issue` only sets these at creation; use this afterwards. Status stays with `update_project_status`. |
66
+ | `update_issue` | Edits an **existing** issue's core fields — `title`, `assignees`, `labels`, `milestone`, `body` — via one PATCH with the configured token. `labels`/`assignees` replace the whole set (`[]` clears). For Priority/Effort/Type use `set_issue_fields`; for Status use `update_project_status`. |
65
67
  | `delete_issue` | Closes an issue **and** deletes its branch. Destructive — needs `confirmed: true`. |
66
68
  | `delete_branch` | Deletes a branch **and** closes its issue. Destructive — needs `confirmed: true`. |
67
69
 
@@ -136,6 +138,8 @@ All optional; unset unless noted. Grouped by concern — the same groups appear
136
138
  | `OKFFS_PROTECTED_BRANCH` | — | A branch okffs must never autonomously **merge**, tag, or publish into (e.g. `main`). Governs *merging*, not PR *creation*: okffs will freely **open** a PR targeting it (opening is safe — the merge is already gated by branch protection + your manual merge) and just adds a reminder that the merge/tag stay with you. `prepare_release` flags merging/tagging into it as a manual, user-gated step. |
137
139
  | `OKFFS_IDENTIFIER` | — | Prefix for branch names: `{number}-{identifier}-{slug}`. |
138
140
  | `OKFFS_AUTO_PR` | `false` | Open a draft PR when a new issue branch is created. |
141
+ | `OKFFS_BASE_MERGE_METHOD` / `OKFFS_PROTECTED_MERGE_METHOD` | `squash` / `merge` | PR merge method per branch tier (`squash`/`merge`/`rebase`). Records the convention; grants no merge permission. |
142
+ | `OKFFS_AUTO_MERGE_BASE` | `false` | Let `merge_pull_request` autonomously merge a green, threads-resolved issue PR into the base branch. Never merges `OKFFS_PROTECTED_BRANCH`. |
139
143
 
140
144
  **Issue defaults & inference**
141
145
 
@@ -145,6 +149,8 @@ All optional; unset unless noted. Grouped by concern — the same groups appear
145
149
  | `OKFFS_DEFAULT_LABELS` | — | Comma-separated labels merged with inferred ones. |
146
150
  | `OKFFS_DEFAULT_PRIORITY` / `OKFFS_DEFAULT_EFFORT` | — | Board Priority/Effort fallback when none is inferred or given. |
147
151
  | `OKFFS_INFER_PRIORITY` / `OKFFS_INFER_EFFORT` | `true` | Let Claude infer priority/effort from the task. |
152
+ | `OKFFS_INFER_TYPE` | `true` | Let Claude infer the native GitHub Issue Type (Task/Bug/Feature/…) from the task. Org-level; skipped cleanly on user repos. |
153
+ | `OKFFS_DEFAULT_TYPE` | — | Native Issue Type fallback when none is inferred or given (e.g. `Task`). |
148
154
  | `OKFFS_PROMPT_METADATA` | `true` | Set `false` to hide the assignees/labels tip. |
149
155
 
150
156
  **PR review**
package/dist/config.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export type MergeMethod = "squash" | "merge" | "rebase";
1
2
  export declare const config: {
2
3
  promptForMetadata: boolean;
3
4
  defaultAssignees: string[];
@@ -5,6 +6,9 @@ export declare const config: {
5
6
  baseBranch: string | null;
6
7
  protectedBranch: string | null;
7
8
  identifier: string | null;
9
+ baseMergeMethod: MergeMethod;
10
+ protectedMergeMethod: MergeMethod;
11
+ autoMergeBase: boolean;
8
12
  updateDocs: boolean;
9
13
  autoPR: boolean;
10
14
  resolveThreads: boolean;
@@ -18,6 +22,8 @@ export declare const config: {
18
22
  defaultEffort: string | null;
19
23
  inferPriority: boolean;
20
24
  inferEffort: boolean;
25
+ inferType: boolean;
26
+ defaultType: string | null;
21
27
  projectInitialStatus: string | null;
22
28
  promotionStatus: string | null;
23
29
  promotionReviewers: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;CA4FlB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAiBxD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmHlB,CAAC"}
package/dist/config.js CHANGED
@@ -1,3 +1,17 @@
1
+ const MERGE_METHODS = ["squash", "merge", "rebase"];
2
+ // Parse a merge-method env var, validating against GitHub's three methods. An
3
+ // unset value takes the default silently; an INVALID value warns [okffs] and
4
+ // falls back to the default rather than failing startup.
5
+ function parseMergeMethod(envVar, def) {
6
+ const raw = process.env[envVar];
7
+ if (!raw)
8
+ return def;
9
+ const value = raw.trim().toLowerCase();
10
+ if (MERGE_METHODS.includes(value))
11
+ return value;
12
+ console.warn(`[okffs] ${envVar}="${raw}" is not a valid merge method (expected one of ${MERGE_METHODS.join(", ")}) — falling back to "${def}".`);
13
+ return def;
14
+ }
1
15
  export const config = {
2
16
  promptForMetadata: process.env.OKFFS_PROMPT_METADATA !== "false",
3
17
  defaultAssignees: process.env.OKFFS_DEFAULT_ASSIGNEES
@@ -18,6 +32,21 @@ export const config = {
18
32
  // OKFFS_IDENTIFIER — optional project-scoped prefix inserted into branch names:
19
33
  // {issue-number}-{identifier}-{slug} instead of {issue-number}-{slug}
20
34
  identifier: process.env.OKFFS_IDENTIFIER || null,
35
+ // OKFFS_BASE_MERGE_METHOD / OKFFS_PROTECTED_MERGE_METHOD — the PR merge method
36
+ // for each branch tier: base (e.g. develop) defaults to `squash`, protected
37
+ // (e.g. main) defaults to `merge` (merge commit). Config only — it records the
38
+ // convention so a merge uses the right method; it does NOT grant okffs any
39
+ // permission to merge (okffs never merges the protected branch autonomously).
40
+ // Invalid values warn [okffs] and fall back to the default. #209.
41
+ baseMergeMethod: parseMergeMethod("OKFFS_BASE_MERGE_METHOD", "squash"),
42
+ protectedMergeMethod: parseMergeMethod("OKFFS_PROTECTED_MERGE_METHOD", "merge"),
43
+ // OKFFS_AUTO_MERGE_BASE=true — opt-in to let merge_pull_request autonomously
44
+ // merge a green, threads-resolved issue PR into the BASE branch (e.g. develop),
45
+ // using OKFFS_BASE_MERGE_METHOD. Default false. Heavily gated (see the tool):
46
+ // never merges OKFFS_PROTECTED_BRANCH, refuses when that var is unset, and
47
+ // independently verifies checks + mergeability rather than trusting the ruleset.
48
+ // The protected branch stays a manual, user-driven merge no matter what. #211.
49
+ autoMergeBase: process.env.OKFFS_AUTO_MERGE_BASE === "true",
21
50
  updateDocs: process.env.OKFFS_UPDATE_DOCS === "true",
22
51
  // OKFFS_AUTO_PR=true — creates a draft PR when a new issue branch is created
23
52
  autoPR: process.env.OKFFS_AUTO_PR === "true",
@@ -65,6 +94,14 @@ export const config = {
65
94
  // explicit param or the default is used then).
66
95
  inferPriority: process.env.OKFFS_INFER_PRIORITY !== "false",
67
96
  inferEffort: process.env.OKFFS_INFER_EFFORT !== "false",
97
+ // OKFFS_INFER_TYPE / OKFFS_DEFAULT_TYPE — native GitHub Issue Type (Task/Bug/
98
+ // Feature/Epic/Story) handling, parallel to priority/effort. When inference is
99
+ // on (the default), create_issue's description tells Claude to pick the fitting
100
+ // org-defined type from the task; OKFFS_DEFAULT_TYPE fills in when it can't
101
+ // judge (or when inference is off). Both no-op cleanly when the org defines no
102
+ // Issue Types / the token can't read them (org-level feature — see #201, #199).
103
+ inferType: process.env.OKFFS_INFER_TYPE !== "false",
104
+ defaultType: process.env.OKFFS_DEFAULT_TYPE || null,
68
105
  // OKFFS_PROJECT_INITIAL_STATUS — Status column a freshly auto-added issue
69
106
  // should land in (e.g. "Backlog"). Set after the draft PR is created so it
70
107
  // wins over GitHub's "PR linked to issue" workflow, which would otherwise flip
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/git.d.ts CHANGED
@@ -4,4 +4,16 @@ export declare function git(args: string[]): void;
4
4
  export declare function gitOutput(args: string[]): string;
5
5
  /** Current branch name, or null if it can't be determined. */
6
6
  export declare function currentBranch(): string | null;
7
+ /**
8
+ * Push an empty init commit to `branchName` so it diverges from base and GitHub
9
+ * will accept a (draft) PR for it. Fetches, checks the branch out, commits
10
+ * `chore: init branch for #N`, and pushes — always restoring the caller's
11
+ * original branch afterward (even on failure). Throws if any step through the
12
+ * push fails, so callers can decide whether to proceed or surface an error.
13
+ *
14
+ * Shared by create_issue's OKFFS_AUTO_PR flow and create_pull_request's
15
+ * allow_empty backfill (#205) so the "diverge an empty branch" behaviour lives
16
+ * in exactly one place.
17
+ */
18
+ export declare function pushEmptyInitCommit(branchName: string, issueNumber: number): void;
7
19
  //# sourceMappingURL=git.d.ts.map
package/dist/git.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAMA,8EAA8E;AAC9E,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAExC;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEhD;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAM7C"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAMA,8EAA8E;AAC9E,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAExC;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEhD;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAM7C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAiBjF"}
package/dist/git.js CHANGED
@@ -19,4 +19,35 @@ export function currentBranch() {
19
19
  return null;
20
20
  }
21
21
  }
22
+ /**
23
+ * Push an empty init commit to `branchName` so it diverges from base and GitHub
24
+ * will accept a (draft) PR for it. Fetches, checks the branch out, commits
25
+ * `chore: init branch for #N`, and pushes — always restoring the caller's
26
+ * original branch afterward (even on failure). Throws if any step through the
27
+ * push fails, so callers can decide whether to proceed or surface an error.
28
+ *
29
+ * Shared by create_issue's OKFFS_AUTO_PR flow and create_pull_request's
30
+ * allow_empty backfill (#205) so the "diverge an empty branch" behaviour lives
31
+ * in exactly one place.
32
+ */
33
+ export function pushEmptyInitCommit(branchName, issueNumber) {
34
+ const previousBranch = currentBranch();
35
+ try {
36
+ git(["fetch", "origin"]);
37
+ git(["checkout", branchName]);
38
+ git(["commit", "--allow-empty", "-m", `chore: init branch for #${issueNumber}`]);
39
+ git(["push", "origin", branchName]);
40
+ }
41
+ finally {
42
+ // Always restore the caller's original branch, even if a step above failed.
43
+ if (previousBranch && previousBranch !== branchName) {
44
+ try {
45
+ git(["checkout", previousBranch]);
46
+ }
47
+ catch (err) {
48
+ console.warn("[okffs] Failed to restore branch:", err instanceof Error ? err.message : err);
49
+ }
50
+ }
51
+ }
52
+ }
22
53
  //# sourceMappingURL=git.js.map
package/dist/git.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAE5E,8EAA8E;AAC9E,MAAM,UAAU,GAAG,CAAC,IAAc;IAChC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAChE,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAE5E,8EAA8E;AAC9E,MAAM,UAAU,GAAG,CAAC,IAAc;IAChC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAChE,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,WAAmB;IACzE,MAAM,cAAc,GAAG,aAAa,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzB,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,2BAA2B,WAAW,EAAE,CAAC,CAAC,CAAC;QACjF,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IACtC,CAAC;YAAS,CAAC;QACT,4EAA4E;QAC5E,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,mCAAmC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/github.d.ts CHANGED
@@ -15,6 +15,17 @@ export declare function createIssue(title: string, body: string, assignees?: str
15
15
  node_id: string;
16
16
  }>;
17
17
  export declare function updateIssueBody(issueNumber: number, body: string): Promise<void>;
18
+ export declare function updateIssue(issueNumber: number, fields: {
19
+ title?: string;
20
+ body?: string;
21
+ assignees?: string[];
22
+ labels?: string[];
23
+ milestone?: number | null;
24
+ }): Promise<{
25
+ number: number;
26
+ html_url: string;
27
+ title: string;
28
+ }>;
18
29
  export declare function getDefaultBranch(): Promise<string>;
19
30
  export declare function getRepoDefaultBranch(): Promise<string>;
20
31
  export declare function getRef(ref: string): Promise<{
@@ -28,8 +39,14 @@ export interface IssueSummary {
28
39
  title: string;
29
40
  html_url: string;
30
41
  body: string | null;
42
+ type: string | null;
31
43
  }
32
44
  export declare function listIssues(): Promise<IssueSummary[]>;
45
+ export declare function getOrgIssueTypes(): Promise<Array<{
46
+ name: string;
47
+ is_enabled: boolean;
48
+ }>>;
49
+ export declare function setIssueType(issueNumber: number, type: string | null): Promise<void>;
33
50
  export interface PullRequestSummary {
34
51
  number: number;
35
52
  html_url: string;
@@ -76,6 +93,45 @@ export declare function getOpenPullRequestForBranch(branch: string, base?: strin
76
93
  node_id: string;
77
94
  draft: boolean;
78
95
  } | null>;
96
+ export interface PullRequestDetail {
97
+ number: number;
98
+ state: string;
99
+ draft: boolean;
100
+ merged: boolean;
101
+ mergeable: boolean | null;
102
+ mergeable_state: string;
103
+ html_url: string;
104
+ head: {
105
+ sha: string;
106
+ ref: string;
107
+ };
108
+ base: {
109
+ ref: string;
110
+ };
111
+ }
112
+ export declare function getPullRequest(prNumber: number): Promise<PullRequestDetail>;
113
+ export interface CombinedStatus {
114
+ state: "success" | "failure" | "pending" | "error";
115
+ statuses: Array<{
116
+ state: string;
117
+ context: string;
118
+ }>;
119
+ }
120
+ export declare function getCombinedStatus(sha: string): Promise<CombinedStatus>;
121
+ export interface CheckRunsResult {
122
+ total_count: number;
123
+ check_runs: Array<{
124
+ name: string;
125
+ status: string;
126
+ conclusion: string | null;
127
+ }>;
128
+ }
129
+ export declare function getCheckRuns(sha: string): Promise<CheckRunsResult>;
130
+ export declare function mergePullRequest(prNumber: number, mergeMethod: string): Promise<{
131
+ sha: string;
132
+ merged: boolean;
133
+ message: string;
134
+ }>;
79
135
  export declare function updatePullRequest(prNumber: number, fields: {
80
136
  title?: string;
81
137
  body?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
package/dist/github.js CHANGED
@@ -129,6 +129,17 @@ export async function updateIssueBody(issueNumber, body) {
129
129
  body: JSON.stringify({ body }),
130
130
  });
131
131
  }
132
+ // Mutate core issue fields on an existing issue (title/body/assignees/labels/
133
+ // milestone) via a single REST PATCH. Only the keys present in `fields` are sent
134
+ // — undefined keys are dropped by JSON.stringify, so omitted fields are left
135
+ // unchanged. Note GitHub's PATCH REPLACES the whole labels/assignees set (it does
136
+ // not merge), and milestone: null clears it. Returns the updated issue.
137
+ export async function updateIssue(issueNumber, fields) {
138
+ return request(`/repos/${owner}/${repo}/issues/${issueNumber}`, {
139
+ method: "PATCH",
140
+ body: JSON.stringify(fields),
141
+ });
142
+ }
132
143
  export async function getDefaultBranch() {
133
144
  if (config.baseBranch)
134
145
  return config.baseBranch;
@@ -152,11 +163,27 @@ export async function createBranch(branchName, sha) {
152
163
  }
153
164
  export async function listIssues() {
154
165
  // The issues endpoint also returns pull requests; filter them out via the
155
- // pull_request field that only PRs carry.
166
+ // pull_request field that only PRs carry. Issue objects carry `type: {name}`
167
+ // (org-level native Issue Type) when the org defines types and one is set.
156
168
  const raw = await request(`/repos/${owner}/${repo}/issues?state=open&per_page=100`);
157
169
  return raw
158
170
  .filter((i) => !i.pull_request)
159
- .map(({ number, title, html_url, body }) => ({ number, title, html_url, body }));
171
+ .map(({ number, title, html_url, body, type }) => ({ number, title, html_url, body, type: type?.name ?? null }));
172
+ }
173
+ // Read the org's native Issue Types (Task/Bug/Feature/…). Org-level: 404s on a
174
+ // user-owned repo and needs an org-capable token. Callers treat any failure as
175
+ // "types unavailable" and skip cleanly (mirrors the Projects / org Issue Field
176
+ // gating). Returns the raw list; issue_types.ts memoizes + filters to enabled.
177
+ export async function getOrgIssueTypes() {
178
+ return request(`/orgs/${owner}/issue-types`);
179
+ }
180
+ // Set a native Issue Type on an issue by name (REST PATCH `type`). Passing null
181
+ // clears it. Verified against the org's enabled types before calling.
182
+ export async function setIssueType(issueNumber, type) {
183
+ await request(`/repos/${owner}/${repo}/issues/${issueNumber}`, {
184
+ method: "PATCH",
185
+ body: JSON.stringify({ type }),
186
+ });
160
187
  }
161
188
  export async function listOpenPullRequests() {
162
189
  return request(`/repos/${owner}/${repo}/pulls?state=open&per_page=100`);
@@ -243,6 +270,23 @@ export async function getOpenPullRequestForBranch(branch, base) {
243
270
  const prs = await request(`/repos/${owner}/${repo}/pulls?head=${owner}:${branch}${baseParam}&state=open&per_page=1`);
244
271
  return prs.length > 0 ? prs[0] : null;
245
272
  }
273
+ export async function getPullRequest(prNumber) {
274
+ return request(`/repos/${owner}/${repo}/pulls/${prNumber}`);
275
+ }
276
+ export async function getCombinedStatus(sha) {
277
+ return request(`/repos/${owner}/${repo}/commits/${sha}/status`);
278
+ }
279
+ export async function getCheckRuns(sha) {
280
+ return request(`/repos/${owner}/${repo}/commits/${sha}/check-runs?per_page=100`);
281
+ }
282
+ // Merge a PR with an explicit method (squash | merge | rebase). Throws on any
283
+ // GitHub refusal (405 not mergeable, 409 head moved, etc.) so the caller surfaces it.
284
+ export async function mergePullRequest(prNumber, mergeMethod) {
285
+ return request(`/repos/${owner}/${repo}/pulls/${prNumber}/merge`, {
286
+ method: "PUT",
287
+ body: JSON.stringify({ merge_method: mergeMethod }),
288
+ });
289
+ }
246
290
  export async function updatePullRequest(prNumber, fields) {
247
291
  await request(`/repos/${owner}/${repo}/pulls/${prNumber}`, {
248
292
  method: "PATCH",
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -23,10 +23,12 @@ import * as resolveReviewThread from "./tools/resolve_review_thread.js";
23
23
  import * as prepareRelease from "./tools/prepare_release.js";
24
24
  import * as updateProjectStatus from "./tools/update_project_status.js";
25
25
  import * as setIssueFields from "./tools/set_issue_fields.js";
26
+ import * as updateIssue from "./tools/update_issue.js";
26
27
  import * as promoteBranch from "./tools/promote_branch.js";
28
+ import * as mergePullRequest from "./tools/merge_pull_request.js";
27
29
  import * as addressPrReview from "./prompts/address_pr_review.js";
28
30
  import * as updateGuidance from "./prompts/update_guidance.js";
29
- const tools = [createIssue, listIssues, closeIssue, deleteIssue, deleteBranch, getIssue, commentIssue, createIssuesFromList, plan, linkIssues, createPullRequest, commitAndUpdate, listPrReviewComments, replyToReviewComment, resolveReviewThread, prepareRelease, updateProjectStatus, setIssueFields, promoteBranch];
31
+ const tools = [createIssue, listIssues, closeIssue, deleteIssue, deleteBranch, getIssue, commentIssue, createIssuesFromList, plan, linkIssues, createPullRequest, commitAndUpdate, listPrReviewComments, replyToReviewComment, resolveReviewThread, prepareRelease, updateProjectStatus, setIssueFields, updateIssue, promoteBranch, mergePullRequest];
30
32
  const prompts = [addressPrReview, updateGuidance];
31
33
  // Read the package version so the server reports the real version (dist/index.js
32
34
  // lives one level below package.json in both dev and the published package).
@@ -49,11 +51,13 @@ Common action → tool:
49
51
  - Progress: commit_and_update (stage + commit + push + issue comment) — prefer over raw git commit/push.
50
52
  - Open/finalize an issue's PR (into the base branch): create_pull_request (always adds Closes #N).
51
53
  - Promotion/release gate — a base→protected PR with no issue, e.g. develop→main: promote_branch (issue-less; adds the PR to the board; NEVER use raw \`gh pr create\` for this).
54
+ - Edit an existing issue's core fields (title, assignees, labels, milestone, body): update_issue — prefer over raw \`gh issue edit\`. (Board Priority/Effort is set_issue_fields; Status column is update_project_status — those aren't issue fields.)
52
55
  - Board: create_issue sets an inferred priority/effort at creation; set them on an EXISTING issue with set_issue_fields; move columns with update_project_status (Backlog/Ready/In Progress/Review — Done is GitHub's own automation).
53
56
  - PR review: list_pr_review_comments → fix → reply_to_review_comment → resolve_review_thread (honours OKFFS_RESOLVE_THREADS); or the /okffs:address_pr_review prompt.
54
57
  - Release prep: prepare_release (bumps version + rolls the changelog; does NOT tag or publish).
58
+ - Land an issue PR into the BASE branch (e.g. develop): merge_pull_request — the one okffs action that merges. Opt-in (OKFFS_AUTO_MERGE_BASE=true) and heavily gated; it verifies checks/threads itself and NEVER touches OKFFS_PROTECTED_BRANCH. Off by default → it just declines.
55
59
 
56
- Rules: never merge, tag, or publish into OKFFS_PROTECTED_BRANCH autonomously — okffs may OPEN a PR into it (promote_branch), but the merge/tag are yours to hand back for. Destructive tools (delete_issue, delete_branch) require confirmed: true (call once to preview, again to act).`;
60
+ Rules: never merge, tag, or publish into OKFFS_PROTECTED_BRANCH autonomously — okffs may OPEN a PR into it (promote_branch), but the merge/tag are yours to hand back for. merge_pull_request only ever lands PRs into the base tier, never the protected branch. Destructive tools (delete_issue, delete_branch) require confirmed: true (call once to preview, again to act).`;
57
61
  const server = new Server({ name: "okffs", version }, { capabilities: { tools: {}, prompts: {} }, instructions: SERVER_INSTRUCTIONS });
58
62
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
59
63
  // A tool may export an async getDescription() to compute its description at
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { BoardFieldOutcome } from "./board.js";
2
+ export declare function issueTypesEnabled(): boolean;
3
+ export declare function getIssueTypeNames(): Promise<string[] | null>;
4
+ export declare function applyIssueType(issueNumber: number, type: string): Promise<BoardFieldOutcome>;
5
+ //# sourceMappingURL=issue_types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue_types.d.ts","sourceRoot":"","sources":["../src/issue_types.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAUpD,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAID,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAWlE;AAKD,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuBlG"}
@@ -0,0 +1,65 @@
1
+ // Native GitHub Issue Types (Task/Bug/Feature/Epic/Story) support, mirroring the
2
+ // board Priority/Effort machinery in board.ts: read the org's available type
3
+ // names (memoized, injected into create_issue's inference guidance), and set a
4
+ // type on an issue with validated, NON-FATAL handling — any miss (user-owned
5
+ // repo with no org types, missing token scope, unknown name) is returned as
6
+ // { skipped } and surfaced in the tool response, never blocking issue creation.
7
+ //
8
+ // Issue Types are ORG-LEVEL: /orgs/{org}/issue-types 404s on a user-owned repo
9
+ // and needs an org-capable token. That org-vs-user capability split is the same
10
+ // one tracked in #199 — handled here inline (fetch, catch, memoize null) so this
11
+ // feature degrades cleanly wherever types aren't available.
12
+ import { getOrgIssueTypes, setIssueType } from "./github.js";
13
+ import { config } from "./config.js";
14
+ // Memoize the enabled type names across the process. `undefined` = not yet
15
+ // fetched; a settled entry of `{ value: string[] | null }` caches BOTH the
16
+ // success list and the "unavailable" (null) result, so a user-owned repo pays
17
+ // the 404 at most once.
18
+ let cached;
19
+ // Whether okffs should attempt Issue Type inference/setting at all. Independent
20
+ // of the Projects board — types are native GitHub, not a board field.
21
+ export function issueTypesEnabled() {
22
+ return config.inferType || Boolean(config.defaultType);
23
+ }
24
+ // The org's enabled Issue Type names, or null when unavailable (user repo, no
25
+ // org types defined, or the token can't read them). Cheap after the first call.
26
+ export async function getIssueTypeNames() {
27
+ if (cached)
28
+ return cached.value;
29
+ try {
30
+ const types = await getOrgIssueTypes();
31
+ const names = types.filter((t) => t.is_enabled).map((t) => t.name);
32
+ cached = { value: names.length ? names : null };
33
+ }
34
+ catch {
35
+ // 404 (user repo / no types) or a permission error — treat as unavailable.
36
+ cached = { value: null };
37
+ }
38
+ return cached.value;
39
+ }
40
+ // Set an Issue Type on an issue by name. Validates against the org's enabled
41
+ // types (case-insensitive, mapping to the canonical name GitHub expects) and
42
+ // returns { applied } / { skipped } like the board field writes — never throws.
43
+ export async function applyIssueType(issueNumber, type) {
44
+ const skip = (reason) => {
45
+ console.warn(`[okffs] Issue Type "${type}" not set on #${issueNumber}: ${reason}`);
46
+ return { skipped: reason };
47
+ };
48
+ const names = await getIssueTypeNames();
49
+ if (!names) {
50
+ return skip("no org-level Issue Types available — the repo is user-owned, the org has none defined, " +
51
+ "or the token can't read /orgs/{org}/issue-types. Define types under Org → Settings → Planning → Issue Types.");
52
+ }
53
+ const canonical = names.find((n) => n.toLowerCase() === type.toLowerCase());
54
+ if (!canonical) {
55
+ return skip(`no matching type. Available Issue Types: ${names.join(", ")}.`);
56
+ }
57
+ try {
58
+ await setIssueType(issueNumber, canonical);
59
+ return { applied: canonical };
60
+ }
61
+ catch (err) {
62
+ return skip(`write failed — ${err instanceof Error ? err.message : String(err)}`);
63
+ }
64
+ }
65
+ //# sourceMappingURL=issue_types.js.map