kanbo-cli 0.1.0 → 0.1.1

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 (33) hide show
  1. package/README.md +1 -2
  2. package/dist/cli.cjs +96 -14
  3. package/dist/cli.cjs.map +1 -1
  4. package/dist/lib/{board-store-B16YarvX.d.mts → board-store-BfszzAJB.d.cts} +2 -2
  5. package/dist/lib/{board-store-BHHo_ZlR.d.cts → board-store-BvWn9xTB.d.mts} +2 -2
  6. package/dist/lib/index.cjs +2 -29
  7. package/dist/lib/index.cjs.map +1 -1
  8. package/dist/lib/index.d.cts +363 -363
  9. package/dist/lib/index.d.mts +363 -363
  10. package/dist/lib/index.mjs +1 -28
  11. package/dist/lib/index.mjs.map +1 -1
  12. package/dist/lib/{manifest-C0EcwwgO.mjs → manifest-DfOBqo-Q.mjs} +100 -17
  13. package/dist/lib/manifest-DfOBqo-Q.mjs.map +1 -0
  14. package/dist/lib/{manifest-CpZOcB_6.cjs → manifest-wdwFSquz.cjs} +104 -15
  15. package/dist/lib/manifest-wdwFSquz.cjs.map +1 -0
  16. package/dist/lib/mcp/index.cjs +1 -1
  17. package/dist/lib/mcp/index.d.cts +12 -12
  18. package/dist/lib/mcp/index.d.mts +12 -12
  19. package/dist/lib/mcp/index.mjs +1 -1
  20. package/dist/lib/postgres/index.d.cts +151 -151
  21. package/dist/lib/postgres/index.d.mts +151 -151
  22. package/dist/lib/{schema-fsHqNAip.d.cts → schema-D0MyXcej.d.cts} +41 -41
  23. package/dist/lib/{schema-fsHqNAip.d.mts → schema-D0MyXcej.d.mts} +41 -41
  24. package/dist/lib/sqlite/index.d.cts +12 -12
  25. package/dist/lib/sqlite/index.d.mts +12 -12
  26. package/dist/lib/sqlite/schema.d.cts +1 -1
  27. package/dist/lib/sqlite/schema.d.mts +1 -1
  28. package/dist/lib/{tool-names-9cmCn0gP.d.cts → tool-names-3q_GEZej.d.mts} +5 -5
  29. package/dist/lib/{tool-names-Dxg1UTUl.d.mts → tool-names-WfH4IURz.d.cts} +5 -5
  30. package/dist/page/board.js +1 -1
  31. package/package.json +4 -4
  32. package/dist/lib/manifest-C0EcwwgO.mjs.map +0 -1
  33. package/dist/lib/manifest-CpZOcB_6.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
- import { a as IssuePullRequest, c as IssueStatus, f as issueFieldChanges, i as IssueMilestone, l as KanbanMeta, n as IssueComment, o as IssueRelation, r as IssueFieldChange, s as IssueRun, t as Issue, v as issues } from "./schema-fsHqNAip.cjs";
2
- import { a as BoardStore, c as IssueContextRefStore, d as IssuePullRequestStore, f as IssueRelationStore, g as KanbanMetaStore, h as IssueStatusStore, i as BoardRunProjectionScope, l as IssueFieldChangeStore, m as IssueRunStore, n as BoardLinkedPullRequest, o as BoardTransactionMode, p as IssueRowStore, r as BoardRunProjection, s as IssueCommentStore, t as BoardActiveRun, u as IssueMilestoneStore } from "./board-store-BHHo_ZlR.cjs";
3
- import { a as ENTRY_RULES, c as EntryRuleFacts, d as evaluateEntryRules, f as readChecklist, i as KanboToolName, l as UNMET_ENTRY_RULE_REASONS, m as serializeEntryRules, n as KANBO_TOOL_NAMES, o as ENTRY_RULE_DESCRIPTIONS, p as readEntryRules, r as KanboToolCliEquivalent, s as EntryRule, t as KANBO_TOOL_CLI_EQUIVALENTS, u as UnmetEntryRule } from "./tool-names-9cmCn0gP.cjs";
1
+ import { a as IssuePullRequest, c as IssueStatus, f as issueFieldChanges, i as IssueMilestone, l as KanbanMeta, n as IssueComment, o as IssueRelation, r as IssueFieldChange, s as IssueRun, t as Issue, v as issues } from "./schema-D0MyXcej.cjs";
2
+ import { a as BoardStore, c as IssueContextRefStore, d as IssuePullRequestStore, f as IssueRelationStore, g as KanbanMetaStore, h as IssueStatusStore, i as BoardRunProjectionScope, l as IssueFieldChangeStore, m as IssueRunStore, n as BoardLinkedPullRequest, o as BoardTransactionMode, p as IssueRowStore, r as BoardRunProjection, s as IssueCommentStore, t as BoardActiveRun, u as IssueMilestoneStore } from "./board-store-BfszzAJB.cjs";
3
+ import { a as ENTRY_RULES, c as EntryRuleFacts, d as evaluateEntryRules, f as readChecklist, i as KanboToolName, l as UNMET_ENTRY_RULE_REASONS, m as serializeEntryRules, n as KANBO_TOOL_NAMES, o as ENTRY_RULE_DESCRIPTIONS, p as readEntryRules, r as KanboToolCliEquivalent, s as EntryRule, t as KANBO_TOOL_CLI_EQUIVALENTS, u as UnmetEntryRule } from "./tool-names-WfH4IURz.cjs";
4
4
  import { z } from "zod";
5
5
  //#region src/cli/output.d.ts
6
6
  /**
@@ -11,19 +11,19 @@ import { z } from "zod";
11
11
  */
12
12
  declare const CLI_EXIT_CODES: readonly [{
13
13
  readonly code: 0;
14
- readonly meaning: "Success.";
14
+ readonly meaning: 'Success.';
15
15
  }, {
16
16
  readonly code: 1;
17
- readonly meaning: "The command did not do what it was asked. See the message.";
17
+ readonly meaning: 'The command did not do what it was asked. See the message.';
18
18
  }, {
19
19
  readonly code: 2;
20
- readonly meaning: "Nothing to work on, or nothing told the command what to work on.";
20
+ readonly meaning: 'Nothing to work on, or nothing told the command what to work on.';
21
21
  }, {
22
22
  readonly code: 3;
23
- readonly meaning: "The database is older than the board schema this build speaks.";
23
+ readonly meaning: 'The database is older than the board schema this build speaks.';
24
24
  }, {
25
25
  readonly code: 4;
26
- readonly meaning: "The command is a person's to run, and this shell is not a person.";
26
+ readonly meaning: 'The command is a person\'s to run, and this shell is not a person.';
27
27
  }];
28
28
  //#endregion
29
29
  //#region src/capabilities/manifest.d.ts
