@neturely/okffs 0.3.0 → 0.5.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 (45) hide show
  1. package/.changes/README.md +29 -0
  2. package/CHANGELOG.md +29 -1
  3. package/README.md +104 -232
  4. package/dist/board.d.ts +33 -0
  5. package/dist/board.d.ts.map +1 -0
  6. package/dist/board.js +171 -0
  7. package/dist/board.js.map +1 -0
  8. package/dist/config.d.ts +6 -0
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +31 -0
  11. package/dist/config.js.map +1 -1
  12. package/dist/docs.d.ts +6 -0
  13. package/dist/docs.d.ts.map +1 -1
  14. package/dist/docs.js +78 -15
  15. package/dist/docs.js.map +1 -1
  16. package/dist/index.js +19 -4
  17. package/dist/index.js.map +1 -1
  18. package/dist/projects.d.ts +18 -3
  19. package/dist/projects.d.ts.map +1 -1
  20. package/dist/projects.js +169 -18
  21. package/dist/projects.js.map +1 -1
  22. package/dist/tools/create_issue.d.ts +5 -1
  23. package/dist/tools/create_issue.d.ts.map +1 -1
  24. package/dist/tools/create_issue.js +82 -41
  25. package/dist/tools/create_issue.js.map +1 -1
  26. package/dist/tools/create_issues_from_list.d.ts +11 -1
  27. package/dist/tools/create_issues_from_list.d.ts.map +1 -1
  28. package/dist/tools/create_issues_from_list.js +39 -2
  29. package/dist/tools/create_issues_from_list.js.map +1 -1
  30. package/dist/tools/create_pull_request.d.ts +1 -1
  31. package/dist/tools/create_pull_request.d.ts.map +1 -1
  32. package/dist/tools/create_pull_request.js +1 -1
  33. package/dist/tools/create_pull_request.js.map +1 -1
  34. package/dist/tools/list_issues.d.ts +1 -1
  35. package/dist/tools/list_issues.d.ts.map +1 -1
  36. package/dist/tools/list_issues.js +58 -7
  37. package/dist/tools/list_issues.js.map +1 -1
  38. package/dist/tools/plan.d.ts +11 -1
  39. package/dist/tools/plan.d.ts.map +1 -1
  40. package/dist/tools/plan.js +47 -5
  41. package/dist/tools/plan.js.map +1 -1
  42. package/dist/tools/prepare_release.d.ts.map +1 -1
  43. package/dist/tools/prepare_release.js +22 -5
  44. package/dist/tools/prepare_release.js.map +1 -1
  45. package/package.json +1 -1
