opencode-backlog 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -18,7 +18,7 @@ New backlogs contain these categories:
18
18
  - `doing`
19
19
  - `done`
20
20
 
21
- You can add, rename, reorder, purge, and remove categories. Each category has a stable ID and a modifiable title.
21
+ You can add, rename, style, reorder, purge, and remove categories. Each category has a stable ID and a modifiable title.
22
22
 
23
23
  The server plugin manages tasks and categories. The TUI plugin provides:
24
24
 
@@ -157,8 +157,8 @@ Click a sidebar task to open its details. The detail dialog provides `c`, `e`, a
157
157
  | `backlog_update` | Change a task title or notes. |
158
158
  | `backlog_move` | Change a task category or position. |
159
159
  | `backlog_remove` | Permanently remove a task. |
160
- | `backlog_category_add` | Add a category with a stable ID and title. |
161
- | `backlog_category_update` | Change a category title. |
160
+ | `backlog_category_add` | Add a category with a stable ID, title, color, and icon. |
161
+ | `backlog_category_update` | Change a category title, color, or icon. |
162
162
  | `backlog_category_move` | Change a category position. |
163
163
  | `backlog_category_remove` | Remove an empty category. |
164
164
  | `backlog_category_purge` | Permanently remove all tasks from a category. |
@@ -173,10 +173,10 @@ The plugin creates `BACKLOG.json` when the first task or category is added:
173
173
  {
174
174
  "version": 2,
175
175
  "categories": [
176
- { "id": "todo", "title": "Todo" },
177
- { "id": "doing", "title": "Doing" },
178
- { "id": "blocked", "title": "Blocked" },
179
- { "id": "done", "title": "Done" }
176
+ { "id": "todo", "title": "Todo", "color": "subdued", "icon": "circle" },
177
+ { "id": "doing", "title": "Doing", "color": "warning", "icon": "dot" },
178
+ { "id": "blocked", "title": "Blocked", "color": "error", "icon": "cross" },
179
+ { "id": "done", "title": "Done", "color": "success", "icon": "check" }
180
180
  ],
181
181
  "items": [
182
182
  {
@@ -193,6 +193,22 @@ The category array defines category order. The item array defines task order ins
193
193
 
194
194
  Category IDs stay stable when titles change. The plugin rejects tasks that reference an unknown category ID.
195
195
 
196
+ Category colors use theme-aware values: `default`, `subdued`, `error`, `warning`, `success`, or `info`.
197
+
198
+ Category icons use `circle`, `dot`, `check`, `cross`, `pause`, `diamond`, or `none`.
199
+
200
+ Known category IDs provide style presets when color or icon is absent:
201
+
202
+ | ID | Color | Icon |
203
+ | --- | --- | --- |
204
+ | `todo` | `subdued` | `circle` |
205
+ | `doing` | `warning` | `dot` |
206
+ | `blocked` | `error` | `cross` |
207
+ | `review` | `info` | `diamond` |
208
+ | `waiting` | `warning` | `pause` |
209
+ | `done` | `success` | `check` |
210
+ | `cancelled` | `subdued` | `cross` |
211
+
196
212
  The plugin reads version 1 files with the default categories. The next backlog change writes the file as version 2.
197
213
 
198
214
  Commit `BACKLOG.json` when the backlog must follow the project. Ignore it when the backlog must remain local.
@@ -227,33 +243,21 @@ Entering `nix develop` installs the repository pre-commit hook. The hook checks
227
243
 
228
244
  ## Release
229
245
 
230
- Bootstrap the new package from an authenticated workstation:
246
+ Publish each release from an authenticated workstation:
231
247
 
232
248
  ```sh
233
249
  npm login
234
250
  npm publish
235
251
  ```
236
252
 
237
- Staged publishing cannot create a new package. After `opencode-backlog` exists on npm, configure trusted publishing with these exact values:
238
-
239
- ```text
240
- Organization or user: sachahjkl
241
- Repository: opencode-backlog
242
- Workflow filename: publish.yml
243
- Environment name: <empty>
244
- Allowed action: npm publish
245
- ```
246
-
247
- For later releases, update the package version and push its commit and tag:
253
+ Update the package version, then push its commit and tag:
248
254
 
249
255
  ```sh
250
256
  npm version patch
251
257
  git push origin master --follow-tags
252
258
  ```
253
259
 
254
- Use `minor` or `major` instead of `patch` when the release requires it. The workflow rejects a tag that does not match `package.json`.
255
-
256
- The workflow publishes through npm trusted publishing. It uses OIDC and does not store an npm token.
260
+ Use `minor` or `major` instead of `patch` when the release requires it. Keep the tag equal to the `package.json` version.
257
261
 
258
262
  ## Compatibility
259
263
 
package/dist/backlog.d.ts CHANGED
@@ -1,8 +1,18 @@
1
1
  export declare const BACKLOG_FILE = "BACKLOG.json";
2
+ export declare const CATEGORY_COLORS: readonly ["default", "subdued", "error", "warning", "success", "info"];
3
+ export declare const CATEGORY_ICONS: readonly ["circle", "dot", "check", "cross", "pause", "diamond", "none"];
4
+ export type CategoryColor = (typeof CATEGORY_COLORS)[number];
5
+ export type CategoryIcon = (typeof CATEGORY_ICONS)[number];
2
6
  export interface Category {
3
7
  readonly id: string;
4
8
  readonly title: string;
9
+ readonly color?: CategoryColor;
10
+ readonly icon?: CategoryIcon;
5
11
  }
12
+ export declare const CATEGORY_PRESETS: Readonly<Record<string, {
13
+ color: CategoryColor;
14
+ icon: CategoryIcon;
15
+ }>>;
6
16
  export type Status = string;
7
17
  export interface BacklogItem {
8
18
  readonly id: string;
@@ -18,12 +28,16 @@ export interface Backlog {
18
28
  export declare const DEFAULT_CATEGORIES: readonly Category[];
19
29
  export declare const EMPTY_BACKLOG: Backlog;
20
30
  export declare function isStatus(backlog: Backlog, value: unknown): value is Status;
31
+ export declare function isCategoryColor(value: unknown): value is CategoryColor;
32
+ export declare function isCategoryIcon(value: unknown): value is CategoryIcon;
21
33
  export declare function parseBacklog(value: unknown): Backlog;
22
34
  export declare function sortByStatus(items: readonly BacklogItem[], categories: readonly Category[]): BacklogItem[];
23
35
  export declare function moveItem(items: readonly BacklogItem[], id: string, status: Status | undefined, position: number | undefined, categories: readonly Category[]): BacklogItem[];
24
36
  export declare function describeBacklog(backlog: Backlog, statuses?: readonly Status[]): string;
25
37
  export declare function addCategory(backlog: Backlog, category: Category, position?: number): Backlog;
26
38
  export declare function renameCategory(backlog: Backlog, id: string, title: string): Backlog;
39
+ export declare function setCategoryColor(backlog: Backlog, id: string, color: CategoryColor): Backlog;
40
+ export declare function setCategoryIcon(backlog: Backlog, id: string, icon: CategoryIcon): Backlog;
27
41
  export declare function moveCategory(backlog: Backlog, id: string, position: number): Backlog;
28
42
  export declare function removeCategory(backlog: Backlog, id: string): Backlog;
29
43
  export declare function purgeCategory(backlog: Backlog, id: string): Backlog;
package/dist/backlog.js CHANGED
@@ -1,8 +1,19 @@
1
1
  export const BACKLOG_FILE = "BACKLOG.json";
2
+ export const CATEGORY_COLORS = ["default", "subdued", "error", "warning", "success", "info"];
3
+ export const CATEGORY_ICONS = ["circle", "dot", "check", "cross", "pause", "diamond", "none"];
4
+ export const CATEGORY_PRESETS = {
5
+ todo: { color: "subdued", icon: "circle" },
6
+ doing: { color: "warning", icon: "dot" },
7
+ blocked: { color: "error", icon: "cross" },
8
+ review: { color: "info", icon: "diamond" },
9
+ waiting: { color: "warning", icon: "pause" },
10
+ done: { color: "success", icon: "check" },
11
+ cancelled: { color: "subdued", icon: "cross" },
12
+ };
2
13
  export const DEFAULT_CATEGORIES = [
3
- { id: "todo", title: "Todo" },
4
- { id: "doing", title: "Doing" },
5
- { id: "done", title: "Done" },
14
+ { id: "todo", title: "Todo", ...CATEGORY_PRESETS.todo },
15
+ { id: "doing", title: "Doing", ...CATEGORY_PRESETS.doing },
16
+ { id: "done", title: "Done", ...CATEGORY_PRESETS.done },
6
17
  ];
7
18
  export const EMPTY_BACKLOG = { version: 2, categories: DEFAULT_CATEGORIES, items: [] };
8
19
  function isRecord(value) {
@@ -18,7 +29,18 @@ function validateCategory(category, index) {
18
29
  if (typeof category.title !== "string" || category.title.trim().length === 0) {
19
30
  throw new Error(`${label} must have a non-empty title`);
20
31
  }
21
- return { id: category.id, title: category.title };
32
+ if (category.color !== undefined && !isCategoryColor(category.color)) {
33
+ throw new Error(`${label} has an invalid color`);
34
+ }
35
+ if (category.icon !== undefined && !isCategoryIcon(category.icon)) {
36
+ throw new Error(`${label} has an invalid icon`);
37
+ }
38
+ return {
39
+ id: category.id,
40
+ title: category.title,
41
+ ...(category.color === undefined ? {} : { color: category.color }),
42
+ ...(category.icon === undefined ? {} : { icon: category.icon }),
43
+ };
22
44
  }
23
45
  function validateCategories(value) {
24
46
  if (!Array.isArray(value) || value.length === 0) {
@@ -66,6 +88,12 @@ function validateItems(value, categories) {
66
88
  export function isStatus(backlog, value) {
67
89
  return typeof value === "string" && backlog.categories.some(({ id }) => id === value);
68
90
  }
91
+ export function isCategoryColor(value) {
92
+ return typeof value === "string" && CATEGORY_COLORS.includes(value);
93
+ }
94
+ export function isCategoryIcon(value) {
95
+ return typeof value === "string" && CATEGORY_ICONS.includes(value);
96
+ }
69
97
  export function parseBacklog(value) {
70
98
  if (!isRecord(value))
71
99
  throw new Error("BACKLOG.json must contain a backlog object");
@@ -133,6 +161,24 @@ export function renameCategory(backlog, id, title) {
133
161
  categories: backlog.categories.map((category) => category.id === id ? { ...category, title } : category),
134
162
  };
135
163
  }
164
+ export function setCategoryColor(backlog, id, color) {
165
+ if (!backlog.categories.some((category) => category.id === id)) {
166
+ throw new Error(`Backlog category ${id} does not exist`);
167
+ }
168
+ return {
169
+ ...backlog,
170
+ categories: backlog.categories.map((category) => category.id === id ? { ...category, color } : category),
171
+ };
172
+ }
173
+ export function setCategoryIcon(backlog, id, icon) {
174
+ if (!backlog.categories.some((category) => category.id === id)) {
175
+ throw new Error(`Backlog category ${id} does not exist`);
176
+ }
177
+ return {
178
+ ...backlog,
179
+ categories: backlog.categories.map((category) => category.id === id ? { ...category, icon } : category),
180
+ };
181
+ }
136
182
  export function moveCategory(backlog, id, position) {
137
183
  const category = backlog.categories.find((candidate) => candidate.id === id);
138
184
  if (!category)
@@ -1 +1 @@
1
- {"version":3,"file":"backlog.js","sourceRoot":"","sources":["../src/backlog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backlog.js","sourceRoot":"","sources":["../src/backlog.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAA;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAU,CAAA;AACrG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAU,CAAA;AAYtG,MAAM,CAAC,MAAM,gBAAgB,GAA2E;IACtG,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1C,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;IACxC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IAC1C,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1C,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IACzC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;CAC/C,CAAA;AAiBD,MAAM,CAAC,MAAM,kBAAkB,GAAwB;IACrD,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE;IACvD,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE;IAC1D,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE;CACxD,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAY,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;AAE/F,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAiB,EAAE,KAAc;IACzD,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,KAAK,EAAE,CAAA;IAC5E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAA;IACtE,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,2BAA2B,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAA;IACzD,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,uBAAuB,CAAC,CAAA;IAClD,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,sBAAsB,CAAC,CAAA;IACjD,CAAC;IACD,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;KAChE,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAChC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC/C,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAA;QAC7F,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACpB,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,UAA+B;IACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAE5E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAe,EAAE;QAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,oBAAoB,CAAC,CAAA;QAC/E,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,2BAA2B,CAAC,CAAA;QACnE,CAAC;QACD,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAA;QACjF,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,8BAA8B,CAAC,CAAA;QACxE,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAA;QAC9D,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACxF,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,wBAAwB,CAAC,CAAA;QAClE,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1D,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAgB,EAAE,KAAc;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,CAAA;AACvF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAsB,CAAC,CAAA;AACtF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAEnF,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kBAAkB;YAC9B,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAkB,CAAC;SACtD,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAEhG,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACvD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAA;AAClF,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAA6B,EAC7B,UAA+B;IAE/B,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAA;AACnF,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,KAA6B,EAC7B,EAAU,EACV,MAA0B,EAC1B,QAA4B,EAC5B,UAA+B;IAE/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3D,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAA;IAE/D,MAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;IAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,oBAAoB,YAAY,iBAAiB,CAAC,CAAA;IACpE,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,YAAY,CAAC,CAAA;IACjF,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;IAE3F,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAC/C,UAAU,KAAK,YAAY;QACzB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,CACrE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,QAA4B;IAC5E,MAAM,QAAQ,GAAG,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IAEnE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;QACnE,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,iBAAiB,CAAC,CAAA;QAE3E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;QACpE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YAC3D,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAA;QACtD,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;IAC/H,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAAgB,EAChB,QAAkB,EAClB,QAAiB;IAEjB,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACxC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAC1C,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IACvE,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,EAAU,EAAE,KAAa;IACxE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACtF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC9C,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CACvD;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,EAAU,EAAE,KAAoB;IACjF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO;QACL,GAAG,OAAO;QACV,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC9C,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CACvD;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,EAAU,EAAE,IAAkB;IAC9E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO;QACL,GAAG,OAAO;QACV,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC9C,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CACtD;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,EAAU,EAAE,QAAgB;IACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC5E,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAA;IAEvE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAChF,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC1E,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAA;AACnF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,EAAU;IACzD,wBAAwB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACrC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAChG,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,EAAU;IACxD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO;QACL,GAAG,OAAO;QACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC;KAC1D,CAAA;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAgB,EAAE,EAAU;IAC5D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAA;IAC1D,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;AAClG,CAAC;AAED,SAAS,aAAa,CAAC,QAA4B,EAAE,MAAc;IACjE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAC1D,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { join } from "node:path";
3
3
  import { Plugin } from "@opencode-ai/plugin";
4
- import { BACKLOG_FILE, addCategory, describeBacklog, moveItem, moveCategory, purgeCategory, removeCategory, renameCategory, sortByStatus, } from "./backlog.js";
5
- import { optionalNullableString, optionalPosition, optionalStatus, record, requiredString, } from "./input.js";
4
+ import { BACKLOG_FILE, CATEGORY_COLORS, CATEGORY_ICONS, addCategory, describeBacklog, moveItem, moveCategory, purgeCategory, removeCategory, renameCategory, setCategoryColor, setCategoryIcon, sortByStatus, } from "./backlog.js";
5
+ import { optionalNullableString, optionalCategoryColor, optionalCategoryIcon, optionalPosition, optionalStatus, record, requiredString, } from "./input.js";
6
6
  import { readBacklog, updateBacklog } from "./store.js";
7
7
  const idInput = {
8
8
  type: "object",
@@ -15,8 +15,10 @@ const categoryTitleInput = {
15
15
  properties: {
16
16
  id: { type: "string", minLength: 1 },
17
17
  title: { type: "string", minLength: 1 },
18
+ color: { type: "string", enum: CATEGORY_COLORS },
19
+ icon: { type: "string", enum: CATEGORY_ICONS },
18
20
  },
19
- required: ["id", "title"],
21
+ required: ["id"],
20
22
  additionalProperties: false,
21
23
  };
22
24
  async function backlogPath(context, sessionID) {
@@ -201,6 +203,8 @@ export default Plugin.define({
201
203
  properties: {
202
204
  id: { type: "string", minLength: 1 },
203
205
  title: { type: "string", minLength: 1 },
206
+ color: { type: "string", enum: CATEGORY_COLORS },
207
+ icon: { type: "string", enum: CATEGORY_ICONS },
204
208
  position: { type: "integer", minimum: 0 },
205
209
  },
206
210
  required: ["id", "title"],
@@ -211,21 +215,37 @@ export default Plugin.define({
211
215
  const values = record(input);
212
216
  const id = requiredString(values, "id");
213
217
  const title = requiredString(values, "title");
218
+ const color = optionalCategoryColor(values);
219
+ const icon = optionalCategoryIcon(values);
214
220
  const position = optionalPosition(values);
215
- const backlog = await updateForSession(context, toolContext.sessionID, (current) => addCategory(current, { id, title }, position));
221
+ const backlog = await updateForSession(context, toolContext.sessionID, (current) => addCategory(current, {
222
+ id,
223
+ title,
224
+ ...(color === undefined ? {} : { color }),
225
+ ...(icon === undefined ? {} : { icon }),
226
+ }, position));
216
227
  return { content: `Added category ${id}.\n\n${describeBacklog(backlog)}` };
217
228
  },
218
229
  });
219
230
  tools.add({
220
231
  name: "backlog_category_update",
221
- description: "Change a backlog category title.",
232
+ description: "Change a backlog category title, color, or icon.",
222
233
  input: categoryTitleInput,
223
234
  options: { codemode: false },
224
235
  execute: async (input, toolContext) => {
225
236
  const values = record(input);
226
237
  const id = requiredString(values, "id");
227
- const title = requiredString(values, "title");
228
- const backlog = await updateForSession(context, toolContext.sessionID, (current) => renameCategory(current, id, title));
238
+ const title = values.title === undefined ? undefined : requiredString(values, "title");
239
+ const color = optionalCategoryColor(values);
240
+ const icon = optionalCategoryIcon(values);
241
+ if (title === undefined && color === undefined && icon === undefined) {
242
+ throw new Error("backlog_category_update requires a title, color, or icon change");
243
+ }
244
+ const backlog = await updateForSession(context, toolContext.sessionID, (current) => {
245
+ const renamed = title === undefined ? current : renameCategory(current, id, title);
246
+ const colored = color === undefined ? renamed : setCategoryColor(renamed, id, color);
247
+ return icon === undefined ? colored : setCategoryIcon(colored, id, icon);
248
+ });
229
249
  return { content: `Updated category ${id}.\n\n${describeBacklog(backlog)}` };
230
250
  },
231
251
  });
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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"}
package/dist/input.d.ts CHANGED
@@ -1,7 +1,9 @@
1
- import { type Backlog, type Status } from "./backlog.js";
1
+ import { type Backlog, type CategoryColor, type CategoryIcon, type Status } from "./backlog.js";
2
2
  export declare function record(input: unknown): Record<string, unknown>;
3
3
  export declare function requiredString(input: Record<string, unknown>, key: string): string;
4
4
  export declare function optionalString(input: Record<string, unknown>, key: string): string | undefined;
5
5
  export declare function optionalNullableString(input: Record<string, unknown>, key: string): string | null | undefined;
6
6
  export declare function optionalStatus(input: Record<string, unknown>, backlog: Backlog): Status | undefined;
7
+ export declare function optionalCategoryColor(input: Record<string, unknown>): CategoryColor | undefined;
8
+ export declare function optionalCategoryIcon(input: Record<string, unknown>): CategoryIcon | undefined;
7
9
  export declare function optionalPosition(input: Record<string, unknown>): number | undefined;
package/dist/input.js CHANGED
@@ -1,4 +1,4 @@
1
- import { isStatus } from "./backlog.js";
1
+ import { isCategoryColor, isCategoryIcon, isStatus, } from "./backlog.js";
2
2
  export function record(input) {
3
3
  if (typeof input !== "object" || input === null || Array.isArray(input)) {
4
4
  throw new Error("Tool input must be an object");
@@ -34,6 +34,22 @@ export function optionalStatus(input, backlog) {
34
34
  throw new Error("status must identify a backlog category");
35
35
  return value;
36
36
  }
37
+ export function optionalCategoryColor(input) {
38
+ const value = input.color;
39
+ if (value === undefined)
40
+ return undefined;
41
+ if (!isCategoryColor(value))
42
+ throw new Error("color must identify a supported category color");
43
+ return value;
44
+ }
45
+ export function optionalCategoryIcon(input) {
46
+ const value = input.icon;
47
+ if (value === undefined)
48
+ return undefined;
49
+ if (!isCategoryIcon(value))
50
+ throw new Error("icon must identify a supported category icon");
51
+ return value;
52
+ }
37
53
  export function optionalPosition(input) {
38
54
  const value = input.position;
39
55
  if (value === undefined)
package/dist/input.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA6B,MAAM,cAAc,CAAA;AAElE,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,KAAgC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAA8B,EAAE,GAAW;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,6BAA6B,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAA8B,EAAE,GAAW;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,mBAAmB,CAAC,CAAA;IACzE,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAA8B,EAC9B,GAAW;IAEX,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACpF,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,2BAA2B,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAA8B,EAAE,OAAgB;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;IAC1B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IACzF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA8B;IAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAA;IAC5B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
package/dist/tui.js CHANGED
@@ -11,11 +11,27 @@ import { watch } from "node:fs";
11
11
  import { join } from "node:path";
12
12
  import { Plugin } from "@opencode-ai/plugin/tui";
13
13
  import { createMemo, createSignal, For, onCleanup, onMount, Show } from "solid-js";
14
- import { addCategory, BACKLOG_FILE, EMPTY_BACKLOG, moveItem, moveCategory, purgeCategory, removeCategory, renameCategory } from "./backlog.js";
14
+ import { addCategory, BACKLOG_FILE, CATEGORY_COLORS, CATEGORY_ICONS, CATEGORY_PRESETS, EMPTY_BACKLOG, moveItem, moveCategory, purgeCategory, removeCategory, renameCategory, setCategoryColor, setCategoryIcon } from "./backlog.js";
15
15
  import { readBacklog, readBacklogSync, updateBacklog } from "./store.js";
16
16
  function categoryTitle(categories, status) {
17
17
  return categories.find(category => category.id === status)?.title ?? status;
18
18
  }
19
+ function categoryColorName(category) {
20
+ return category.color ?? CATEGORY_PRESETS[category.id]?.color ?? "info";
21
+ }
22
+ function categoryIconName(category) {
23
+ return category.icon ?? CATEGORY_PRESETS[category.id]?.icon ?? "circle";
24
+ }
25
+ function categoryIcon(category) {
26
+ const icon = categoryIconName(category);
27
+ if (icon === "circle") return "○";
28
+ if (icon === "dot") return "●";
29
+ if (icon === "check") return "✓";
30
+ if (icon === "cross") return "×";
31
+ if (icon === "pause") return "‖";
32
+ if (icon === "diamond") return "◆";
33
+ return "";
34
+ }
19
35
  function readSnapshot(directory) {
20
36
  try {
21
37
  return {
@@ -81,6 +97,12 @@ function BacklogView(props) {
81
97
  },
82
98
  children: category => {
83
99
  const items = createMemo(() => backlog().items.filter(item => item.status === category.id));
100
+ const color = () => {
101
+ const name = categoryColorName(category);
102
+ if (name === "default") return theme.text.default;
103
+ if (name === "subdued") return theme.text.subdued;
104
+ return theme.text.feedback[name].default;
105
+ };
84
106
  return (() => {
85
107
  var _el$8 = _$createElement("box"),
86
108
  _el$9 = _$createElement("text"),
@@ -102,8 +124,22 @@ function BacklogView(props) {
102
124
  var _el$11 = _$createElement("box"),
103
125
  _el$12 = _$createElement("text");
104
126
  _$insertNode(_el$11, _el$12);
127
+ _$setProp(_el$11, "flexDirection", "row");
128
+ _$setProp(_el$11, "gap", 1);
105
129
  _$setProp(_el$11, "minWidth", 0);
106
130
  _$setProp(_el$11, "onMouseUp", () => void showTaskDetails(props.context, item, backlog().categories));
131
+ _$insert(_el$11, _$createComponent(Show, {
132
+ get when() {
133
+ return categoryIcon(category);
134
+ },
135
+ children: icon => (() => {
136
+ var _el$13 = _$createElement("text");
137
+ _$setProp(_el$13, "flexShrink", 0);
138
+ _$insert(_el$13, icon);
139
+ _$effect(_$p => _$setProp(_el$13, "fg", color(), _$p));
140
+ return _el$13;
141
+ })()
142
+ }), _el$12);
107
143
  _$setProp(_el$12, "wrapMode", "none");
108
144
  _$setProp(_el$12, "truncate", true);
109
145
  _$setProp(_el$12, "flexGrow", 1);
@@ -113,7 +149,7 @@ function BacklogView(props) {
113
149
  return _el$11;
114
150
  })()
115
151
  }), null);
116
- _$effect(_$p => _$setProp(_el$9, "fg", theme.text.subdued, _$p));
152
+ _$effect(_$p => _$setProp(_el$9, "fg", color(), _$p));
117
153
  return _el$8;
118
154
  })();
119
155
  }
@@ -127,24 +163,24 @@ function taskDetails(item, categories) {
127
163
  }
128
164
  function TaskAction(props) {
129
165
  return (() => {
130
- var _el$13 = _$createElement("text"),
131
- _el$14 = _$createElement("b"),
132
- _el$15 = _$createTextNode(` `);
133
- _$insertNode(_el$13, _el$14);
134
- _$insertNode(_el$13, _el$15);
135
- _$insert(_el$14, () => props.shortcut);
136
- _$insert(_el$13, () => props.label, null);
166
+ var _el$14 = _$createElement("text"),
167
+ _el$15 = _$createElement("b"),
168
+ _el$16 = _$createTextNode(` `);
169
+ _$insertNode(_el$14, _el$15);
170
+ _$insertNode(_el$14, _el$16);
171
+ _$insert(_el$15, () => props.shortcut);
172
+ _$insert(_el$14, () => props.label, null);
137
173
  _$effect(_p$ => {
138
174
  var _v$ = props.danger ? props.context.theme.text.feedback.error.default : props.context.theme.text.subdued,
139
175
  _v$2 = props.run;
140
- _v$ !== _p$.e && (_p$.e = _$setProp(_el$13, "fg", _v$, _p$.e));
141
- _v$2 !== _p$.t && (_p$.t = _$setProp(_el$13, "onMouseUp", _v$2, _p$.t));
176
+ _v$ !== _p$.e && (_p$.e = _$setProp(_el$14, "fg", _v$, _p$.e));
177
+ _v$2 !== _p$.t && (_p$.t = _$setProp(_el$14, "onMouseUp", _v$2, _p$.t));
142
178
  return _p$;
143
179
  }, {
144
180
  e: undefined,
145
181
  t: undefined
146
182
  });
147
- return _el$13;
183
+ return _el$14;
148
184
  })();
149
185
  }
150
186
  function TaskDetailsDialog(props) {
@@ -182,37 +218,37 @@ function TaskDetailsDialog(props) {
182
218
  }]
183
219
  }));
184
220
  return (() => {
185
- var _el$16 = _$createElement("box"),
186
- _el$17 = _$createElement("box"),
187
- _el$18 = _$createElement("text"),
188
- _el$19 = _$createElement("b"),
189
- _el$20 = _$createElement("text"),
190
- _el$22 = _$createElement("text"),
191
- _el$23 = _$createElement("box");
192
- _$insertNode(_el$16, _el$17);
193
- _$insertNode(_el$16, _el$22);
194
- _$insertNode(_el$16, _el$23);
195
- _$setProp(_el$16, "paddingLeft", 2);
196
- _$setProp(_el$16, "paddingRight", 2);
197
- _$setProp(_el$16, "gap", 1);
221
+ var _el$17 = _$createElement("box"),
222
+ _el$18 = _$createElement("box"),
223
+ _el$19 = _$createElement("text"),
224
+ _el$20 = _$createElement("b"),
225
+ _el$21 = _$createElement("text"),
226
+ _el$23 = _$createElement("text"),
227
+ _el$24 = _$createElement("box");
198
228
  _$insertNode(_el$17, _el$18);
199
- _$insertNode(_el$17, _el$20);
200
- _$setProp(_el$17, "flexDirection", "row");
201
- _$setProp(_el$17, "justifyContent", "space-between");
202
- _$setProp(_el$17, "gap", 2);
229
+ _$insertNode(_el$17, _el$23);
230
+ _$insertNode(_el$17, _el$24);
231
+ _$setProp(_el$17, "paddingLeft", 2);
232
+ _$setProp(_el$17, "paddingRight", 2);
233
+ _$setProp(_el$17, "gap", 1);
203
234
  _$insertNode(_el$18, _el$19);
204
- _$setProp(_el$18, "wrapMode", "word");
205
- _$setProp(_el$18, "flexGrow", 1);
206
- _$insert(_el$19, () => props.item.title);
207
- _$insertNode(_el$20, _$createTextNode(`esc`));
208
- _$setProp(_el$20, "onMouseUp", () => props.context.ui.dialog.clear());
209
- _$setProp(_el$22, "wrapMode", "word");
210
- _$insert(_el$22, () => taskDetails(props.item, props.categories));
211
- _$setProp(_el$23, "flexDirection", "row");
212
- _$setProp(_el$23, "justifyContent", "flex-end");
213
- _$setProp(_el$23, "gap", 2);
214
- _$setProp(_el$23, "paddingBottom", 1);
215
- _$insert(_el$23, _$createComponent(TaskAction, {
235
+ _$insertNode(_el$18, _el$21);
236
+ _$setProp(_el$18, "flexDirection", "row");
237
+ _$setProp(_el$18, "justifyContent", "space-between");
238
+ _$setProp(_el$18, "gap", 2);
239
+ _$insertNode(_el$19, _el$20);
240
+ _$setProp(_el$19, "wrapMode", "word");
241
+ _$setProp(_el$19, "flexGrow", 1);
242
+ _$insert(_el$20, () => props.item.title);
243
+ _$insertNode(_el$21, _$createTextNode(`esc`));
244
+ _$setProp(_el$21, "onMouseUp", () => props.context.ui.dialog.clear());
245
+ _$setProp(_el$23, "wrapMode", "word");
246
+ _$insert(_el$23, () => taskDetails(props.item, props.categories));
247
+ _$setProp(_el$24, "flexDirection", "row");
248
+ _$setProp(_el$24, "justifyContent", "flex-end");
249
+ _$setProp(_el$24, "gap", 2);
250
+ _$setProp(_el$24, "paddingBottom", 1);
251
+ _$insert(_el$24, _$createComponent(TaskAction, {
216
252
  get context() {
217
253
  return props.context;
218
254
  },
@@ -220,7 +256,7 @@ function TaskDetailsDialog(props) {
220
256
  label: "status",
221
257
  run: changeStatus
222
258
  }), null);
223
- _$insert(_el$23, _$createComponent(TaskAction, {
259
+ _$insert(_el$24, _$createComponent(TaskAction, {
224
260
  get context() {
225
261
  return props.context;
226
262
  },
@@ -228,7 +264,7 @@ function TaskDetailsDialog(props) {
228
264
  label: "edit",
229
265
  run: edit
230
266
  }), null);
231
- _$insert(_el$23, _$createComponent(TaskAction, {
267
+ _$insert(_el$24, _$createComponent(TaskAction, {
232
268
  get context() {
233
269
  return props.context;
234
270
  },
@@ -241,16 +277,16 @@ function TaskDetailsDialog(props) {
241
277
  var _v$3 = props.context.theme.text.default,
242
278
  _v$4 = props.context.theme.text.subdued,
243
279
  _v$5 = props.context.theme.text.subdued;
244
- _v$3 !== _p$.e && (_p$.e = _$setProp(_el$18, "fg", _v$3, _p$.e));
245
- _v$4 !== _p$.t && (_p$.t = _$setProp(_el$20, "fg", _v$4, _p$.t));
246
- _v$5 !== _p$.a && (_p$.a = _$setProp(_el$22, "fg", _v$5, _p$.a));
280
+ _v$3 !== _p$.e && (_p$.e = _$setProp(_el$19, "fg", _v$3, _p$.e));
281
+ _v$4 !== _p$.t && (_p$.t = _$setProp(_el$21, "fg", _v$4, _p$.t));
282
+ _v$5 !== _p$.a && (_p$.a = _$setProp(_el$23, "fg", _v$5, _p$.a));
247
283
  return _p$;
248
284
  }, {
249
285
  e: undefined,
250
286
  t: undefined,
251
287
  a: undefined
252
288
  });
253
- return _el$16;
289
+ return _el$17;
254
290
  })();
255
291
  }
256
292
  function showTaskDetails(context, item, categories) {
@@ -453,9 +489,36 @@ async function addBacklogCategory(context) {
453
489
  value: suggestedID
454
490
  });
455
491
  if (!id?.trim()) return;
492
+ const preset = CATEGORY_PRESETS[id.trim()];
493
+ const color = await context.ui.dialog.select({
494
+ title: title.trim(),
495
+ placeholder: "Category color",
496
+ current: preset?.color ?? "info",
497
+ options: CATEGORY_COLORS.map(value => ({
498
+ title: value,
499
+ value
500
+ }))
501
+ });
502
+ if (!color) return;
503
+ const icon = await context.ui.dialog.select({
504
+ title: title.trim(),
505
+ placeholder: "Category icon",
506
+ current: preset?.icon ?? "circle",
507
+ options: CATEGORY_ICONS.map(value => ({
508
+ title: `${categoryIcon({
509
+ id: "",
510
+ title: "",
511
+ icon: value
512
+ }) || " "} ${value}`,
513
+ value
514
+ }))
515
+ });
516
+ if (!icon) return;
456
517
  const category = {
457
518
  id: id.trim(),
458
- title: title.trim()
519
+ title: title.trim(),
520
+ color,
521
+ icon
459
522
  };
460
523
  const {
461
524
  path
@@ -482,6 +545,50 @@ async function renameBacklogCategory(context, category) {
482
545
  variant: "success"
483
546
  });
484
547
  }
548
+ async function colorBacklogCategory(context, category) {
549
+ const color = await context.ui.dialog.select({
550
+ title: `Color: ${category.title}`,
551
+ placeholder: "Category color",
552
+ current: categoryColorName(category),
553
+ options: CATEGORY_COLORS.map(value => ({
554
+ title: value,
555
+ value
556
+ }))
557
+ });
558
+ if (!color || color === categoryColorName(category)) return;
559
+ const {
560
+ path
561
+ } = backlogLocation(context);
562
+ await updateBacklog(path, current => setCategoryColor(current, category.id, color));
563
+ context.ui.toast.show({
564
+ message: `Updated color for "${category.title}".`,
565
+ variant: "success"
566
+ });
567
+ }
568
+ async function iconBacklogCategory(context, category) {
569
+ const icon = await context.ui.dialog.select({
570
+ title: `Icon: ${category.title}`,
571
+ placeholder: "Category icon",
572
+ current: categoryIconName(category),
573
+ options: CATEGORY_ICONS.map(value => ({
574
+ title: `${categoryIcon({
575
+ id: "",
576
+ title: "",
577
+ icon: value
578
+ }) || " "} ${value}`,
579
+ value
580
+ }))
581
+ });
582
+ if (!icon || icon === categoryIconName(category)) return;
583
+ const {
584
+ path
585
+ } = backlogLocation(context);
586
+ await updateBacklog(path, current => setCategoryIcon(current, category.id, icon));
587
+ context.ui.toast.show({
588
+ message: `Updated icon for "${category.title}".`,
589
+ variant: "success"
590
+ });
591
+ }
485
592
  async function moveBacklogCategory(context, category) {
486
593
  const {
487
594
  path
@@ -557,6 +664,12 @@ async function manageBacklogCategories(context) {
557
664
  options: [{
558
665
  title: "Rename",
559
666
  value: "rename"
667
+ }, {
668
+ title: "Change color",
669
+ value: "color"
670
+ }, {
671
+ title: "Change icon",
672
+ value: "icon"
560
673
  }, {
561
674
  title: "Move",
562
675
  value: "move"
@@ -569,6 +682,8 @@ async function manageBacklogCategories(context) {
569
682
  }])]
570
683
  });
571
684
  if (action === "rename") return renameBacklogCategory(context, category);
685
+ if (action === "color") return colorBacklogCategory(context, category);
686
+ if (action === "icon") return iconBacklogCategory(context, category);
572
687
  if (action === "move") return moveBacklogCategory(context, category);
573
688
  if (action === "delete") return deleteBacklogCategory(context, category);
574
689
  if (action !== "purge") return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-backlog",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Project backlog tools and sidebar for OpenCode 2",
5
5
  "type": "module",
6
6
  "repository": {