@@ -46,7 +46,7 @@ declare const CLI_EXIT_CODES: readonly [{
46
46
  * (`kanbo://capabilities`, `kanbo://capabilities.md`).
47
47
  */
48
48
  /** The manifest's own shape version, bumped when a field is added or removed — not the package's version. */
49
- declare const CAPABILITIES_MANIFEST_VERSION = "3";
49
+ export declare const CAPABILITIES_MANIFEST_VERSION = "3";
50
50
  /** The board's name and the build that is answering, as `kanbo mcp` itself reports them. */
51
51
  interface KanboCapabilitiesPackage {
52
52
  name: string;
@@ -126,15 +126,15 @@ interface KanboCapabilities {
126
126
  limits: string[];
127
127
  }
128
128
  /** Everything this build of the board can tell an orchestrator about itself. */
129
- declare function buildCapabilitiesManifest(): KanboCapabilities;
129
+ export declare function buildCapabilitiesManifest(): KanboCapabilities;
130
130
  //#endregion
131
131
  //#region src/capabilities/markdown.d.ts
132
132
  /** The manifest, laid out under one heading per field — stable and diffable, never a snapshot to update by hand. */
133
- declare function renderCapabilitiesMarkdown(manifest: KanboCapabilities): string;
133
+ export declare function renderCapabilitiesMarkdown(manifest: KanboCapabilities): string;
134
134
  //#endregion
135
135
  //#region src/cli/binding.d.ts
136
136
  /** The binding file itself, relative to the project root. */
137
- declare const BINDING_FILE_PATH: string;
137
+ export declare const BINDING_FILE_PATH: string;
138
138
  declare const BindingSchema: z.ZodObject<{
139
139
  schemaVersion: z.ZodLiteral<1>;
140
140
  workspaceId: z.ZodString;
@@ -154,9 +154,9 @@ type KanboBinding = z.infer<typeof BindingSchema>;
154
154
  * board, and a second `init` that quietly dropped the connection string would
155
155
  * leave a project bound to nothing.
156
156
  */
157
- declare function readProjectBinding(projectDir: string): KanboBinding | null;
157
+ export declare function readProjectBinding(projectDir: string): KanboBinding | null;
158
158
  /** The binding in that exact file, or `null` when there is none to read. */
159
- declare function readBinding(path: string): KanboBinding | null;
159
+ export declare function readBinding(path: string): KanboBinding | null;
160
160
  /**
161
161
  * Bind the project folder to a board.
162
162
  *
@@ -174,7 +174,7 @@ declare function readBinding(path: string): KanboBinding | null;
174
174
  * there, which is the right nothing: no permission to narrow, and no failure
175
175
  * to handle.
176
176
  */
177
- declare function writeBinding(projectDir: string, binding: KanboBinding): string;
177
+ export declare function writeBinding(projectDir: string, binding: KanboBinding): string;
178
178
  /**
179
179
  * Make sure `.kanbo/.gitignore` also covers a board file of this project's
180
180
  * own — `kanbo init --file` calls this once, right after creating it — and
@@ -187,7 +187,7 @@ declare function writeBinding(projectDir: string, binding: KanboBinding): string
187
187
  * chosen elsewhere in the project gets no line here, the same way the user's
188
188
  * own `.gitignore` is never touched at all.
189
189
  */
190
- declare function ignoreBoardFile(projectDir: string, absoluteDbPath: string): void;
190
+ export declare function ignoreBoardFile(projectDir: string, absoluteDbPath: string): void;
191
191
  //#endregion
192
192
  //#region src/default-board-file-path.d.ts
193
193
  /**
@@ -195,7 +195,7 @@ declare function ignoreBoardFile(projectDir: string, absoluteDbPath: string): vo
195
195
  * `kanbo init --file` writes it here, and an app that attaches a project's
196
196
  * board file can import the same constant rather than spelling it again.
197
197
  */
198
- declare const DEFAULT_BOARD_FILE_PATH: string;
198
+ export declare const DEFAULT_BOARD_FILE_PATH: string;
199
199
  //#endregion
200
200
  //#region src/domain/issue-view.d.ts
201
201
  /** An issue row with its `labels` column decoded from JSON. */
@@ -208,13 +208,13 @@ type IssueView = Omit<Issue, 'labels'> & {
208
208
  * `system.*` markers that `normalizeCommentAuthorKind` folds away.
209
209
  */
210
210
  type IssueActorKind = IssueFieldChange['actorKind'];
211
- declare function toIssueView(issue: Issue): IssueView;
211
+ export declare function toIssueView(issue: Issue): IssueView;
212
212
  /**
213
213
  * Fold a comment's author kind onto the actor kinds a reader renders: only a
214
214
  * person, an agent and a provider target speak for themselves, so every
215
215
  * `system.*` marker — whatever it marks — is the board speaking as `system`.
216
216
  */
217
- declare function normalizeCommentAuthorKind(authorKind: IssueComment['authorKind']): IssueActorKind;
217
+ export declare function normalizeCommentAuthorKind(authorKind: IssueComment['authorKind']): IssueActorKind;
218
218
  /** Who a row is filed under, as the row stores it — what a host resolves into a name to show. */
219
219
  interface IssueActorReference {
220
220
  kind: IssueActorKind;
@@ -238,7 +238,7 @@ interface IssueWriterProvenance {
238
238
  * the `system` kind first; this answers the rest of the question, and says in
239
239
  * its type that such a writer has a name to show.
240
240
  */
241
- declare function isOutsideWriter(provenance: IssueWriterProvenance): provenance is IssueWriterProvenance & {
241
+ export declare function isOutsideWriter(provenance: IssueWriterProvenance): provenance is IssueWriterProvenance & {
242
242
  authorId: string;
243
243
  };
244
244
  //#endregion
@@ -259,19 +259,19 @@ interface BoardWorkspaceIdentity {
259
259
  name: string;
260
260
  }
261
261
  /** The three-letter stem every issue key in the workspace starts with. */
262
- declare function readIssuePrefix(workspace: BoardWorkspaceIdentity): string;
263
- declare function formatIssueId(prefix: string, number: number): string;
262
+ export declare function readIssuePrefix(workspace: BoardWorkspaceIdentity): string;
263
+ export declare function formatIssueId(prefix: string, number: number): string;
264
264
  /**
265
265
  * The key and number the next issue of this workspace gets. The loop skips keys
266
266
  * an earlier prefix already took, so a renamed workspace never collides with its
267
267
  * own history.
268
268
  */
269
- declare function nextIssueIdentity(workspace: BoardWorkspaceIdentity, store: BoardStore): Promise<{
269
+ export declare function nextIssueIdentity(workspace: BoardWorkspaceIdentity, store: BoardStore): Promise<{
270
270
  id: string;
271
271
  number: number;
272
272
  }>;
273
- declare function nextIssueNumber(workspaceId: string, tx: BoardStore): Promise<number>;
274
- declare function nextIssueOrder(workspaceId: string, tx: BoardStore): Promise<number>;
273
+ export declare function nextIssueNumber(workspaceId: string, tx: BoardStore): Promise<number>;
274
+ export declare function nextIssueOrder(workspaceId: string, tx: BoardStore): Promise<number>;
275
275
  //#endregion
276
276
  //#region src/domain/activity-types.d.ts
277
277
  type IssueActivityValueToken = 'changed' | 'current-user' | 'empty' | 'no-due-date' | 'no-labels' | 'no-milestone' | 'no-parent' | 'no-status' | 'priority-high' | 'priority-low' | 'priority-medium' | 'priority-none' | 'priority-urgent' | 'unassigned' | 'unknown-issue' | 'unknown-milestone' | 'unknown-status' | 'unknown-user';
@@ -337,7 +337,7 @@ interface IssueActivityLookup {
337
337
  * load this package keeps the same rule on its own, tested with the same
338
338
  * examples.
339
339
  */
340
- declare function cardDisplayTitle(card: {
340
+ export declare function cardDisplayTitle(card: {
341
341
  id: string;
342
342
  title: string;
343
343
  description?: string | null;
@@ -367,7 +367,7 @@ declare function cardDisplayTitle(card: {
367
367
  * parses, as a `user:` URL whose whole password is in the path, and printing it
368
368
  * back would say the secret out loud.
369
369
  */
370
- declare function maskDatabaseUrl(url: string): string;
370
+ export declare function maskDatabaseUrl(url: string): string;
371
371
  /**
372
372
  * Every connection string inside a line of text, masked.
373
373
  *
@@ -375,7 +375,7 @@ declare function maskDatabaseUrl(url: string): string;
375
375
  * the whole connection string in the middle of a sentence, and it reaches the
376
376
  * same terminal, or the same agent, as everything else.
377
377
  */
378
- declare function maskDatabaseUrls(text: string): string;
378
+ export declare function maskDatabaseUrls(text: string): string;
379
379
  //#endregion
380
380
  //#region src/domain/errors.d.ts
381
381
  /**
@@ -398,7 +398,7 @@ declare function maskDatabaseUrls(text: string): string;
398
398
  */
399
399
  type BoardErrorCode = 'board_approval_requires_user' | 'board_column_rules_requires_user' | 'board_column_rules_unmet' | 'board_copy_conflict' | 'board_entry_rule_invalid' | 'board_execution_mode_locked' | 'board_mixed_workspaces' | 'board_pull_request_invalid' | 'board_pull_request_not_found' | 'board_pull_request_not_yours' | 'board_return_no_previous_column' | 'board_return_requires_user' | 'board_run_already_finished' | 'board_run_not_found' | 'board_run_session_ref_conflict' | 'board_run_session_ref_invalid' | 'board_run_session_ref_requires_user' | 'board_schema_outdated' | 'board_sprint_carry_invalid' | 'board_sprint_close_requires_user' | 'board_sprint_dates_invalid' | 'board_storage_not_configured' | 'board_storage_not_empty' | 'board_storage_not_prepared' | 'board_storage_unavailable' | 'issue_comment_delete_requires_user' | 'issue_comment_not_found' | 'issue_context_ref_invalid_index' | 'issue_milestone_not_found' | 'issue_not_found' | 'issue_parent_not_found' | 'issue_parent_self_reference' | 'issue_relation_not_found' | 'issue_relation_self_reference' | 'issue_status_name_empty' | 'issue_status_not_found' | 'issue_status_reference_conflict' | 'issue_workspace_not_found';
400
400
  /** A board rule the caller broke, carrying the offending values in `details`. */
401
- declare class BoardError extends Error {
401
+ export declare class BoardError extends Error {
402
402
  readonly code: BoardErrorCode;
403
403
  readonly details?: Record<string, unknown>;
404
404
  constructor(code: BoardErrorCode, details?: Record<string, unknown>);
@@ -429,9 +429,9 @@ interface ExternalSessionRef {
429
429
  * is well formed calls this and catches the throw, the same as
430
430
  * `parsePullRequestRef`.
431
431
  */
432
- declare function parseExternalSessionRef(input: string): ExternalSessionRef;
432
+ export declare function parseExternalSessionRef(input: string): ExternalSessionRef;
433
433
  /** The stored and printed form: `claude:<id>` or `codex:<id>`. */
434
- declare function formatExternalSessionRef(ref: ExternalSessionRef): string;
434
+ export declare function formatExternalSessionRef(ref: ExternalSessionRef): string;
435
435
  //#endregion
436
436
  //#region src/domain/field-changes.d.ts
437
437
  /**
@@ -443,7 +443,7 @@ declare function formatExternalSessionRef(ref: ExternalSessionRef): string;
443
443
  * `system.approved` / `system.returned` comments around it, so a row saying the
444
444
  * same thing a third time would only crowd the history.
445
445
  */
446
- declare const TRACKED_FIELDS: readonly ["workspaceId", "title", "description", "priority", "labels", "milestoneId", "parentIssueId", "statusId", "assigneeKind", "assigneeId", "dueDate", "delegateAgentId", "delegateProviderTargetId", "contextRefs", "executionMode", "order"];
446
+ export declare const TRACKED_FIELDS: readonly ['workspaceId', 'title', 'description', 'priority', 'labels', 'milestoneId', 'parentIssueId', 'statusId', 'assigneeKind', 'assigneeId', 'dueDate', 'delegateAgentId', 'delegateProviderTargetId', 'contextRefs', 'executionMode', 'order'];
447
447
  /** Who an issue edit is attributed to, with the chat session it came from. */
448
448
  interface IssueMutationActor {
449
449
  kind: IssueActorKind;
@@ -456,10 +456,10 @@ interface IssueMutationActor {
456
456
  * comes back, so the diff stays a pure function of the row, the patch, the
457
457
  * actor and the clock.
458
458
  */
459
- declare function diffFieldChanges(before: Issue, updates: Partial<typeof issues.$inferInsert>, actor: IssueMutationActor, now: number): Array<typeof issueFieldChanges.$inferInsert>;
459
+ export declare function diffFieldChanges(before: Issue, updates: Partial<typeof issues.$inferInsert>, actor: IssueMutationActor, now: number): Array<typeof issueFieldChanges.$inferInsert>;
460
460
  //#endregion
461
461
  //#region src/domain/issue-activity.d.ts
462
- declare function activityKindOrder(kind: IssueActivityItemView['kind']): number;
462
+ export declare function activityKindOrder(kind: IssueActivityItemView['kind']): number;
463
463
  /**
464
464
  * The badge a system comment renders under. Delegation owns two of its own; the
465
465
  * rest of the `system.*` markers read as plain system comments until they earn
@@ -469,20 +469,20 @@ declare function activityKindOrder(kind: IssueActivityItemView['kind']): number;
469
469
  * the command line, an agent someone ran themselves — is stored as `system` too, and what it wrote is an ordinary comment
470
470
  * rather than a line about the board — `isOutsideWriter` is that question.
471
471
  */
472
- declare function readSystemCommentKind(authorKind: IssueComment['authorKind'], provenance: IssueWriterProvenance): IssueActivityCommentView['systemKind'];
472
+ export declare function readSystemCommentKind(authorKind: IssueComment['authorKind'], provenance: IssueWriterProvenance): IssueActivityCommentView['systemKind'];
473
473
  /**
474
474
  * Who a comment is shown under. A `system.*` marker is the board's own line
475
475
  * about what happened — a run launched, a person's decision — so the id it
476
476
  * carries names whoever caused the line, never its author. Only a plain
477
477
  * `system` row can name a writer.
478
478
  */
479
- declare function commentAuthorReference(comment: IssueComment): IssueActorReference;
480
- declare function formatActivityIssueReference(value: string | null, lookup: IssueActivityLookup): IssueActivityValueView;
481
- declare function formatPlainActivityValue(value: string | null): IssueActivityValueView;
482
- declare function parseActivityStringArray(value: string | null): string[] | null;
483
- declare function isEmptyActivityValue(value: string | null): value is null | '' | '[]';
484
- declare function activityText(text: string | null): IssueActivityValueView | null;
485
- declare function activityToken(token: IssueActivityValueToken): IssueActivityValueView;
479
+ export declare function commentAuthorReference(comment: IssueComment): IssueActorReference;
480
+ export declare function formatActivityIssueReference(value: string | null, lookup: IssueActivityLookup): IssueActivityValueView;
481
+ export declare function formatPlainActivityValue(value: string | null): IssueActivityValueView;
482
+ export declare function parseActivityStringArray(value: string | null): string[] | null;
483
+ export declare function isEmptyActivityValue(value: string | null): value is null | '' | '[]';
484
+ export declare function activityText(text: string | null): IssueActivityValueView | null;
485
+ export declare function activityToken(token: IssueActivityValueToken): IssueActivityValueView;
486
486
  //#endregion
487
487
  //#region src/domain/pull-request-fact-keys.d.ts
488
488
  /**
@@ -504,7 +504,7 @@ interface PullRequestFactKeys {
504
504
  /** What every CI verdict key of this pull request starts with; the head sha and `:green` or `:red` follow. */
505
505
  ciPrefix: string;
506
506
  }
507
- declare function pullRequestFactKeys({ owner, repo, number }: {
507
+ export declare function pullRequestFactKeys({ owner, repo, number }: {
508
508
  owner: string;
509
509
  repo: string;
510
510
  number: number;
@@ -515,43 +515,43 @@ declare function pullRequestFactKeys({ owner, repo, number }: {
515
515
  * The columns a workspace gets the first time someone opens its board, in board
516
516
  * order. A workspace that already holds statuses is never re-seeded.
517
517
  */
518
- declare const DEFAULT_STATUSES: readonly [{
519
- readonly name: "Backlog";
520
- readonly description: "Idea captured, not ready to work on";
521
- readonly color: "#6b7280";
522
- readonly category: "backlog";
518
+ export declare const DEFAULT_STATUSES: readonly [{
519
+ readonly name: 'Backlog';
520
+ readonly description: 'Idea captured, not ready to work on';
521
+ readonly color: '#6b7280';
522
+ readonly category: 'backlog';
523
523
  }, {
524
- readonly name: "To Do";
525
- readonly description: "Spelled out, ready to launch";
526
- readonly color: "#9ca3af";
527
- readonly category: "unstarted";
524
+ readonly name: 'To Do';
525
+ readonly description: 'Spelled out, ready to launch';
526
+ readonly color: '#9ca3af';
527
+ readonly category: 'unstarted';
528
528
  }, {
529
- readonly name: "In Progress";
530
- readonly description: "The orchestrator and its agents are working";
531
- readonly color: "#f59e0b";
532
- readonly category: "started";
529
+ readonly name: 'In Progress';
530
+ readonly description: 'The orchestrator and its agents are working';
531
+ readonly color: '#f59e0b';
532
+ readonly category: 'started';
533
533
  }, {
534
- readonly name: "In Review";
535
- readonly description: "Work done; being checked or waiting for you";
536
- readonly color: "#8b5cf6";
537
- readonly category: "started";
534
+ readonly name: 'In Review';
535
+ readonly description: 'Work done; being checked or waiting for you';
536
+ readonly color: '#8b5cf6';
537
+ readonly category: 'started';
538
538
  }, {
539
- readonly name: "Done";
540
- readonly description: "Accepted";
541
- readonly color: "#22c55e";
542
- readonly category: "completed";
539
+ readonly name: 'Done';
540
+ readonly description: 'Accepted';
541
+ readonly color: '#22c55e';
542
+ readonly category: 'completed';
543
543
  }, {
544
- readonly name: "Canceled";
545
- readonly description: "Canceled";
546
- readonly color: "#6b7280";
547
- readonly category: "canceled";
544
+ readonly name: 'Canceled';
545
+ readonly description: 'Canceled';
546
+ readonly color: '#6b7280';
547
+ readonly category: 'canceled';
548
548
  }];
549
549
  /**
550
550
  * The slug two status names have in common when they mean the same column:
551
551
  * case and the run of spaces or dashes between words are ignored, so `In
552
552
  * Progress`, `in-progress` and `IN_PROGRESS` all resolve to one status.
553
553
  */
554
- declare function normalizeStatusName(value: string): string;
554
+ export declare function normalizeStatusName(value: string): string;
555
555
  //#endregion
556
556
  //#region src/domain/time.d.ts
557
557
  /**
@@ -559,7 +559,7 @@ declare function normalizeStatusName(value: string): string;
559
559
  *
560
560
  * The package carries its own clock, so it depends on nothing of its host's.
561
561
  */
562
- declare function currentUnixSeconds(): number;
562
+ export declare function currentUnixSeconds(): number;
563
563
  //#endregion
564
564
  //#region src/ops/change-seq.d.ts
565
565
  /**
@@ -595,12 +595,12 @@ interface BoardWriteScope<TStore extends BoardStore = BoardStore> {
595
595
  * the only database-touching async chain in flight, and inside it only
596
596
  * operations that resolve without I/O may be awaited.
597
597
  */
598
- declare function runBoardWrite<TStore extends BoardStore, TResult>(store: TStore, fn: (scope: BoardWriteScope<TStore>) => Promise<TResult>, scope?: BoardWriteScope<TStore>): Promise<TResult>;
598
+ export declare function runBoardWrite<TStore extends BoardStore, TResult>(store: TStore, fn: (scope: BoardWriteScope<TStore>) => Promise<TResult>, scope?: BoardWriteScope<TStore>): Promise<TResult>;
599
599
  /**
600
600
  * How many times the board has changed. A reader that holds a number and reads
601
601
  * the same one back is looking at the board it already has.
602
602
  */
603
- declare function readChangeSeq(store: BoardStore): Promise<number>;
603
+ export declare function readChangeSeq(store: BoardStore): Promise<number>;
604
604
  //#endregion
605
605
  //#region src/ops/types.d.ts
606
606
  /**
@@ -634,7 +634,7 @@ interface BoardActor {
634
634
  * depends on the agent having written a status line since it started, so a line
635
635
  * the board wrote itself must never be filed under the agent that was running.
636
636
  */
637
- declare const BOARD_ACTOR: BoardActor;
637
+ export declare const BOARD_ACTOR: BoardActor;
638
638
  /** A comment as the board writes it, before the row exists. */
639
639
  interface BoardCommentInput {
640
640
  issueId: string;
@@ -935,237 +935,237 @@ interface BoardColumnPatch {
935
935
  * scope of a write already in progress joins it, so a caller composing several
936
936
  * operations gets one transaction and one board version bump.
937
937
  */
938
- declare function createBoardOps<TStore extends BoardStore>(store: TStore): {
938
+ export declare function createBoardOps<TStore extends BoardStore>(store: TStore): {
939
939
  createCard: (input: CreateCardInput, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<BoardCardWrite>;
940
- createSubCard: (parentIssueId: string, input: Omit<CreateCardInput, "parentIssueId">, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<BoardCardWrite>;
940
+ createSubCard: (parentIssueId: string, input: Omit<CreateCardInput, 'parentIssueId'>, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<BoardCardWrite>;
941
941
  updateCard: (issueId: string, input: UpdateCardInput, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<BoardCardWrite>;
942
942
  moveCard: (issueId: string, nameOrId: string, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<BoardCardWrite>;
943
943
  addComment: (input: AddCommentInput, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
944
- id: string;
945
- createdAt: number;
946
- sourceChatSessionId: string | null;
947
- issueId: string;
948
- content: string;
949
- authorKind: "user" | "agent" | "system" | "provider-target" | "system.delegated" | "system.undelegated" | "system.run" | "system.approved" | "system.returned" | "system.pr";
950
- authorId: string | null;
951
944
  agentActivityId: string | null;
945
+ authorId: string | null;
946
+ authorKind: "agent" | "provider-target" | "system" | "system.approved" | "system.delegated" | "system.pr" | "system.returned" | "system.run" | "system.undelegated" | "user";
947
+ content: string;
948
+ createdAt: number;
952
949
  dedupeKey: string | null;
953
- }>;
954
- createCommentOnce: (input: CreateCommentOnceInput, scope?: BoardWriteScope<TStore>) => Promise<{
955
950
  id: string;
956
- createdAt: number;
957
- sourceChatSessionId: string | null;
958
951
  issueId: string;
959
- content: string;
960
- authorKind: "user" | "agent" | "system" | "provider-target" | "system.delegated" | "system.undelegated" | "system.run" | "system.approved" | "system.returned" | "system.pr";
961
- authorId: string | null;
952
+ sourceChatSessionId: string | null;
953
+ }>;
954
+ createCommentOnce: (input: CreateCommentOnceInput, scope?: BoardWriteScope<TStore>) => Promise<{
962
955
  agentActivityId: string | null;
956
+ authorId: string | null;
957
+ authorKind: "agent" | "provider-target" | "system" | "system.approved" | "system.delegated" | "system.pr" | "system.returned" | "system.run" | "system.undelegated" | "user";
958
+ content: string;
959
+ createdAt: number;
963
960
  dedupeKey: string | null;
964
- }>;
965
- listComments: (issueId: string) => Promise<{
966
961
  id: string;
967
- createdAt: number;
968
- sourceChatSessionId: string | null;
969
962
  issueId: string;
970
- content: string;
971
- authorKind: "user" | "agent" | "system" | "provider-target" | "system.delegated" | "system.undelegated" | "system.run" | "system.approved" | "system.returned" | "system.pr";
972
- authorId: string | null;
963
+ sourceChatSessionId: string | null;
964
+ }>;
965
+ listComments: (issueId: string) => Promise<{
973
966
  agentActivityId: string | null;
967
+ authorId: string | null;
968
+ authorKind: "agent" | "provider-target" | "system" | "system.approved" | "system.delegated" | "system.pr" | "system.returned" | "system.run" | "system.undelegated" | "user";
969
+ content: string;
970
+ createdAt: number;
974
971
  dedupeKey: string | null;
972
+ id: string;
973
+ issueId: string;
974
+ sourceChatSessionId: string | null;
975
975
  }[]>;
976
976
  deleteComment: (commentId: string, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<void>;
977
977
  deleteCard: (issueId: string, scope?: BoardWriteScope<TStore>) => Promise<{
978
978
  runIds: string[];
979
979
  }>;
980
980
  searchCards: (query: string, limit: number) => Promise<{
981
- number: number;
982
- id: string;
983
- workspaceId: string;
984
- description: string | null;
985
- order: number;
981
+ assigneeId: string | null;
982
+ assigneeKind: string | null;
983
+ contextRefs: string;
986
984
  createdAt: number;
987
- title: string;
985
+ createdById: string;
986
+ createdByKind: "agent" | "provider-target" | "system" | "user";
987
+ delegateAgentId: string | null;
988
+ delegateProviderTargetId: string | null;
989
+ description: string | null;
988
990
  dueDate: number | null;
989
- updatedAt: number;
990
- statusId: string | null;
991
+ executionMode: "main" | "worktree";
992
+ id: string;
993
+ labels: string;
991
994
  milestoneId: string | null;
995
+ number: number;
996
+ order: number;
992
997
  parentIssueId: string | null;
993
- priority: "none" | "low" | "medium" | "high" | "urgent";
994
- labels: string;
995
- assigneeKind: string | null;
996
- assigneeId: string | null;
997
- createdByKind: "user" | "agent" | "system" | "provider-target";
998
- createdById: string;
998
+ priority: "high" | "low" | "medium" | "none" | "urgent";
999
999
  sourceChatSessionId: string | null;
1000
- delegateAgentId: string | null;
1001
- delegateProviderTargetId: string | null;
1002
- contextRefs: string;
1000
+ statusId: string | null;
1003
1001
  statusLine: string | null;
1002
+ title: string;
1003
+ updatedAt: number;
1004
1004
  waitingFor: "human" | null;
1005
- executionMode: "worktree" | "main";
1005
+ workspaceId: string;
1006
1006
  }[]>;
1007
1007
  bulkUpdateCards: (issueIds: string[], input: BulkUpdateCardsInput, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<BulkUpdateCardsResult>;
1008
1008
  reorderCards: (workspaceId: string, orderedIds: string[], scope?: BoardWriteScope<TStore>) => Promise<void>;
1009
1009
  migrateCards: (input: MigrateCardsInput) => Promise<MigrateCardsResult>;
1010
1010
  addContextRef: (issueId: string, ref: string, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1011
- number: number;
1012
- id: string;
1013
- workspaceId: string;
1014
- description: string | null;
1015
- order: number;
1011
+ assigneeId: string | null;
1012
+ assigneeKind: string | null;
1013
+ contextRefs: string;
1016
1014
  createdAt: number;
1017
- title: string;
1015
+ createdById: string;
1016
+ createdByKind: "agent" | "provider-target" | "system" | "user";
1017
+ delegateAgentId: string | null;
1018
+ delegateProviderTargetId: string | null;
1019
+ description: string | null;
1018
1020
  dueDate: number | null;
1019
- updatedAt: number;
1020
- statusId: string | null;
1021
+ executionMode: "main" | "worktree";
1022
+ id: string;
1023
+ labels: string;
1021
1024
  milestoneId: string | null;
1025
+ number: number;
1026
+ order: number;
1022
1027
  parentIssueId: string | null;
1023
- priority: "none" | "low" | "medium" | "high" | "urgent";
1024
- labels: string;
1025
- assigneeKind: string | null;
1026
- assigneeId: string | null;
1027
- createdByKind: "user" | "agent" | "system" | "provider-target";
1028
- createdById: string;
1028
+ priority: "high" | "low" | "medium" | "none" | "urgent";
1029
1029
  sourceChatSessionId: string | null;
1030
- delegateAgentId: string | null;
1031
- delegateProviderTargetId: string | null;
1032
- contextRefs: string;
1030
+ statusId: string | null;
1033
1031
  statusLine: string | null;
1032
+ title: string;
1033
+ updatedAt: number;
1034
1034
  waitingFor: "human" | null;
1035
- executionMode: "worktree" | "main";
1035
+ workspaceId: string;
1036
1036
  }>;
1037
1037
  removeContextRef: (issueId: string, index: number, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1038
- number: number;
1039
- id: string;
1040
- workspaceId: string;
1041
- description: string | null;
1042
- order: number;
1038
+ assigneeId: string | null;
1039
+ assigneeKind: string | null;
1040
+ contextRefs: string;
1043
1041
  createdAt: number;
1044
- title: string;
1042
+ createdById: string;
1043
+ createdByKind: "agent" | "provider-target" | "system" | "user";
1044
+ delegateAgentId: string | null;
1045
+ delegateProviderTargetId: string | null;
1046
+ description: string | null;
1045
1047
  dueDate: number | null;
1046
- updatedAt: number;
1047
- statusId: string | null;
1048
+ executionMode: "main" | "worktree";
1049
+ id: string;
1050
+ labels: string;
1048
1051
  milestoneId: string | null;
1052
+ number: number;
1053
+ order: number;
1049
1054
  parentIssueId: string | null;
1050
- priority: "none" | "low" | "medium" | "high" | "urgent";
1051
- labels: string;
1052
- assigneeKind: string | null;
1053
- assigneeId: string | null;
1054
- createdByKind: "user" | "agent" | "system" | "provider-target";
1055
- createdById: string;
1055
+ priority: "high" | "low" | "medium" | "none" | "urgent";
1056
1056
  sourceChatSessionId: string | null;
1057
- delegateAgentId: string | null;
1058
- delegateProviderTargetId: string | null;
1059
- contextRefs: string;
1057
+ statusId: string | null;
1060
1058
  statusLine: string | null;
1059
+ title: string;
1060
+ updatedAt: number;
1061
1061
  waitingFor: "human" | null;
1062
- executionMode: "worktree" | "main";
1062
+ workspaceId: string;
1063
1063
  }>;
1064
1064
  listRelations: (issueId: string) => Promise<IssueRelationView[]>;
1065
1065
  createRelation: (input: CreateRelationInput, scope?: BoardWriteScope<TStore>) => Promise<{
1066
- id: string;
1067
1066
  createdAt: number;
1067
+ id: string;
1068
1068
  sourceIssueId: string;
1069
1069
  targetIssueId: string;
1070
1070
  type: "blocks" | "duplicates" | "relates_to";
1071
1071
  }>;
1072
1072
  deleteRelation: (relationId: string, scope?: BoardWriteScope<TStore>) => Promise<void>;
1073
1073
  listFieldChanges: (issueId: string) => Promise<{
1074
- id: string;
1074
+ actorId: string | null;
1075
+ actorKind: "agent" | "provider-target" | "system" | "user";
1075
1076
  createdAt: number;
1076
- sourceChatSessionId: string | null;
1077
- issueId: string;
1078
1077
  field: string;
1079
1078
  fromValue: string | null;
1079
+ id: string;
1080
+ issueId: string;
1081
+ sourceChatSessionId: string | null;
1080
1082
  toValue: string | null;
1081
- actorKind: "user" | "agent" | "system" | "provider-target";
1082
- actorId: string | null;
1083
1083
  }[]>;
1084
1084
  listActivity: (issueId: string, resolver: IssueActivityResolver) => Promise<IssueActivityItemView[]>;
1085
1085
  setStatusLine: (issueId: string, statusLine: string | null, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1086
- number: number;
1087
- id: string;
1088
- workspaceId: string;
1089
- description: string | null;
1090
- order: number;
1086
+ assigneeId: string | null;
1087
+ assigneeKind: string | null;
1088
+ contextRefs: string;
1091
1089
  createdAt: number;
1092
- title: string;
1090
+ createdById: string;
1091
+ createdByKind: "agent" | "provider-target" | "system" | "user";
1092
+ delegateAgentId: string | null;
1093
+ delegateProviderTargetId: string | null;
1094
+ description: string | null;
1093
1095
  dueDate: number | null;
1094
- updatedAt: number;
1095
- statusId: string | null;
1096
+ executionMode: "main" | "worktree";
1097
+ id: string;
1098
+ labels: string;
1096
1099
  milestoneId: string | null;
1100
+ number: number;
1101
+ order: number;
1097
1102
  parentIssueId: string | null;
1098
- priority: "none" | "low" | "medium" | "high" | "urgent";
1099
- labels: string;
1100
- assigneeKind: string | null;
1101
- assigneeId: string | null;
1102
- createdByKind: "user" | "agent" | "system" | "provider-target";
1103
- createdById: string;
1103
+ priority: "high" | "low" | "medium" | "none" | "urgent";
1104
1104
  sourceChatSessionId: string | null;
1105
- delegateAgentId: string | null;
1106
- delegateProviderTargetId: string | null;
1107
- contextRefs: string;
1105
+ statusId: string | null;
1108
1106
  statusLine: string | null;
1107
+ title: string;
1108
+ updatedAt: number;
1109
1109
  waitingFor: "human" | null;
1110
- executionMode: "worktree" | "main";
1110
+ workspaceId: string;
1111
1111
  }>;
1112
1112
  waitApproval: (issueId: string, input: {
1113
1113
  statusLine?: string | null;
1114
1114
  }, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1115
- number: number;
1116
- id: string;
1117
- workspaceId: string;
1118
- description: string | null;
1119
- order: number;
1115
+ assigneeId: string | null;
1116
+ assigneeKind: string | null;
1117
+ contextRefs: string;
1120
1118
  createdAt: number;
1121
- title: string;
1119
+ createdById: string;
1120
+ createdByKind: "agent" | "provider-target" | "system" | "user";
1121
+ delegateAgentId: string | null;
1122
+ delegateProviderTargetId: string | null;
1123
+ description: string | null;
1122
1124
  dueDate: number | null;
1123
- updatedAt: number;
1124
- statusId: string | null;
1125
+ executionMode: "main" | "worktree";
1126
+ id: string;
1127
+ labels: string;
1125
1128
  milestoneId: string | null;
1129
+ number: number;
1130
+ order: number;
1126
1131
  parentIssueId: string | null;
1127
- priority: "none" | "low" | "medium" | "high" | "urgent";
1128
- labels: string;
1129
- assigneeKind: string | null;
1130
- assigneeId: string | null;
1131
- createdByKind: "user" | "agent" | "system" | "provider-target";
1132
- createdById: string;
1132
+ priority: "high" | "low" | "medium" | "none" | "urgent";
1133
1133
  sourceChatSessionId: string | null;
1134
- delegateAgentId: string | null;
1135
- delegateProviderTargetId: string | null;
1136
- contextRefs: string;
1134
+ statusId: string | null;
1137
1135
  statusLine: string | null;
1136
+ title: string;
1137
+ updatedAt: number;
1138
1138
  waitingFor: "human" | null;
1139
- executionMode: "worktree" | "main";
1139
+ workspaceId: string;
1140
1140
  }>;
1141
1141
  approve: (issueId: string, input: {
1142
1142
  comment?: string | null;
1143
1143
  }, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1144
- number: number;
1145
- id: string;
1146
- workspaceId: string;
1147
- description: string | null;
1148
- order: number;
1144
+ assigneeId: string | null;
1145
+ assigneeKind: string | null;
1146
+ contextRefs: string;
1149
1147
  createdAt: number;
1150
- title: string;
1148
+ createdById: string;
1149
+ createdByKind: "agent" | "provider-target" | "system" | "user";
1150
+ delegateAgentId: string | null;
1151
+ delegateProviderTargetId: string | null;
1152
+ description: string | null;
1151
1153
  dueDate: number | null;
1152
- updatedAt: number;
1153
- statusId: string | null;
1154
+ executionMode: "main" | "worktree";
1155
+ id: string;
1156
+ labels: string;
1154
1157
  milestoneId: string | null;
1158
+ number: number;
1159
+ order: number;
1155
1160
  parentIssueId: string | null;
1156
- priority: "none" | "low" | "medium" | "high" | "urgent";
1157
- labels: string;
1158
- assigneeKind: string | null;
1159
- assigneeId: string | null;
1160
- createdByKind: "user" | "agent" | "system" | "provider-target";
1161
- createdById: string;
1161
+ priority: "high" | "low" | "medium" | "none" | "urgent";
1162
1162
  sourceChatSessionId: string | null;
1163
- delegateAgentId: string | null;
1164
- delegateProviderTargetId: string | null;
1165
- contextRefs: string;
1163
+ statusId: string | null;
1166
1164
  statusLine: string | null;
1165
+ title: string;
1166
+ updatedAt: number;
1167
1167
  waitingFor: "human" | null;
1168
- executionMode: "worktree" | "main";
1168
+ workspaceId: string;
1169
1169
  }>;
1170
1170
  returnCard: (issueId: string, input: {
1171
1171
  comment: string;
@@ -1176,72 +1176,72 @@ declare function createBoardOps<TStore extends BoardStore>(store: TStore): {
1176
1176
  }>;
1177
1177
  readApproval: (issueId: string) => Promise<BoardApproval>;
1178
1178
  linkPullRequest: (issueId: string, urlOrRef: string, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1179
- number: number;
1180
- id: string;
1181
1179
  createdAt: number;
1182
- createdByKind: "user" | "agent" | "system" | "provider-target";
1183
1180
  createdById: string | null;
1181
+ createdByKind: "agent" | "provider-target" | "system" | "user";
1182
+ id: string;
1184
1183
  issueId: string;
1184
+ number: number;
1185
1185
  owner: string;
1186
1186
  repo: string;
1187
1187
  url: string;
1188
1188
  }>;
1189
1189
  unlinkPullRequest: (issueId: string, linkId: string, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1190
- number: number;
1191
- id: string;
1192
1190
  createdAt: number;
1193
- createdByKind: "user" | "agent" | "system" | "provider-target";
1194
1191
  createdById: string | null;
1192
+ createdByKind: "agent" | "provider-target" | "system" | "user";
1193
+ id: string;
1195
1194
  issueId: string;
1195
+ number: number;
1196
1196
  owner: string;
1197
1197
  repo: string;
1198
1198
  url: string;
1199
1199
  }>;
1200
1200
  listPullRequests: (issueId: string) => Promise<{
1201
- number: number;
1202
- id: string;
1203
1201
  createdAt: number;
1204
- createdByKind: "user" | "agent" | "system" | "provider-target";
1205
1202
  createdById: string | null;
1203
+ createdByKind: "agent" | "provider-target" | "system" | "user";
1204
+ id: string;
1206
1205
  issueId: string;
1206
+ number: number;
1207
1207
  owner: string;
1208
1208
  repo: string;
1209
1209
  url: string;
1210
1210
  }[]>;
1211
1211
  listPullRequestStandings: (issueId: string) => Promise<BoardPullRequestStanding[]>;
1212
1212
  listMilestones: (workspaceId: string | null) => Promise<{
1213
- id: string;
1214
- workspaceId: string;
1215
- description: string | null;
1216
1213
  createdAt: number;
1217
- title: string;
1218
- startDate: number | null;
1214
+ description: string | null;
1219
1215
  dueDate: number | null;
1220
- status: "open" | "closed";
1216
+ id: string;
1217
+ startDate: number | null;
1218
+ status: "closed" | "open";
1219
+ title: string;
1221
1220
  updatedAt: number;
1221
+ workspaceId: string;
1222
1222
  }[]>;
1223
1223
  deleteMilestone: (milestoneId: string, scope?: BoardWriteScope<TStore>) => Promise<void>;
1224
1224
  createMilestone: (input: CreateMilestoneInput, scope?: BoardWriteScope<TStore>) => Promise<{
1225
- id: string;
1226
- workspaceId: string;
1227
- description: string | null;
1228
1225
  createdAt: number;
1229
- title: string;
1230
- startDate: number | null;
1226
+ description: string | null;
1231
1227
  dueDate: number | null;
1232
- status: "open" | "closed";
1228
+ id: string;
1229
+ startDate: number | null;
1230
+ status: "closed" | "open";
1231
+ title: string;
1233
1232
  updatedAt: number;
1233
+ workspaceId: string;
1234
1234
  }>;
1235
1235
  updateMilestone: (milestoneId: string, input: UpdateMilestoneInput, scope?: BoardWriteScope<TStore>) => Promise<{
1236
- id: string;
1237
- workspaceId: string;
1238
- description: string | null;
1239
1236
  createdAt: number;
1240
- title: string;
1241
- startDate: number | null;
1237
+ description: string | null;
1242
1238
  dueDate: number | null;
1243
- status: "open" | "closed";
1239
+ id: string;
1240
+ startDate: number | null;
1241
+ status: "closed" | "open";
1242
+ title: string;
1244
1243
  updatedAt: number;
1244
+ workspaceId: string;
1245
1245
  }>;
1246
1246
  listSprints: (workspaceId: string, now?: number) => Promise<BoardSprint[]>;
1247
1247
  currentSprint: (workspaceId: string, now?: number) => Promise<BoardSprint | null>;
@@ -1249,92 +1249,92 @@ declare function createBoardOps<TStore extends BoardStore>(store: TStore): {
1249
1249
  carryTo?: string | null;
1250
1250
  }, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<CloseSprintResult>;
1251
1251
  listColumns: (workspaceId: string) => Promise<{
1252
+ category: "backlog" | "canceled" | "completed" | "started" | "triage" | "unstarted";
1253
+ color: string | null;
1254
+ createdAt: number;
1255
+ description: string | null;
1256
+ entryRules: string | null;
1252
1257
  id: string;
1253
- workspaceId: string;
1254
1258
  name: string;
1255
- description: string | null;
1256
- color: string | null;
1257
- category: "triage" | "backlog" | "unstarted" | "started" | "completed" | "canceled";
1258
1259
  order: number;
1259
- entryRules: string | null;
1260
- createdAt: number;
1260
+ workspaceId: string;
1261
1261
  }[]>;
1262
1262
  findColumn: (workspaceId: string, nameOrId: string) => Promise<{
1263
+ category: "backlog" | "canceled" | "completed" | "started" | "triage" | "unstarted";
1264
+ color: string | null;
1265
+ createdAt: number;
1266
+ description: string | null;
1267
+ entryRules: string | null;
1263
1268
  id: string;
1264
- workspaceId: string;
1265
1269
  name: string;
1266
- description: string | null;
1267
- color: string | null;
1268
- category: "triage" | "backlog" | "unstarted" | "started" | "completed" | "canceled";
1269
1270
  order: number;
1270
- entryRules: string | null;
1271
- createdAt: number;
1271
+ workspaceId: string;
1272
1272
  } | null>;
1273
1273
  requireColumn: (workspaceId: string, nameOrId: string) => Promise<{
1274
+ category: "backlog" | "canceled" | "completed" | "started" | "triage" | "unstarted";
1275
+ color: string | null;
1276
+ createdAt: number;
1277
+ description: string | null;
1278
+ entryRules: string | null;
1274
1279
  id: string;
1275
- workspaceId: string;
1276
1280
  name: string;
1277
- description: string | null;
1278
- color: string | null;
1279
- category: "triage" | "backlog" | "unstarted" | "started" | "completed" | "canceled";
1280
1281
  order: number;
1281
- entryRules: string | null;
1282
- createdAt: number;
1282
+ workspaceId: string;
1283
1283
  }>;
1284
1284
  ensureDefaultColumns: (workspaceId: string, scope?: BoardWriteScope<TStore>) => Promise<{
1285
+ category: "backlog" | "canceled" | "completed" | "started" | "triage" | "unstarted";
1286
+ color: string | null;
1287
+ createdAt: number;
1288
+ description: string | null;
1289
+ entryRules: string | null;
1285
1290
  id: string;
1286
- workspaceId: string;
1287
1291
  name: string;
1288
- description: string | null;
1289
- color: string | null;
1290
- category: "triage" | "backlog" | "unstarted" | "started" | "completed" | "canceled";
1291
1292
  order: number;
1292
- entryRules: string | null;
1293
- createdAt: number;
1293
+ workspaceId: string;
1294
1294
  }[]>;
1295
1295
  createColumn: (input: BoardColumnInput, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1296
+ category: "backlog" | "canceled" | "completed" | "started" | "triage" | "unstarted";
1297
+ color: string | null;
1298
+ createdAt: number;
1299
+ description: string | null;
1300
+ entryRules: string | null;
1296
1301
  id: string;
1297
- workspaceId: string;
1298
1302
  name: string;
1299
- description: string | null;
1300
- color: string | null;
1301
- category: "triage" | "backlog" | "unstarted" | "started" | "completed" | "canceled";
1302
1303
  order: number;
1303
- entryRules: string | null;
1304
- createdAt: number;
1304
+ workspaceId: string;
1305
1305
  }>;
1306
1306
  updateColumn: (statusId: string, patch: BoardColumnPatch, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1307
+ category: "backlog" | "canceled" | "completed" | "started" | "triage" | "unstarted";
1308
+ color: string | null;
1309
+ createdAt: number;
1310
+ description: string | null;
1311
+ entryRules: string | null;
1307
1312
  id: string;
1308
- workspaceId: string;
1309
1313
  name: string;
1310
- description: string | null;
1311
- color: string | null;
1312
- category: "triage" | "backlog" | "unstarted" | "started" | "completed" | "canceled";
1313
1314
  order: number;
1314
- entryRules: string | null;
1315
- createdAt: number;
1315
+ workspaceId: string;
1316
1316
  }>;
1317
1317
  describeColumn: (workspaceId: string, nameOrId: string, description: string | null, scope?: BoardWriteScope<TStore>) => Promise<{
1318
+ category: "backlog" | "canceled" | "completed" | "started" | "triage" | "unstarted";
1319
+ color: string | null;
1320
+ createdAt: number;
1321
+ description: string | null;
1322
+ entryRules: string | null;
1318
1323
  id: string;
1319
- workspaceId: string;
1320
1324
  name: string;
1321
- description: string | null;
1322
- color: string | null;
1323
- category: "triage" | "backlog" | "unstarted" | "started" | "completed" | "canceled";
1324
1325
  order: number;
1325
- entryRules: string | null;
1326
- createdAt: number;
1326
+ workspaceId: string;
1327
1327
  }>;
1328
1328
  setColumnEntryRules: (workspaceId: string, nameOrId: string, entryRules: readonly string[] | null, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1329
+ category: "backlog" | "canceled" | "completed" | "started" | "triage" | "unstarted";
1330
+ color: string | null;
1331
+ createdAt: number;
1332
+ description: string | null;
1333
+ entryRules: string | null;
1329
1334
  id: string;
1330
- workspaceId: string;
1331
1335
  name: string;
1332
- description: string | null;
1333
- color: string | null;
1334
- category: "triage" | "backlog" | "unstarted" | "started" | "completed" | "canceled";
1335
1336
  order: number;
1336
- entryRules: string | null;
1337
- createdAt: number;
1337
+ workspaceId: string;
1338
1338
  }>;
1339
1339
  enforceColumnEntryForCards: (issueIds: string[], statusId: string, actor: BoardActor) => Promise<{
1340
1340
  issueId: string;
@@ -1347,110 +1347,110 @@ declare function createBoardOps<TStore extends BoardStore>(store: TStore): {
1347
1347
  added: string[];
1348
1348
  }>;
1349
1349
  startRun: (issueId: string, input: StartRunInput, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1350
- id: string;
1351
- executionMode: "worktree" | "main";
1352
- issueId: string;
1353
- launchedByKind: "user" | "agent" | "external";
1354
- launchedById: string | null;
1355
1350
  agentId: string | null;
1356
1351
  agentName: string;
1357
- host: string | null;
1358
1352
  branch: string | null;
1359
- worktreePath: string | null;
1360
- state: "running" | "finished" | "failed" | "stopped";
1361
1353
  chatSessionId: string | null;
1362
- externalSessionRef: string | null;
1363
- startedAt: number;
1364
1354
  endedAt: number | null;
1365
- }>;
1366
- attachRunExecution: (runId: string, input: AttachRunExecutionInput, scope?: BoardWriteScope<TStore>) => Promise<{
1355
+ executionMode: "main" | "worktree";
1356
+ externalSessionRef: string | null;
1357
+ host: string | null;
1367
1358
  id: string;
1368
- executionMode: "worktree" | "main";
1369
1359
  issueId: string;
1370
- launchedByKind: "user" | "agent" | "external";
1371
1360
  launchedById: string | null;
1361
+ launchedByKind: "agent" | "external" | "user";
1362
+ startedAt: number;
1363
+ state: "failed" | "finished" | "running" | "stopped";
1364
+ worktreePath: string | null;
1365
+ }>;
1366
+ attachRunExecution: (runId: string, input: AttachRunExecutionInput, scope?: BoardWriteScope<TStore>) => Promise<{
1372
1367
  agentId: string | null;
1373
1368
  agentName: string;
1374
- host: string | null;
1375
1369
  branch: string | null;
1376
- worktreePath: string | null;
1377
- state: "running" | "finished" | "failed" | "stopped";
1378
1370
  chatSessionId: string | null;
1379
- externalSessionRef: string | null;
1380
- startedAt: number;
1381
1371
  endedAt: number | null;
1382
- }>;
1383
- recordRunSessionRef: (runId: string, ref: string, scope?: BoardWriteScope<TStore>) => Promise<{
1372
+ executionMode: "main" | "worktree";
1373
+ externalSessionRef: string | null;
1374
+ host: string | null;
1384
1375
  id: string;
1385
- executionMode: "worktree" | "main";
1386
1376
  issueId: string;
1387
- launchedByKind: "user" | "agent" | "external";
1388
1377
  launchedById: string | null;
1378
+ launchedByKind: "agent" | "external" | "user";
1379
+ startedAt: number;
1380
+ state: "failed" | "finished" | "running" | "stopped";
1381
+ worktreePath: string | null;
1382
+ }>;
1383
+ recordRunSessionRef: (runId: string, ref: string, scope?: BoardWriteScope<TStore>) => Promise<{
1389
1384
  agentId: string | null;
1390
1385
  agentName: string;
1391
- host: string | null;
1392
1386
  branch: string | null;
1393
- worktreePath: string | null;
1394
- state: "running" | "finished" | "failed" | "stopped";
1395
1387
  chatSessionId: string | null;
1388
+ endedAt: number | null;
1389
+ executionMode: "main" | "worktree";
1396
1390
  externalSessionRef: string | null;
1391
+ host: string | null;
1392
+ id: string;
1393
+ issueId: string;
1394
+ launchedById: string | null;
1395
+ launchedByKind: "agent" | "external" | "user";
1397
1396
  startedAt: number;
1398
- endedAt: number | null;
1397
+ state: "failed" | "finished" | "running" | "stopped";
1398
+ worktreePath: string | null;
1399
1399
  }>;
1400
1400
  clearRunSessionRef: (runId: string, actor: BoardActor, options?: {
1401
1401
  replaceWith?: string;
1402
1402
  }, scope?: BoardWriteScope<TStore>) => Promise<{
1403
- id: string;
1404
- executionMode: "worktree" | "main";
1405
- issueId: string;
1406
- launchedByKind: "user" | "agent" | "external";
1407
- launchedById: string | null;
1408
1403
  agentId: string | null;
1409
1404
  agentName: string;
1410
- host: string | null;
1411
1405
  branch: string | null;
1412
- worktreePath: string | null;
1413
- state: "running" | "finished" | "failed" | "stopped";
1414
1406
  chatSessionId: string | null;
1415
- externalSessionRef: string | null;
1416
- startedAt: number;
1417
1407
  endedAt: number | null;
1418
- }>;
1419
- finishRun: (runId: string, input: FinishRunInput, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1408
+ executionMode: "main" | "worktree";
1409
+ externalSessionRef: string | null;
1410
+ host: string | null;
1420
1411
  id: string;
1421
- executionMode: "worktree" | "main";
1422
1412
  issueId: string;
1423
- launchedByKind: "user" | "agent" | "external";
1424
1413
  launchedById: string | null;
1414
+ launchedByKind: "agent" | "external" | "user";
1415
+ startedAt: number;
1416
+ state: "failed" | "finished" | "running" | "stopped";
1417
+ worktreePath: string | null;
1418
+ }>;
1419
+ finishRun: (runId: string, input: FinishRunInput, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<{
1425
1420
  agentId: string | null;
1426
1421
  agentName: string;
1427
- host: string | null;
1428
1422
  branch: string | null;
1429
- worktreePath: string | null;
1430
- state: "running" | "finished" | "failed" | "stopped";
1431
1423
  chatSessionId: string | null;
1424
+ endedAt: number | null;
1425
+ executionMode: "main" | "worktree";
1432
1426
  externalSessionRef: string | null;
1427
+ host: string | null;
1428
+ id: string;
1429
+ issueId: string;
1430
+ launchedById: string | null;
1431
+ launchedByKind: "agent" | "external" | "user";
1433
1432
  startedAt: number;
1434
- endedAt: number | null;
1433
+ state: "failed" | "finished" | "running" | "stopped";
1434
+ worktreePath: string | null;
1435
1435
  }>;
1436
1436
  stopRunningRuns: (issueId: string, actor: BoardActor, scope?: BoardWriteScope<TStore>) => Promise<string[]>;
1437
1437
  listRuns: (issueId: string) => Promise<BoardRunView[]>;
1438
1438
  findRunByChatSessionId: (chatSessionId: string) => Promise<{
1439
- id: string;
1440
- executionMode: "worktree" | "main";
1441
- issueId: string;
1442
- launchedByKind: "user" | "agent" | "external";
1443
- launchedById: string | null;
1444
1439
  agentId: string | null;
1445
1440
  agentName: string;
1446
- host: string | null;
1447
1441
  branch: string | null;
1448
- worktreePath: string | null;
1449
- state: "running" | "finished" | "failed" | "stopped";
1450
1442
  chatSessionId: string | null;
1443
+ endedAt: number | null;
1444
+ executionMode: "main" | "worktree";
1451
1445
  externalSessionRef: string | null;
1446
+ host: string | null;
1447
+ id: string;
1448
+ issueId: string;
1449
+ launchedById: string | null;
1450
+ launchedByKind: "agent" | "external" | "user";
1452
1451
  startedAt: number;
1453
- endedAt: number | null;
1452
+ state: "failed" | "finished" | "running" | "stopped";
1453
+ worktreePath: string | null;
1454
1454
  } | null>;
1455
1455
  readBoardProjection: (workspaceId: string) => Promise<BoardRunProjection[]>;
1456
1456
  readBoardProjectionForIssues: (issueIds: string[]) => Promise<BoardRunProjection[]>;
@@ -1459,31 +1459,31 @@ declare function createBoardOps<TStore extends BoardStore>(store: TStore): {
1459
1459
  workspaceId: string;
1460
1460
  limit?: number;
1461
1461
  }) => Promise<{
1462
- number: number;
1463
- id: string;
1464
- workspaceId: string;
1465
- description: string | null;
1466
- order: number;
1462
+ assigneeId: string | null;
1463
+ assigneeKind: string | null;
1464
+ contextRefs: string;
1467
1465
  createdAt: number;
1468
- title: string;
1466
+ createdById: string;
1467
+ createdByKind: "agent" | "provider-target" | "system" | "user";
1468
+ delegateAgentId: string | null;
1469
+ delegateProviderTargetId: string | null;
1470
+ description: string | null;
1469
1471
  dueDate: number | null;
1470
- updatedAt: number;
1471
- statusId: string | null;
1472
+ executionMode: "main" | "worktree";
1473
+ id: string;
1474
+ labels: string;
1472
1475
  milestoneId: string | null;
1476
+ number: number;
1477
+ order: number;
1473
1478
  parentIssueId: string | null;
1474
- priority: "none" | "low" | "medium" | "high" | "urgent";
1475
- labels: string;
1476
- assigneeKind: string | null;
1477
- assigneeId: string | null;
1478
- createdByKind: "user" | "agent" | "system" | "provider-target";
1479
- createdById: string;
1479
+ priority: "high" | "low" | "medium" | "none" | "urgent";
1480
1480
  sourceChatSessionId: string | null;
1481
- delegateAgentId: string | null;
1482
- delegateProviderTargetId: string | null;
1483
- contextRefs: string;
1481
+ statusId: string | null;
1484
1482
  statusLine: string | null;
1483
+ title: string;
1484
+ updatedAt: number;
1485
1485
  waitingFor: "human" | null;
1486
- executionMode: "worktree" | "main";
1486
+ workspaceId: string;
1487
1487
  }[]>;
1488
1488
  buildPrimeText: (workspaceId: string) => Promise<string>;
1489
1489
  };
@@ -1519,7 +1519,7 @@ interface BoardSlice {
1519
1519
  warnings: string[];
1520
1520
  }
1521
1521
  /** Nothing copied — what a move that had nothing to move reports. */
1522
- declare function emptyCopyCounts(): BoardCopyCounts;
1522
+ export declare function emptyCopyCounts(): BoardCopyCounts;
1523
1523
  /**
1524
1524
  * Everything the workspace has on this board, read in one pass before a single
1525
1525
  * row is written anywhere.
@@ -1529,7 +1529,7 @@ declare function emptyCopyCounts(): BoardCopyCounts;
1529
1529
  * than copied: the target holds this workspace's board and nothing else, so the
1530
1530
  * far end of that edge is not there to point at.
1531
1531
  */
1532
- declare function readBoardSlice(from: BoardStore, workspaceId: string): Promise<BoardSlice>;
1532
+ export declare function readBoardSlice(from: BoardStore, workspaceId: string): Promise<BoardSlice>;
1533
1533
  /**
1534
1534
  * Write a slice into the target board, in one transaction, and say what was
1535
1535
  * written and what a person should know about it — the slice's own warnings
@@ -1542,7 +1542,7 @@ declare function readBoardSlice(from: BoardStore, workspaceId: string): Promise<
1542
1542
  * holds under another id — refuses the whole copy before its first insert
1543
1543
  * (`board_copy_conflict`, ruling 3-55).
1544
1544
  */
1545
- declare function writeBoardSlice(to: BoardStore, slice: BoardSlice, workspaceId: string): Promise<{
1545
+ export declare function writeBoardSlice(to: BoardStore, slice: BoardSlice, workspaceId: string): Promise<{
1546
1546
  copied: BoardCopyCounts;
1547
1547
  warnings: string[];
1548
1548
  }>;
@@ -1554,7 +1554,7 @@ declare function writeBoardSlice(to: BoardStore, slice: BoardSlice, workspaceId:
1554
1554
  * foreign key that cascades on both engines, so deleting the card takes them
1555
1555
  * with it.
1556
1556
  */
1557
- declare function deleteBoardSlice(from: BoardStore, slice: BoardSlice): Promise<void>;
1557
+ export declare function deleteBoardSlice(from: BoardStore, slice: BoardSlice): Promise<void>;
1558
1558
  //#endregion
1559
1559
  //#region src/serve/board-error-responses.d.ts
1560
1560
  /** What one board failure is over HTTP: the status, the sentence, and the code a client matches on when it is renamed. */
@@ -1602,7 +1602,7 @@ interface BoardErrorResponse {
1602
1602
  * issue, and a client matching on `issue_*` should not have to learn a second
1603
1603
  * spelling. The code carries through unchanged when no `code` is given.
1604
1604
  */
1605
- declare const BOARD_ERROR_RESPONSES: Record<BoardErrorCode, BoardErrorResponse>;
1605
+ export declare const BOARD_ERROR_RESPONSES: Record<BoardErrorCode, BoardErrorResponse>;
1606
1606
  //#endregion
1607
- export { type AddCommentInput, type AttachRunExecutionInput, BINDING_FILE_PATH, BOARD_ACTOR, BOARD_ERROR_RESPONSES, type BoardActiveRun, type BoardActor, type BoardApproval, type BoardCardWrite, type BoardColumnInput, type BoardColumnPatch, type BoardCopyCounts, BoardError, type BoardErrorCode, type BoardErrorResponse, type BoardLinkedPullRequest, type BoardOps, type BoardPullRequestStanding, type BoardRunProjection, type BoardRunProjectionScope, type BoardRunView, type BoardSlice, type BoardSprint, type BoardStore, type BoardTransactionMode, type BoardWorkspaceIdentity, type BoardWriteScope, type BulkUpdateCardsInput, type BulkUpdateCardsResult, CAPABILITIES_MANIFEST_VERSION, type CloseSprintResult, type CreateCardInput, type CreateCommentOnceInput, type CreateMilestoneInput, type CreateRelationInput, DEFAULT_BOARD_FILE_PATH, DEFAULT_STATUSES, ENTRY_RULES, ENTRY_RULE_DESCRIPTIONS, type EntryRule, type EntryRuleFacts, type ExternalSessionRef, type FinishRunInput, type Issue, type IssueActivityAction, type IssueActivityCommentView, type IssueActivityField, type IssueActivityFieldChangeView, type IssueActivityItemView, type IssueActivityLookup, type IssueActivityResolver, type IssueActivityValueToken, type IssueActivityValueView, type IssueActorKind, type IssueActorReference, type IssueComment, type IssueCommentAuthorView, type IssueCommentStore, type IssueContextRefStore, type IssueFieldChange, type IssueFieldChangeStore, type IssueMilestone, type IssueMilestoneStore, type IssueMutationActor, type IssuePullRequest, type IssuePullRequestStore, type IssueRelation, type IssueRelationCounterpart, type IssueRelationStore, type IssueRelationView, type IssueRowStore, type IssueRun, type IssueRunStore, type IssueStatus, type IssueStatusStore, type IssueView, KANBO_TOOL_CLI_EQUIVALENTS, KANBO_TOOL_NAMES, type KanbanMeta, type KanbanMetaStore, type KanboBinding, type KanboCapabilities, type KanboCapabilitiesPackage, type KanboCapabilitiesRoles, type KanboCapabilityCommand, type KanboCapabilityCommandArgument, type KanboCapabilityCommandOption, type KanboCapabilityEntryRule, type KanboCapabilityStorage, type KanboCapabilityTool, type KanboToolCliEquivalent, type KanboToolName, type MigrateCardsInput, type MigrateCardsResult, type PullRequestFactKeys, type StartRunInput, TRACKED_FIELDS, UNMET_ENTRY_RULE_REASONS, type UnmetEntryRule, type UpdateCardInput, type UpdateMilestoneInput, activityKindOrder, activityText, activityToken, buildCapabilitiesManifest, cardDisplayTitle, commentAuthorReference, createBoardOps, currentUnixSeconds, deleteBoardSlice, diffFieldChanges, emptyCopyCounts, evaluateEntryRules, formatActivityIssueReference, formatExternalSessionRef, formatIssueId, formatPlainActivityValue, ignoreBoardFile, isEmptyActivityValue, isOutsideWriter, maskDatabaseUrl, maskDatabaseUrls, nextIssueIdentity, nextIssueNumber, nextIssueOrder, normalizeCommentAuthorKind, normalizeStatusName, parseActivityStringArray, parseExternalSessionRef, pullRequestFactKeys, readBinding, readBoardSlice, readChangeSeq, readChecklist, readEntryRules, readIssuePrefix, readProjectBinding, readSystemCommentKind, renderCapabilitiesMarkdown, runBoardWrite, serializeEntryRules, toIssueView, writeBinding, writeBoardSlice };
1607
+ export { type AddCommentInput, type AttachRunExecutionInput, type BoardActiveRun, type BoardActor, type BoardApproval, type BoardCardWrite, type BoardColumnInput, type BoardColumnPatch, type BoardCopyCounts, type BoardErrorCode, type BoardErrorResponse, type BoardLinkedPullRequest, type BoardOps, type BoardPullRequestStanding, type BoardRunProjection, type BoardRunProjectionScope, type BoardRunView, type BoardSlice, type BoardSprint, type BoardStore, type BoardTransactionMode, type BoardWorkspaceIdentity, type BoardWriteScope, type BulkUpdateCardsInput, type BulkUpdateCardsResult, type CloseSprintResult, type CreateCardInput, type CreateCommentOnceInput, type CreateMilestoneInput, type CreateRelationInput, ENTRY_RULES, ENTRY_RULE_DESCRIPTIONS, type EntryRule, type EntryRuleFacts, type ExternalSessionRef, type FinishRunInput, type Issue, type IssueActivityAction, type IssueActivityCommentView, type IssueActivityField, type IssueActivityFieldChangeView, type IssueActivityItemView, type IssueActivityLookup, type IssueActivityResolver, type IssueActivityValueToken, type IssueActivityValueView, type IssueActorKind, type IssueActorReference, type IssueComment, type IssueCommentAuthorView, type IssueCommentStore, type IssueContextRefStore, type IssueFieldChange, type IssueFieldChangeStore, type IssueMilestone, type IssueMilestoneStore, type IssueMutationActor, type IssuePullRequest, type IssuePullRequestStore, type IssueRelation, type IssueRelationCounterpart, type IssueRelationStore, type IssueRelationView, type IssueRowStore, type IssueRun, type IssueRunStore, type IssueStatus, type IssueStatusStore, type IssueView, KANBO_TOOL_CLI_EQUIVALENTS, KANBO_TOOL_NAMES, type KanbanMeta, type KanbanMetaStore, type KanboBinding, type KanboCapabilities, type KanboCapabilitiesPackage, type KanboCapabilitiesRoles, type KanboCapabilityCommand, type KanboCapabilityCommandArgument, type KanboCapabilityCommandOption, type KanboCapabilityEntryRule, type KanboCapabilityStorage, type KanboCapabilityTool, type KanboToolCliEquivalent, type KanboToolName, type MigrateCardsInput, type MigrateCardsResult, type PullRequestFactKeys, type StartRunInput, UNMET_ENTRY_RULE_REASONS, type UnmetEntryRule, type UpdateCardInput, type UpdateMilestoneInput, evaluateEntryRules, readChecklist, readEntryRules, serializeEntryRules };
1608
1608
  //# sourceMappingURL=index.d.cts.map