package/dist/board.js ADDED
@@ -0,0 +1,171 @@
1
+ // Shared GitHub Projects v2 board placement for issue-creating tools
2
+ // (create_issue, create_issues_from_list, plan). Centralises: adding an issue to
3
+ // the board, setting Priority/Effort (project-native single-select OR org-level
4
+ // Issue Field — #91), applying the initial Status, and rendering the outcome.
5
+ //
6
+ // Every skip/failure is returned as data and surfaced in the tool response, never
7
+ // only console.warn'd to stderr (which the host/user never sees) — #146. The add
8
+ // itself throwing is the one fatal-to-board case; callers catch it into
9
+ // `boardError`. Field writes are always non-fatal.
10
+ import { config } from "./config.js";
11
+ import { addIssueToProject, getProjectMetadata, setProjectFieldValue, getOrgIssueField, setIssueFieldSingleSelect, } from "./projects.js";
12
+ // Whether create_* tools should attempt board auto-add at all.
13
+ export function boardAutoAddEnabled() {
14
+ return Boolean(config.projectAutoAdd && config.projectEnabled);
15
+ }
16
+ // The board's real option names for a single-select field (e.g. "Priority") —
17
+ // project-native options if present, otherwise the org-level Issue Field options
18
+ // (only readable with a classic PAT). Returns null when the board is unreachable,
19
+ // the field is absent, or its options can't be read — callers then fall back to a
20
+ // generic scale. Cheap after the first call (metadata + org field are memoized).
21
+ // Used to inject real options into create_issue's inference guidance (#133).
22
+ export async function getBoardFieldOptions(label) {
23
+ try {
24
+ const meta = await getProjectMetadata();
25
+ const native = meta.singleSelectByName.get(label.toLowerCase());
26
+ if (native && native.options.size > 0)
27
+ return [...native.options.keys()];
28
+ // No project-native options → it's an org-level Issue Field, readable only
29
+ // with a classic admin:org PAT (#91). Skip otherwise.
30
+ if (config.classicPat) {
31
+ const orgField = await getOrgIssueField(label);
32
+ if (orgField && orgField.options.size > 0)
33
+ return [...orgField.options.keys()];
34
+ }
35
+ return null;
36
+ }
37
+ catch {
38
+ return null;
39
+ }
40
+ }
41
+ // Set a board single-select field (Priority, Effort, …) to `value`. Handles both
42
+ // shapes: a project-native single-select (set on the project item), and a GitHub
43
+ // org-level Issue Field (project field reports no options → set on the issue via
44
+ // setIssueFieldSingleSelect, gated on OKFFS_CLASSIC_PAT — #91). Returns
45
+ // { skipped: reason } on any miss and { applied } on success; also warns to
46
+ // stderr for server logs, but the returned reason is what the caller surfaces.
47
+ async function applyBoardSingleSelect(label, value, itemId, issueNodeId, meta) {
48
+ const skip = (reason) => {
49
+ console.warn(`[okffs] ${label} "${value}" not set: ${reason}`);
50
+ return { skipped: reason };
51
+ };
52
+ const native = meta.singleSelectByName.get(label.toLowerCase());
53
+ if (!native) {
54
+ return skip(`the board has no ${label} field.`);
55
+ }
56
+ // Project-native single-select with resolvable options.
57
+ if (native.options.size > 0) {
58
+ const optionId = native.options.get(value);
59
+ if (!optionId) {
60
+ return skip(`no matching option. Board ${label} options: ${[...native.options.keys()].join(", ")}.`);
61
+ }
62
+ // Catch write failures here too — addIssueToBoard's contract is that field
63
+ // writes never throw, so a failed set must degrade to a surfaced skip rather
64
+ // than turning a successful board add into a full boardError.
65
+ try {
66
+ await setProjectFieldValue(itemId, native.fieldId, optionId);
67
+ return { applied: value };
68
+ }
69
+ catch (err) {
70
+ return skip(`write failed — ${err instanceof Error ? err.message : String(err)}`);
71
+ }
72
+ }
73
+ // No options via the project API → it's a GitHub org-level Issue Field.
74
+ if (!config.classicPat) {
75
+ return skip(`the board's ${label} is an org-level Issue Field, which okffs can only set with a classic ` +
76
+ `PAT (\`admin:org\`) and OKFFS_CLASSIC_PAT=true (security tradeoff — see docs). Set it in the board UI for now.`);
77
+ }
78
+ try {
79
+ const orgField = await getOrgIssueField(label);
80
+ if (!orgField) {
81
+ return skip(`no org-level ${label} Issue Field found.`);
82
+ }
83
+ const orgOptionId = orgField.options.get(value);
84
+ if (!orgOptionId) {
85
+ return skip(`no matching org Issue Field option. Options: ${[...orgField.options.keys()].join(", ")}.`);
86
+ }
87
+ await setIssueFieldSingleSelect(issueNodeId, orgField.fieldId, orgOptionId);
88
+ return { applied: value };
89
+ }
90
+ catch (err) {
91
+ // Permission (fine-grained PAT FORBIDDEN) / preview-API errors — never fatal.
92
+ return skip(`org Issue Field write failed — ${err instanceof Error ? err.message : String(err)}`);
93
+ }
94
+ }
95
+ // Add an issue to the configured board and set Priority/Effort. Throws if the add
96
+ // itself fails (caller catches into boardError). Field writes never throw. Does
97
+ // NOT set the initial Status — that must run after any draft PR (see
98
+ // applyInitialStatus) so it wins GitHub's linked-PR "In Progress" promotion (#103).
99
+ export async function addIssueToBoard(issueNodeId, opts) {
100
+ const itemId = await addIssueToProject(issueNodeId);
101
+ let priority = null;
102
+ let effort = null;
103
+ if (opts.priority || opts.effort) {
104
+ const meta = await getProjectMetadata();
105
+ if (opts.priority) {
106
+ priority = await applyBoardSingleSelect("Priority", opts.priority, itemId, issueNodeId, meta);
107
+ }
108
+ if (opts.effort) {
109
+ effort = await applyBoardSingleSelect("Effort", opts.effort, itemId, issueNodeId, meta);
110
+ }
111
+ }
112
+ return { itemId, priority, effort };
113
+ }
114
+ // Pin the board Status to OKFFS_PROJECT_INITIAL_STATUS for a freshly-added item.
115
+ // No-op (returns nulls) when the env var is unset. Non-fatal: any miss is returned
116
+ // as `skipped` and warned to stderr. Call AFTER the draft PR so it wins the race
117
+ // with GitHub's linked-PR automation (#103).
118
+ export async function applyInitialStatus(itemId) {
119
+ if (!config.projectInitialStatus)
120
+ return { applied: null, skipped: null };
121
+ const wanted = config.projectInitialStatus;
122
+ try {
123
+ const meta = await getProjectMetadata();
124
+ const optionId = meta.statusFieldId ? meta.statusOptions.get(wanted) : undefined;
125
+ if (meta.statusFieldId && optionId) {
126
+ await setProjectFieldValue(itemId, meta.statusFieldId, optionId);
127
+ return { applied: wanted, skipped: null };
128
+ }
129
+ const skipped = !meta.statusFieldId
130
+ ? "the board has no Status field."
131
+ : `no matching Status option. Board Status options: ${[...meta.statusOptions.keys()].join(", ")}.`;
132
+ console.warn(`[okffs] initial status "${wanted}" not set: ${skipped}`);
133
+ return { applied: null, skipped };
134
+ }
135
+ catch (err) {
136
+ const skipped = `Status write failed — ${err instanceof Error ? err.message : String(err)}`;
137
+ console.warn(`[okffs] initial status "${wanted}" not set: ${skipped}`);
138
+ return { applied: null, skipped };
139
+ }
140
+ }
141
+ // Render board outcome lines for a tool response — shared by all three creators so
142
+ // applied fields and every skip read identically. `indent` prefixes each line
143
+ // (batch tools nest board lines under their per-issue entry).
144
+ export function renderBoardLines(args) {
145
+ const ind = args.indent ?? "";
146
+ const lines = [];
147
+ if (args.addedToBoard) {
148
+ const bits = [
149
+ args.priority && "applied" in args.priority ? `priority: ${args.priority.applied}` : null,
150
+ args.effort && "applied" in args.effort ? `effort: ${args.effort.applied}` : null,
151
+ args.initialStatus?.applied ? `status: ${args.initialStatus.applied}` : null,
152
+ ].filter(Boolean);
153
+ lines.push(`${ind}Board: added to the project${bits.length ? ` (${bits.join(", ")})` : ""}`);
154
+ // Surface any requested-but-not-applied field so an enabled board step is
155
+ // never silently dropped (the issue is still created fine) — see #146.
156
+ const skips = [
157
+ args.priority && "skipped" in args.priority ? `Priority "${args.requestedPriority}" not set — ${args.priority.skipped}` : null,
158
+ args.effort && "skipped" in args.effort ? `Effort "${args.requestedEffort}" not set — ${args.effort.skipped}` : null,
159
+ args.initialStatus?.skipped ? `Initial status "${args.requestedStatus}" not set — ${args.initialStatus.skipped}` : null,
160
+ ].filter(Boolean);
161
+ for (const s of skips)
162
+ lines.push(`${ind} ⚠ ${s}`);
163
+ }
164
+ else if (args.boardError) {
165
+ // Auto-add was enabled but the add itself failed. Surface it (not just the
166
+ // server log) so an empty board doesn't look like success — see #101.
167
+ lines.push(`${ind}Board: NOT added — auto-add is on but failed. The issue itself was created fine.`, `${ind} ${args.boardError}`);
168
+ }
169
+ return lines;
170
+ }
171
+ //# sourceMappingURL=board.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board.js","sourceRoot":"","sources":["../src/board.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -12,5 +12,11 @@ export declare const config: {
12
12
  projectEnabled: boolean;
13
13
  projectId: string | null;
14
14
  projectAutoAdd: boolean;
15
+ classicPat: boolean;
16
+ defaultPriority: string | null;
17
+ defaultEffort: string | null;
18
+ inferPriority: boolean;
19
+ inferEffort: boolean;
20
+ projectInitialStatus: string | null;
15
21
  };
16
22
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;CAkClB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;CAiElB,CAAC"}
package/dist/config.js CHANGED
@@ -32,6 +32,37 @@ export const config = {
32
32
  // OKFFS_PROJECT_AUTO_ADD=true — fallback for users without native GitHub board
33
33
  // automation: create_issue adds the new issue to the board. Off by default.
34
34
  projectAutoAdd: process.env.OKFFS_PROJECT_AUTO_ADD === "true",
35
+ // OKFFS_CLASSIC_PAT=true — a declaration that GITHUB_TOKEN is a classic PAT with
36
+ // org-admin scope (`admin:org`), which unlocks org-admin-level features that
37
+ // fine-grained PATs can't reach — currently setting a Priority that is a GitHub
38
+ // *org-level Issue Field* (#91), via organization.issueFields / setIssueFieldValue.
39
+ // Off by default. SECURITY: classic `admin:org` tokens are broad (all your repos
40
+ // + org admin); only enable this if you accept that tradeoff. When off, okffs
41
+ // skips the org Issue Field API path entirely and tells you to set it manually.
42
+ classicPat: process.env.OKFFS_CLASSIC_PAT === "true",
43
+ // OKFFS_DEFAULT_PRIORITY — Priority applied to a new issue when create_issue
44
+ // isn't given an explicit `priority` (mirrors OKFFS_DEFAULT_LABELS/ASSIGNEES).
45
+ // Flows through the same priority handling: set via a project-native Priority
46
+ // field, or an org Issue Field when OKFFS_CLASSIC_PAT is on; skipped gracefully
47
+ // otherwise. Unset = no priority unless the caller passes one. e.g. "Medium".
48
+ defaultPriority: process.env.OKFFS_DEFAULT_PRIORITY || null,
49
+ // OKFFS_DEFAULT_EFFORT — same as OKFFS_DEFAULT_PRIORITY, for the board's Effort
50
+ // field (org Issue Field or project-native). Unset = no effort unless passed.
51
+ defaultEffort: process.env.OKFFS_DEFAULT_EFFORT || null,
52
+ // OKFFS_INFER_PRIORITY / OKFFS_INFER_EFFORT — when on (the default), create_issue's
53
+ // tool description tells Claude to infer a priority/effort for the issue from the
54
+ // task itself, so okffs uses its AI brain rather than always relying on the static
55
+ // OKFFS_DEFAULT_*. Claude omits the field when it genuinely can't judge, and the
56
+ // default fills in. Set to "false" to turn the inference instruction off (only an
57
+ // explicit param or the default is used then).
58
+ inferPriority: process.env.OKFFS_INFER_PRIORITY !== "false",
59
+ inferEffort: process.env.OKFFS_INFER_EFFORT !== "false",
60
+ // OKFFS_PROJECT_INITIAL_STATUS — Status column a freshly auto-added issue
61
+ // should land in (e.g. "Backlog"). Set after the draft PR is created so it
62
+ // wins over GitHub's "PR linked to issue" workflow, which would otherwise flip
63
+ // a scaffolded issue straight to "In Progress" (#103). Unset = leave whatever
64
+ // column the board's own automation assigns.
65
+ projectInitialStatus: process.env.OKFFS_PROJECT_INITIAL_STATUS || null,
35
66
  };
36
67
  // Warn once at startup if the feature is half-configured. Non-fatal: the
37
68
  // Projects code no-ops when disabled, and every call re-checks projectId.
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,OAAO;IAChE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;QACnD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,CAAC,CAAC,EAAE;IACN,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAC7C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,CAAC,CAAC,EAAE;IACN,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI;IACjD,gFAAgF;IAChF,sEAAsE;IACtE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI;IAChD,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM;IACpD,6EAA6E;IAC7E,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;IAC5C,6EAA6E;IAC7E,2EAA2E;IAC3E,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM;IAC5D,8EAA8E;IAC9E,+EAA+E;IAC/E,yEAAyE;IACzE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM;IAC5D,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;QACzC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,CAAC,CAAC,EAAE;IACN,6EAA6E;IAC7E,sEAAsE;IACtE,4EAA4E;IAC5E,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM;IAC5D,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI;IAC/C,+EAA+E;IAC/E,4EAA4E;IAC5E,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,MAAM;CAC9D,CAAC;AAEF,yEAAyE;AACzE,0EAA0E;AAC1E,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAC/C,OAAO,CAAC,IAAI,CACV,2IAA2I,CAC5I,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/docs.d.ts CHANGED
@@ -7,5 +7,11 @@ export interface DocsContext {
7
7
  }
8
8
  export declare function getUnreleasedSection(changelog: string): string | null;
9
9
  export declare function rollChangelogForRelease(changelog: string, version: string, prevVersion: string, date: string): string;
10
+ export interface FragmentFold {
11
+ changelog: string;
12
+ consumed: string[];
13
+ count: number;
14
+ }
15
+ export declare function foldFragmentsIntoChangelog(changelog: string, base: string): FragmentFold;
10
16
  export declare function updateProjectDocs(ctx: DocsContext): Promise<string[]>;
11
17
  //# sourceMappingURL=docs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8CD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOrE;AAKD,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,MAAM,CAiCR;AAyGD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqB3E"}
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8CD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOrE;AAKD,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,MAAM,CAiCR;AAiFD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CA8BxF;AAsDD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuB3E"}
package/dist/docs.js CHANGED
@@ -124,6 +124,76 @@ function insertChangelogEntry(changelog, type, entry) {
124
124
  }
125
125
  return head + block + tail;
126
126
  }
127
+ // --- Changelog fragments (#105) --------------------------------------------
128
+ // Writing directly into the shared CHANGELOG.md on every issue branch makes
129
+ // parallel branches deterministically conflict (add/add when the file is new,
130
+ // same-hunk when it exists). Instead, each PR drops a uniquely-named fragment
131
+ // under .changes/unreleased/ — those never collide — and prepare_release
132
+ // assembles them into CHANGELOG.md at release time (changesets/towncrier style).
133
+ const FRAGMENT_DIR = path.join(".changes", "unreleased");
134
+ // Kebab-case the first few words of a title/summary for a stable fragment name.
135
+ function slugify(text, maxWords = 6) {
136
+ return text
137
+ .toLowerCase()
138
+ .replace(/[^a-z0-9]+/g, "-")
139
+ .replace(/^-+|-+$/g, "")
140
+ .split("-")
141
+ .filter(Boolean)
142
+ .slice(0, maxWords)
143
+ .join("-");
144
+ }
145
+ // Build a per-issue fragment: a uniquely-named file whose first line carries the
146
+ // change type in a machine-readable comment, followed by the changelog bullet.
147
+ function buildFragment(ctx) {
148
+ const type = getChangeType(ctx);
149
+ const entry = buildChangelogEntry(ctx);
150
+ const source = ctx.issueTitle || ctx.summary || ctx.trigger;
151
+ const slug = slugify(source) || "entry";
152
+ // Prefix with the issue number when present — that alone guarantees a distinct
153
+ // filename per issue, which is what eliminates the cross-branch conflict.
154
+ const baseName = ctx.issueNumber ? `${ctx.issueNumber}-${slug}` : slug;
155
+ const relPath = path.join(FRAGMENT_DIR, `${baseName}.md`);
156
+ const content = `<!-- okffs:type=${type} -->\n${entry}\n`;
157
+ return { relPath, content };
158
+ }
159
+ // Fold every .changes/unreleased/*.md fragment into the changelog's [Unreleased]
160
+ // section (grouped under the right ### heading), returning the new changelog text
161
+ // and the fragment paths that were consumed (so the caller can `git rm` them).
162
+ // A no-op when the directory is absent or empty — keeps prepare_release working
163
+ // on repos that never used fragments.
164
+ export function foldFragmentsIntoChangelog(changelog, base) {
165
+ const dir = path.join(base, FRAGMENT_DIR);
166
+ let files;
167
+ try {
168
+ files = fs.readdirSync(dir).filter((f) => f.endsWith(".md")).sort();
169
+ }
170
+ catch {
171
+ return { changelog, consumed: [], count: 0 };
172
+ }
173
+ let result = changelog;
174
+ const consumed = [];
175
+ for (const f of files) {
176
+ let raw;
177
+ try {
178
+ raw = fs.readFileSync(path.join(dir, f), "utf8");
179
+ }
180
+ catch {
181
+ continue;
182
+ }
183
+ const typeMatch = raw.match(/okffs:type=(\w+)/);
184
+ const type = typeMatch ? typeMatch[1] : "Changed";
185
+ const entry = raw
186
+ .split("\n")
187
+ .filter((l) => l.trim() && !/okffs:type=/.test(l))
188
+ .join("\n")
189
+ .trim();
190
+ if (!entry)
191
+ continue;
192
+ result = insertChangelogEntry(result, type, entry);
193
+ consumed.push(path.join(FRAGMENT_DIR, f));
194
+ }
195
+ return { changelog: result, consumed, count: consumed.length };
196
+ }
127
197
  function shouldUpdateSecurity(ctx) {
128
198
  const lower = (ctx.issueTitle ?? "") + ctx.summary;
129
199
  return /security|vulnerability|cve/i.test(lower);
@@ -139,22 +209,13 @@ function readFile(filePath) {
139
209
  function determineUpdates(ctx, base) {
140
210
  const updates = [];
141
211
  const isExcluded = (filename) => config.excludeDocs.some((f) => f.toLowerCase() === filename.toLowerCase());
142
- // CHANGELOG.mdalways append an entry under ## [Unreleased] or at the end
212
+ // Changelogwrite a per-issue fragment instead of editing the shared
213
+ // CHANGELOG.md, so parallel branches never conflict (#105). prepare_release
214
+ // assembles the fragments into CHANGELOG.md at release time. The CHANGELOG.md
215
+ // exclude key still suppresses the entry entirely, for parity with before.
143
216
  if (!isExcluded("CHANGELOG.md")) {
144
- const changelogPath = path.join(base, "CHANGELOG.md");
145
- const changelog = readFile(changelogPath);
146
- const type = getChangeType(ctx);
147
- const entry = buildChangelogEntry(ctx);
148
- if (changelog !== null) {
149
- updates.push({ path: changelogPath, content: insertChangelogEntry(changelog, type, entry), created: false });
150
- }
151
- else {
152
- updates.push({
153
- path: changelogPath,
154
- content: `# Changelog\n\nAll notable changes to this project will be documented in this file.\nSee [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).\n\n## [Unreleased]\n### ${type}\n${entry}`,
155
- created: true,
156
- });
157
- }
217
+ const frag = buildFragment(ctx);
218
+ updates.push({ path: path.join(base, frag.relPath), content: frag.content, created: true });
158
219
  }
159
220
  // SECURITY.md — only for security-related triggers. Title-based one-liner.
160
221
  if (shouldUpdateSecurity(ctx) && !isExcluded("SECURITY.md")) {
@@ -186,6 +247,8 @@ export async function updateProjectDocs(ctx) {
186
247
  const written = [];
187
248
  for (const u of updates) {
188
249
  try {
250
+ // Fragments live under .changes/unreleased/, which may not exist yet.
251
+ fs.mkdirSync(path.dirname(u.path), { recursive: true });
189
252
  fs.writeFileSync(u.path, u.content, "utf8");
190
253
  written.push(path.relative(base, u.path));
191
254
  }
package/dist/docs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -31,10 +31,25 @@ const prompts = [addressPrReview, updateGuidance];
31
31
  const version = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
32
32
  const server = new Server({ name: "okffs", version }, { capabilities: { tools: {}, prompts: {} } });
33
33
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
34
- tools: tools.map((t) => ({
35
- name: t.name,
36
- description: t.description,
37
- inputSchema: zodToJsonSchema(t.inputSchema),
34
+ // A tool may export an async getDescription() to compute its description at
35
+ // list time (e.g. create_issue injects the board's real Priority/Effort options
36
+ // — #133). Fall back to the static description on absence or failure.
37
+ tools: await Promise.all(tools.map(async (t) => {
38
+ let description = t.description;
39
+ const getDescription = t.getDescription;
40
+ if (getDescription) {
41
+ try {
42
+ description = await getDescription();
43
+ }
44
+ catch (err) {
45
+ console.warn(`[okffs] getDescription() failed for ${t.name}, using static description:`, err instanceof Error ? err.message : err);
46
+ }
47
+ }
48
+ return {
49
+ name: t.name,
50
+ description,
51
+ inputSchema: zodToJsonSchema(t.inputSchema),
52
+ };
38
53
  })),
39
54
  }));
40
55
  server.setRequestHandler(CallToolRequestSchema, async (req) => {
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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"}
@@ -1,12 +1,27 @@
1
+ export interface ProjectSingleSelect {
2
+ fieldId: string;
3
+ options: Map<string, string>;
4
+ }
1
5
  export interface ProjectMetadata {
2
6
  statusFieldId: string | null;
3
7
  statusOptions: Map<string, string>;
4
- priorityFieldId: string | null;
5
- priorityOptions: Map<string, string>;
8
+ singleSelectByName: Map<string, ProjectSingleSelect>;
6
9
  }
7
10
  export declare function getProjectMetadata(): Promise<ProjectMetadata>;
8
11
  export declare function addIssueToProject(issueNodeId: string): Promise<string>;
9
12
  export declare function setProjectFieldValue(itemId: string, fieldId: string, optionId: string): Promise<void>;
13
+ export interface OrgIssueField {
14
+ fieldId: string;
15
+ options: Map<string, string>;
16
+ }
17
+ export declare function getOrgIssueField(name: string): Promise<OrgIssueField | null>;
18
+ export declare function setIssueFieldSingleSelect(issueNodeId: string, fieldId: string, optionId: string): Promise<void>;
10
19
  export declare function getProjectItemForIssue(issueNumber: number): Promise<string | null>;
11
- export declare function getProjectStatusByIssueNumber(): Promise<Map<number, string>>;
20
+ export interface ProjectItemFields {
21
+ status?: string;
22
+ priority?: string;
23
+ effort?: string;
24
+ }
25
+ export declare function getProjectFieldsByIssueNumber(): Promise<Map<number, ProjectItemFields>>;
26
+ export declare function getOrgIssueFieldValuesByNumber(): Promise<Map<number, Map<string, string>>>;
12
27
  //# sourceMappingURL=projects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAG9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAqCD,wBAAgB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAQ7D;AAiED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW5E;AAGD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAaf;AAGD,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsBxF;AAID,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAsClF"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAM9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACtD;AA0CD,wBAAgB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAQ7D;AA8DD,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW5E;AAGD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAaf;AAqDD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAUD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAW5E;AA8CD,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAYf;AAGD,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsBxF;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAkD7F;AASD,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAkDhG"}