@50arms/plugin-sdk 0.2.53 → 0.2.54

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.
@@ -68,228 +68,14 @@ declare module "@danxbot/card-kit@1" {
68
68
  id: string;
69
69
  }
70
70
  type RiskScore = "R0" | "R1" | "R2" | "R3" | "R4";
71
-
72
- type IssueStatus$1 = "Review" | "ToDo" | "In Progress" | "Backlog" | "Done" | "Cancelled";
73
- type EffortLevelName = "min" | "very_low" | "low" | "medium" | "high" | "very_high" | "max";
74
- type IssueProblemType = "design" | "question" | "action" | "decision_review";
75
- type DecisionOutcome = "answered" | "rejected";
76
- type IssueDependencyKind = "depends_on" | "conflict_on";
77
- type IssueDispatchKind = "work" | "triage" | "recovery" | "flesh-out" | "chat" | "main-sync-repair" | "worktree-maintenance" | "manual" | "landing" | `gate-${string}`;
78
- type IssueAssignmentMode = "automated" | "manual";
79
- type StartCommitError = "no_repo" | "not_github_repo" | "no_token" | "github_refused" | "github_unreachable" | "unreadable_tip" | "unexpected";
80
- interface IssueV2 {
81
- id: CardId;
82
- ref: CardRef;
83
- rev: number;
84
- board_id: BoardId;
85
- schema_version: number;
86
- type: CardTypeKey;
87
- title: string;
88
- description: string;
89
- summary: string | null;
90
- pull_request_url: string | null;
91
- risk_score: RiskScore | null;
92
- risk_reason: string | null;
93
- risk_raise_reason: string | null;
94
- start_commit_sha: string | null;
95
- start_commit_at: string | null;
96
- start_commit_error: StartCommitError | null;
97
- start_commit_error_detail: string | null;
98
- parent_id: CardId | null;
99
- parent_ref: CardRef | null;
100
- effort_level: EffortLevelName;
101
- downward_rung: EffortLevelName | null;
102
- source_type: string;
103
- list_id: string | null;
104
- assigned_agent: string | null;
105
- priority: number;
106
- created_at: string;
107
- updated_at: string;
108
- deleted_at: string | null;
109
- ready_at: string | null;
110
- started_at: string | null;
111
- completed_at: string | null;
112
- cancelled_at: string | null;
113
- archived_at: string | null;
114
- wake_at: string | null;
115
- wake_action: "ready" | "review" | null;
116
- dispatch_id: string | null;
117
- dispatch_started_at: string | null;
118
- dispatch_kind: IssueDispatchKind | null;
119
- assignment_mode: IssueAssignmentMode;
120
- card_branch: string | null;
121
- last_commit_sha: string | null;
122
- card_branch_retired_at: string | null;
123
- card_branch_retired_reason: string | null;
124
- card_branch_retired_by: string | null;
125
- chat_session_uuid: string | null;
126
- slack_session_uuid: string | null;
127
- blocked_at: string | null;
128
- blocked_reason: string | null;
129
- blocked_by: string | null;
130
- blocked_via_key_id: number | null;
131
- blocked_via_key_name: string | null;
132
- blocked_team_agent_id: number | null;
133
- open_problem_count: number;
134
- triage_ice_total: number | null;
135
- triage_ice_i: number | null;
136
- triage_ice_c: number | null;
137
- triage_ice_e: number | null;
138
- triage_confidence: number | null;
139
- triage_last_status: string;
140
- triage_last_explain: string;
141
- terminal_derived: boolean;
142
- in_progress_derived: boolean;
143
- dispatchable_derived: boolean;
144
- triage_enabled: boolean;
145
- content_hash: string;
146
- }
147
- interface IssueDisplayV2 extends IssueV2 {
148
- status_derived: IssueStatus$1;
149
- }
150
- interface CommentResourceTag {
151
- tag: string;
152
- resource_type: ResourceType | null;
153
- resource_id: string | null;
154
- }
155
- interface AuthorV2 {
156
- name: string;
157
- kind: "agent" | "person";
158
- avatar_url: string | null;
159
- reason: StatusReason | null;
160
- team_agent_id: number | null;
161
- }
162
- type CommentReplyStateName = "sent" | "seen" | "responded";
163
- type CommentRecipientV2 = {
164
- kind: "agent";
165
- by: AuthorV2;
166
- reachability: CommentReachabilityV2;
167
- } | {
168
- kind: "none";
169
- waiting_on: {
170
- kind: "plan";
171
- id: PlanRefNum;
172
- ref: string;
173
- name: string;
174
- } | {
175
- kind: "card";
176
- id: string;
177
- };
178
- };
179
- type CommentReachabilityV2 = {
180
- state: "listening";
181
- } | {
182
- state: "busy";
183
- } | {
184
- state: "compacting";
185
- since: string;
186
- } | {
187
- state: "listener_down";
188
- } | {
189
- state: "paused_by_agent";
190
- reason: string;
191
- } | {
192
- state: "usage_limit";
193
- limit: PacingLimit;
194
- until: string;
195
- };
196
- type ReplyRecipientV2 = {
197
- kind: "agent";
198
- by: AuthorV2;
199
- } | Extract<CommentRecipientV2, {
200
- kind: "none";
201
- }>;
202
- interface CommentReplyStateV2 {
203
- state: CommentReplyStateName;
204
- recipient: ReplyRecipientV2;
205
- reply_comment_id: number | null;
206
- }
207
- type ChecklistItemStatus$1 = "incomplete" | "failing" | "passing" | "cancelled" | "deferred";
208
- interface ChecklistV2 {
209
- id: number;
210
- issue_id: CardId;
211
- ordinal: number;
212
- name: string;
213
- created_at: string;
214
- updated_at: string;
215
- deleted_at: string | null;
216
- }
217
- interface ChecklistItemV2 {
218
- id: number;
219
- checklist_id: number;
220
- ordinal: number;
221
- label: string;
222
- detail: string;
223
- status: ChecklistItemStatus$1;
224
- created_at: string;
225
- updated_at: string;
226
- deleted_at: string | null;
227
- }
228
- interface ChecklistWithItemsV2 extends ChecklistV2 {
229
- items: ChecklistItemV2[];
230
- }
231
- type ThumbnailStatus = "ready" | "not_image" | "failed" | "pending";
232
- interface IssueAttachmentV2 {
233
- id: number;
234
- issue_id: CardId;
235
- source_type: string;
236
- external_id: string;
237
- url: string;
238
- filename: string;
239
- mime: string;
240
- is_primary: boolean;
241
- thumbnail_status: ThumbnailStatus;
242
- thumbnail_url: string | null;
243
- thumbnail_error: string | null;
244
- created_at: string;
245
- updated_at: string;
246
- deleted_at: string | null;
247
- }
248
- type QualityGateStatus = "pending" | "pass" | "fail" | "skipped";
249
- type GateRoundReviewerKind = "session" | "dispatch" | "person";
250
- type GateRoundVerdict = "pass" | "fail" | "retry" | "skipped";
251
- interface GateRoundV2 {
252
- id: number;
253
- number: number;
254
- reviewed_ref: string | null;
255
- reviewer_kind: GateRoundReviewerKind;
256
- reviewer_name: string;
257
- by: AuthorV2;
258
- via_key: {
259
- id: number;
260
- name: string;
261
- } | null;
262
- reviewer_dispatch_id: string | null;
263
- review_grade: EffortLevelName | null;
264
- model: string | null;
265
- effort: string | null;
266
- verdict: GateRoundVerdict;
267
- summary: string;
268
- recorded_at: string;
269
- }
270
- interface ProvenanceRecordV2 {
271
- id: number;
272
- quote: string | null;
273
- reasoning: string | null;
274
- source: ProvenanceSourceV2 | null;
275
- recorded_by: AuthorV2;
276
- recorded_at: string;
277
- }
278
- interface ProvenanceSourceV2 {
279
- kind: ProvenanceSourceKind;
280
- ref: string;
281
- card_id: CardRef | null;
282
- author: AuthorV2 | null;
283
- at: string | null;
284
- }
285
-
286
- type QualityGatePhase = "plan" | "code";
287
- type ControlValue = boolean | string;
288
71
  type WorkMarkResourceType = "plan" | "problem" | "issue" | "plan_record" | "plan_section" | "design" | "decision";
289
72
  interface WorkMarkResource extends ResourceRef {
290
73
  type: WorkMarkResourceType;
291
74
  }
292
75
 
76
+ type QualityGatePhase = "plan" | "code";
77
+ type ControlValue = boolean | string;
78
+
293
79
  type ControlSource = "card" | "plan" | "board" | "team" | "system";
294
80
  interface ControlFallback {
295
81
  readonly value: ControlValue;
@@ -383,15 +169,21 @@ declare module "@danxbot/card-kit@1" {
383
169
 
384
170
  interface V2CopyComment {
385
171
  author: string;
386
- text: string;
172
+ messages: string[];
173
+ reduced_text: string | null;
387
174
  metadata: unknown | null;
388
175
  answers_decision: V2CopyDecisionRef | null;
389
176
  tags: V2CopyCommentTag[];
177
+ sign_off: V2CopySignOff | null;
390
178
  team_agent: string | null;
391
179
  author_email: string | null;
392
180
  created_at: string;
393
181
  updated_at: string;
394
182
  }
183
+ interface V2CopySignOff {
184
+ kind: "design";
185
+ action: DesignDecisionOutcome;
186
+ }
395
187
  interface V2CopyDecisionRef {
396
188
  problem: number;
397
189
  decision: number;
@@ -446,7 +238,7 @@ declare module "@danxbot/card-kit@1" {
446
238
  interface V2CopyDesignDecision {
447
239
  revision_no: number;
448
240
  outcome: DesignDecisionOutcome;
449
- note: string | null;
241
+ comment: number;
450
242
  decided_by: string;
451
243
  created_at: string;
452
244
  retracted_at: string | null;
@@ -514,7 +306,7 @@ declare module "@danxbot/card-kit@1" {
514
306
  interface V2CopyChecklistItem {
515
307
  label: string;
516
308
  detail: string;
517
- status: ChecklistItemStatus$1;
309
+ status: ChecklistItemStatus;
518
310
  }
519
311
  interface V2CopyDependency {
520
312
  kind: IssueDependencyKind;
@@ -753,6 +545,29 @@ declare module "@danxbot/card-kit@1" {
753
545
  content: string;
754
546
  }
755
547
 
548
+ type PreGateHold = {
549
+ kind: "awaiting_person";
550
+ } | {
551
+ kind: "repo_designs_setting_up";
552
+ plan: {
553
+ id: number;
554
+ name: string;
555
+ };
556
+ } | {
557
+ kind: "repo_designs_off";
558
+ } | {
559
+ kind: "board_needs_repo";
560
+ } | {
561
+ kind: "decided_by_person";
562
+ gate: string;
563
+ decided_by: string;
564
+ };
565
+
566
+ interface CodeGateStatus {
567
+ gate: string;
568
+ status: QualityGateStatus;
569
+ }
570
+
756
571
  interface CommentTagOption extends CommentResourceTag {
757
572
  name: string | null;
758
573
  card_id: CardRef | null;
@@ -775,6 +590,16 @@ declare module "@danxbot/card-kit@1" {
775
590
  }[];
776
591
  }
777
592
 
593
+ type ConnectionState = "connecting" | "connected" | "disconnected";
594
+ interface LiveQueryResult<T> {
595
+ data: T | null;
596
+ loading: boolean;
597
+ refreshing?: boolean;
598
+ error: Error | null;
599
+ connection: ConnectionState;
600
+ refetch: () => void;
601
+ }
602
+
778
603
  interface ReadinessBlocker {
779
604
  worker_id: string;
780
605
  incomplete_count: number;
@@ -799,31 +624,13 @@ declare module "@danxbot/card-kit@1" {
799
624
  reason: "profile_role_missing";
800
625
  };
801
626
 
802
- interface DispatchKeyBlocker {
803
- worker_id: string;
804
- owner_user_id: number;
805
- owner_username: string;
806
- reason: DispatchKeyRefusal["reason"];
807
- detail: string;
808
- }
809
-
810
- type PreGateHold = {
811
- kind: "awaiting_person";
812
- } | {
813
- kind: "repo_designs_setting_up";
814
- plan: {
815
- id: number;
816
- name: string;
817
- };
818
- } | {
819
- kind: "repo_designs_off";
820
- } | {
821
- kind: "board_needs_repo";
822
- } | {
823
- kind: "decided_by_person";
824
- gate: string;
825
- decided_by: string;
826
- };
627
+ interface DispatchKeyBlocker {
628
+ worker_id: string;
629
+ owner_user_id: number;
630
+ owner_username: string;
631
+ reason: DispatchKeyRefusal["reason"];
632
+ detail: string;
633
+ }
827
634
 
828
635
  type PickerRouting = "gate" | "queued" | "not_queued" | "skip" | "terminal_or_container";
829
636
  interface DispatchableExplainView {
@@ -848,8 +655,6 @@ declare module "@danxbot/card-kit@1" {
848
655
  readonly model: string;
849
656
  readonly effort: string;
850
657
  }
851
-
852
- type IssueStatus = "Review" | "ToDo" | "In Progress" | "Backlog" | "Done" | "Cancelled";
853
658
  interface InheritedBlockedViewV2 {
854
659
  id: string;
855
660
  reason: string;
@@ -932,19 +737,19 @@ declare module "@danxbot/card-kit@1" {
932
737
  title: string;
933
738
  checked: boolean;
934
739
  }
935
- type ChecklistItemStatus = "incomplete" | "failing" | "passing" | "cancelled" | "deferred";
740
+ type ChecklistItemStatus$1 = "incomplete" | "failing" | "passing" | "cancelled" | "deferred";
936
741
  interface ChecklistItemView {
937
742
  id: number;
938
743
  label: string;
939
744
  detail: string;
940
- status: ChecklistItemStatus;
745
+ status: ChecklistItemStatus$1;
941
746
  }
942
747
  interface ChecklistView {
943
748
  id: number;
944
749
  name: string;
945
750
  items: ChecklistItemView[];
946
751
  }
947
- type DesignDecisionOutcome = "rejected" | "approved" | "changes_requested";
752
+ type DesignDecisionOutcome = "approved" | "changes_requested" | "rejected";
948
753
  interface ChecklistHistoryViewV2 {
949
754
  action: "create" | "rename" | "remove" | "add_item" | "update_item" | "remove_item";
950
755
  checklist: string;
@@ -973,12 +778,17 @@ declare module "@danxbot/card-kit@1" {
973
778
  author: string;
974
779
  by: AuthorV2;
975
780
  timestamp: string;
781
+ messages: Array<string>;
976
782
  text: string;
783
+ reduced?: undefined | true;
784
+ reduced_text?: undefined | null | string;
785
+ reply_to_removed?: undefined | true;
977
786
  updated_at: string;
978
787
  origin: "" | "trello" | "slack" | "asana" | "danxbot";
979
788
  via_key?: undefined | null | ViaKey;
980
789
  metadata?: unknown;
981
790
  answers_decision_id?: undefined | null | number;
791
+ sign_off?: undefined | null | CommentSignOffViewV2;
982
792
  tags: Array<{ kind: "problem"; ref: number; } | { kind: "design"; ref: number; } | { kind: "decision"; ref: number; }>;
983
793
  resource_tags: Array<CommentResourceTag>;
984
794
  reply_to_comment_id: null | number;
@@ -998,7 +808,6 @@ declare module "@danxbot/card-kit@1" {
998
808
  thumbnail_error: null | string;
999
809
  created_at: string;
1000
810
  }>);
1001
- triage?: undefined | TriageViewV2;
1002
811
  title: string;
1003
812
  description?: undefined | string;
1004
813
  status: "Cancelled" | "Review" | "ToDo" | "In Progress" | "Backlog" | "Done";
@@ -1056,6 +865,7 @@ declare module "@danxbot/card-kit@1" {
1056
865
  open_action_count?: undefined | number;
1057
866
  open_problem_count?: undefined | number;
1058
867
  ac?: undefined | Array<AcItemViewV2>;
868
+ triage?: undefined | TriageViewV2;
1059
869
  triage_enabled?: undefined | false | true;
1060
870
  dispatch?: undefined | null | { started_at: string | null; };
1061
871
  dispatch_kind?: undefined | null | "work" | "triage" | "recovery" | "flesh-out" | "chat" | "main-sync-repair" | "worktree-maintenance" | "manual" | "landing" | `gate-${string}`;
@@ -1119,9 +929,9 @@ declare module "@danxbot/card-kit@1" {
1119
929
  metadata: unknown;
1120
930
  }>);
1121
931
  decision_records?: undefined | (Array<{
1122
- action: "created" | "changed" | "deleted" | "restored";
1123
932
  title: string;
1124
933
  kind: "design" | "business_rule" | "architecture" | "other";
934
+ action: "created" | "changed" | "deleted" | "restored";
1125
935
  made_by: "agent" | "human";
1126
936
  approved: boolean;
1127
937
  impact: number;
@@ -1147,9 +957,9 @@ declare module "@danxbot/card-kit@1" {
1147
957
  comment_count: number;
1148
958
  unread_comment_count: number;
1149
959
  versions?: undefined | (Array<{
1150
- action: "created" | "changed" | "deleted" | "restored";
1151
960
  title: string;
1152
961
  kind: "design" | "business_rule" | "architecture" | "other";
962
+ action: "created" | "changed" | "deleted" | "restored";
1153
963
  made_by: "agent" | "human";
1154
964
  impact: number;
1155
965
  confidence: number;
@@ -1169,8 +979,8 @@ declare module "@danxbot/card-kit@1" {
1169
979
  version_no: number;
1170
980
  }>);
1171
981
  approvals?: undefined | (Array<{
1172
- action: "approve" | "unapprove";
1173
982
  at: string;
983
+ action: "approve" | "unapprove";
1174
984
  id: number;
1175
985
  ref: string;
1176
986
  version_no: number;
@@ -1179,9 +989,9 @@ declare module "@danxbot/card-kit@1" {
1179
989
  }>);
1180
990
  }>);
1181
991
  decision_record_versions?: undefined | (Array<{
1182
- action: "created" | "changed" | "deleted" | "restored";
1183
992
  title: string;
1184
993
  kind: "design" | "business_rule" | "architecture" | "other";
994
+ action: "created" | "changed" | "deleted" | "restored";
1185
995
  made_by: "agent" | "human";
1186
996
  impact: number;
1187
997
  confidence: number;
@@ -1201,8 +1011,8 @@ declare module "@danxbot/card-kit@1" {
1201
1011
  version_no: number;
1202
1012
  }>);
1203
1013
  decision_record_approvals?: undefined | (Array<{
1204
- action: "approve" | "unapprove";
1205
1014
  at: string;
1015
+ action: "approve" | "unapprove";
1206
1016
  id: number;
1207
1017
  ref: string;
1208
1018
  version_no: number;
@@ -1225,7 +1035,7 @@ declare module "@danxbot/card-kit@1" {
1225
1035
  created_by: string;
1226
1036
  created_at: string;
1227
1037
  archived_at: null | string;
1228
- review_state: "rejected" | "approved" | "awaiting_review" | "changes_requested";
1038
+ review_state: "approved" | "awaiting_review" | "changes_requested" | "rejected";
1229
1039
  revision_count: number;
1230
1040
  latest_revision_no: number;
1231
1041
  chosen_options: null | OptionSelection;
@@ -1252,8 +1062,9 @@ declare module "@danxbot/card-kit@1" {
1252
1062
  decisions?: undefined | (Array<{
1253
1063
  decision_id: number;
1254
1064
  revision_no: number;
1255
- outcome: "rejected" | "approved" | "changes_requested";
1065
+ outcome: "approved" | "changes_requested" | "rejected";
1256
1066
  note: null | string;
1067
+ comment_id: number;
1257
1068
  decided_by: string;
1258
1069
  decided_by_ref: ActorRef;
1259
1070
  created_at: string;
@@ -1281,12 +1092,12 @@ declare module "@danxbot/card-kit@1" {
1281
1092
  }>;
1282
1093
  children_detail?: undefined | (Array<{
1283
1094
  status: "Cancelled" | "Review" | "ToDo" | "In Progress" | "Backlog" | "Done";
1284
- type: undefined | string;
1285
- priority: undefined | number;
1095
+ type: string;
1096
+ priority: number;
1286
1097
  name: string;
1287
1098
  id: string;
1288
1099
  blocked: boolean;
1289
- summary: undefined | null | string;
1100
+ summary: null | string;
1290
1101
  open_problem_count: number;
1291
1102
  waiting_on: boolean;
1292
1103
  waiting_on_by_card: boolean;
@@ -1386,7 +1197,7 @@ declare module "@danxbot/card-kit@1" {
1386
1197
  id: number;
1387
1198
  solution_id: null | number;
1388
1199
  solution_title: null | string;
1389
- outcome: "answered" | "rejected";
1200
+ outcome: "rejected" | "answered";
1390
1201
  freeform: null | string;
1391
1202
  note: null | string;
1392
1203
  decided_by: string;
@@ -1413,9 +1224,9 @@ declare module "@danxbot/card-kit@1" {
1413
1224
  answered_version_no: null | number;
1414
1225
  choices: Array<{ solution_id: number; kind: DecisionReviewChoiceKind; version_no: number; title: string; }>;
1415
1226
  versions?: undefined | (Array<{
1416
- action: "created" | "changed" | "deleted" | "restored";
1417
1227
  title: string;
1418
1228
  kind: "design" | "business_rule" | "architecture" | "other";
1229
+ action: "created" | "changed" | "deleted" | "restored";
1419
1230
  made_by: "agent" | "human";
1420
1231
  impact: number;
1421
1232
  confidence: number;
@@ -1465,7 +1276,7 @@ declare module "@danxbot/card-kit@1" {
1465
1276
  created_by: string;
1466
1277
  created_at: string;
1467
1278
  archived_at: null | string;
1468
- review_state: "rejected" | "approved" | "awaiting_review" | "changes_requested";
1279
+ review_state: "approved" | "awaiting_review" | "changes_requested" | "rejected";
1469
1280
  revision_count: number;
1470
1281
  latest_revision_no: number;
1471
1282
  chosen_options: null | OptionSelection;
@@ -1492,8 +1303,9 @@ declare module "@danxbot/card-kit@1" {
1492
1303
  decisions?: undefined | (Array<{
1493
1304
  decision_id: number;
1494
1305
  revision_no: number;
1495
- outcome: "rejected" | "approved" | "changes_requested";
1306
+ outcome: "approved" | "changes_requested" | "rejected";
1496
1307
  note: null | string;
1308
+ comment_id: number;
1497
1309
  decided_by: string;
1498
1310
  decided_by_ref: ActorRef;
1499
1311
  created_at: string;
@@ -1534,19 +1346,229 @@ declare module "@danxbot/card-kit@1" {
1534
1346
  url: string;
1535
1347
  }
1536
1348
 
1537
- interface CodeGateStatus {
1538
- gate: string;
1539
- status: QualityGateStatus;
1349
+ type IssueStatus = "Review" | "ToDo" | "In Progress" | "Backlog" | "Done" | "Cancelled";
1350
+ type EffortLevelName = "min" | "very_low" | "low" | "medium" | "high" | "very_high" | "max";
1351
+ type IssueProblemType = "design" | "question" | "action" | "decision_review";
1352
+ type DecisionOutcome = "rejected" | "answered";
1353
+ type IssueDependencyKind = "depends_on" | "conflict_on";
1354
+ type IssueDispatchKind = "work" | "triage" | "recovery" | "flesh-out" | "chat" | "main-sync-repair" | "worktree-maintenance" | "manual" | "landing" | `gate-${string}`;
1355
+ type IssueAssignmentMode = "automated" | "manual";
1356
+ type StartCommitError = "no_repo" | "not_github_repo" | "no_token" | "github_refused" | "github_unreachable" | "unreadable_tip" | "unexpected";
1357
+ interface IssueV2 {
1358
+ id: CardId;
1359
+ ref: CardRef;
1360
+ rev: number;
1361
+ board_id: BoardId;
1362
+ schema_version: number;
1363
+ type: CardTypeKey;
1364
+ title: string;
1365
+ description: string;
1366
+ summary: string | null;
1367
+ pull_request_url: string | null;
1368
+ risk_score: RiskScore | null;
1369
+ risk_reason: string | null;
1370
+ risk_raise_reason: string | null;
1371
+ start_commit_sha: string | null;
1372
+ start_commit_at: string | null;
1373
+ start_commit_error: StartCommitError | null;
1374
+ start_commit_error_detail: string | null;
1375
+ parent_id: CardId | null;
1376
+ parent_ref: CardRef | null;
1377
+ effort_level: EffortLevelName;
1378
+ downward_rung: EffortLevelName | null;
1379
+ source_type: string;
1380
+ list_id: string | null;
1381
+ assigned_agent: string | null;
1382
+ priority: number;
1383
+ created_at: string;
1384
+ updated_at: string;
1385
+ deleted_at: string | null;
1386
+ ready_at: string | null;
1387
+ started_at: string | null;
1388
+ completed_at: string | null;
1389
+ cancelled_at: string | null;
1390
+ archived_at: string | null;
1391
+ wake_at: string | null;
1392
+ wake_action: "ready" | "review" | null;
1393
+ dispatch_id: string | null;
1394
+ dispatch_started_at: string | null;
1395
+ dispatch_kind: IssueDispatchKind | null;
1396
+ assignment_mode: IssueAssignmentMode;
1397
+ card_branch: string | null;
1398
+ last_commit_sha: string | null;
1399
+ card_branch_retired_at: string | null;
1400
+ card_branch_retired_reason: string | null;
1401
+ card_branch_retired_by: string | null;
1402
+ chat_session_uuid: string | null;
1403
+ slack_session_uuid: string | null;
1404
+ blocked_at: string | null;
1405
+ blocked_reason: string | null;
1406
+ blocked_by: string | null;
1407
+ blocked_via_key_id: number | null;
1408
+ blocked_via_key_name: string | null;
1409
+ blocked_team_agent_id: number | null;
1410
+ open_problem_count: number;
1411
+ triage_ice_total: number | null;
1412
+ triage_ice_i: number | null;
1413
+ triage_ice_c: number | null;
1414
+ triage_ice_e: number | null;
1415
+ triage_confidence: number | null;
1416
+ triage_last_status: string;
1417
+ triage_last_explain: string;
1418
+ terminal_derived: boolean;
1419
+ in_progress_derived: boolean;
1420
+ dispatchable_derived: boolean;
1421
+ triage_enabled: boolean;
1422
+ content_hash: string;
1540
1423
  }
1541
-
1542
- type ConnectionState = "connecting" | "connected" | "disconnected";
1543
- interface LiveQueryResult<T> {
1544
- data: T | null;
1545
- loading: boolean;
1546
- refreshing?: boolean;
1547
- error: Error | null;
1548
- connection: ConnectionState;
1549
- refetch: () => void;
1424
+ interface IssueDisplayV2 extends IssueV2 {
1425
+ status_derived: IssueStatus;
1426
+ }
1427
+ interface CommentResourceTag {
1428
+ tag: string;
1429
+ resource_type: ResourceType | null;
1430
+ resource_id: string | null;
1431
+ }
1432
+ interface AuthorV2 {
1433
+ name: string;
1434
+ kind: "agent" | "person";
1435
+ avatar_url: string | null;
1436
+ reason: StatusReason | null;
1437
+ team_agent_id: number | null;
1438
+ }
1439
+ interface CommentSignOffV2 {
1440
+ kind: "design";
1441
+ action: DesignDecisionOutcome;
1442
+ }
1443
+ interface SignOffPicksV2 {
1444
+ groups: DesignOptionGroup[];
1445
+ selection: OptionSelection;
1446
+ }
1447
+ interface CommentSignOffViewV2 extends CommentSignOffV2 {
1448
+ picks: SignOffPicksV2 | null;
1449
+ }
1450
+ type CommentReplyStateName = "sent" | "seen" | "responded";
1451
+ type CommentRecipientV2 = {
1452
+ kind: "agent";
1453
+ by: AuthorV2;
1454
+ reachability: CommentReachabilityV2;
1455
+ } | {
1456
+ kind: "none";
1457
+ waiting_on: {
1458
+ kind: "plan";
1459
+ id: PlanRefNum;
1460
+ ref: string;
1461
+ name: string;
1462
+ } | {
1463
+ kind: "card";
1464
+ id: string;
1465
+ };
1466
+ };
1467
+ type CommentReachabilityV2 = {
1468
+ state: "listening";
1469
+ } | {
1470
+ state: "busy";
1471
+ } | {
1472
+ state: "compacting";
1473
+ since: string;
1474
+ } | {
1475
+ state: "listener_down";
1476
+ } | {
1477
+ state: "paused_by_agent";
1478
+ reason: string;
1479
+ } | {
1480
+ state: "usage_limit";
1481
+ limit: PacingLimit;
1482
+ until: string;
1483
+ };
1484
+ type ReplyRecipientV2 = {
1485
+ kind: "agent";
1486
+ by: AuthorV2;
1487
+ } | Extract<CommentRecipientV2, {
1488
+ kind: "none";
1489
+ }>;
1490
+ interface CommentReplyStateV2 {
1491
+ state: CommentReplyStateName;
1492
+ recipient: ReplyRecipientV2;
1493
+ reply_comment_id: number | null;
1494
+ }
1495
+ type ChecklistItemStatus = "incomplete" | "failing" | "passing" | "cancelled" | "deferred";
1496
+ interface ChecklistV2 {
1497
+ id: number;
1498
+ issue_id: CardId;
1499
+ ordinal: number;
1500
+ name: string;
1501
+ created_at: string;
1502
+ updated_at: string;
1503
+ deleted_at: string | null;
1504
+ }
1505
+ interface ChecklistItemV2 {
1506
+ id: number;
1507
+ checklist_id: number;
1508
+ ordinal: number;
1509
+ label: string;
1510
+ detail: string;
1511
+ status: ChecklistItemStatus;
1512
+ created_at: string;
1513
+ updated_at: string;
1514
+ deleted_at: string | null;
1515
+ }
1516
+ interface ChecklistWithItemsV2 extends ChecklistV2 {
1517
+ items: ChecklistItemV2[];
1518
+ }
1519
+ type ThumbnailStatus = "ready" | "not_image" | "failed" | "pending";
1520
+ interface IssueAttachmentV2 {
1521
+ id: number;
1522
+ issue_id: CardId;
1523
+ source_type: string;
1524
+ external_id: string;
1525
+ url: string;
1526
+ filename: string;
1527
+ mime: string;
1528
+ is_primary: boolean;
1529
+ thumbnail_status: ThumbnailStatus;
1530
+ thumbnail_url: string | null;
1531
+ thumbnail_error: string | null;
1532
+ created_at: string;
1533
+ updated_at: string;
1534
+ deleted_at: string | null;
1535
+ }
1536
+ type QualityGateStatus = "pending" | "pass" | "fail" | "skipped";
1537
+ type GateRoundReviewerKind = "session" | "dispatch" | "person";
1538
+ type GateRoundVerdict = "pass" | "fail" | "retry" | "skipped";
1539
+ interface GateRoundV2 {
1540
+ id: number;
1541
+ number: number;
1542
+ reviewed_ref: string | null;
1543
+ reviewer_kind: GateRoundReviewerKind;
1544
+ reviewer_name: string;
1545
+ by: AuthorV2;
1546
+ via_key: {
1547
+ id: number;
1548
+ name: string;
1549
+ } | null;
1550
+ reviewer_dispatch_id: string | null;
1551
+ review_grade: EffortLevelName | null;
1552
+ model: string | null;
1553
+ effort: string | null;
1554
+ verdict: GateRoundVerdict;
1555
+ summary: string;
1556
+ recorded_at: string;
1557
+ }
1558
+ interface ProvenanceRecordV2 {
1559
+ id: number;
1560
+ quote: string | null;
1561
+ reasoning: string | null;
1562
+ source: ProvenanceSourceV2 | null;
1563
+ recorded_by: AuthorV2;
1564
+ recorded_at: string;
1565
+ }
1566
+ interface ProvenanceSourceV2 {
1567
+ kind: ProvenanceSourceKind;
1568
+ ref: string;
1569
+ card_id: CardRef | null;
1570
+ author: AuthorV2 | null;
1571
+ at: string | null;
1550
1572
  }
1551
1573
 
1552
1574
  function useIssueDetail(id: string): LiveQueryResult<IssueViewV2>;
@@ -1609,7 +1631,7 @@ declare module "@danxbot/card-kit@1" {
1609
1631
 
1610
1632
  interface LaneMoveRequest {
1611
1633
  issueId: string;
1612
- lane: IssueStatus$1;
1634
+ lane: IssueStatus;
1613
1635
  placement: PriorityPlacement | null;
1614
1636
  }
1615
1637
  type BoardMoveResult = {
@@ -1644,16 +1666,16 @@ declare module "@danxbot/card-kit@1" {
1644
1666
  function createCard(input: NewCardInput): Promise<string>;
1645
1667
  type HideableLane = "Cancelled" | "Backlog";
1646
1668
  interface LaneVisibility {
1647
- isShown: (lane: IssueStatus$1) => boolean;
1669
+ isShown: (lane: IssueStatus) => boolean;
1648
1670
  setShown: (lane: HideableLane, shown: boolean) => void;
1649
1671
  }
1650
1672
 
1651
1673
  type LaneSortField = "title" | "id" | "priority" | "updated_at" | "created_at";
1652
1674
  type LaneSort = SortValue<LaneSortField>;
1653
- type LaneSorts = Readonly<Record<IssueStatus$1, LaneSort>>;
1675
+ type LaneSorts = Readonly<Record<IssueStatus, LaneSort>>;
1654
1676
  interface LaneSortState {
1655
1677
  readonly sorts: LaneSorts;
1656
- readonly setSort: (lane: IssueStatus$1, sort: LaneSort) => void;
1678
+ readonly setSort: (lane: IssueStatus, sort: LaneSort) => void;
1657
1679
  }
1658
1680
 
1659
1681
  type BoardScope = {
@@ -1665,8 +1687,8 @@ declare module "@danxbot/card-kit@1" {
1665
1687
  readonly planId: number;
1666
1688
  readonly boards: readonly BoardRefNum[];
1667
1689
  };
1668
- type BoardLaneWindows = Readonly<Record<IssueStatus$1, PagedWindow<IssueViewV2>>>;
1669
- type LaneLeafTotals = Readonly<Record<IssueStatus$1, number | null>>;
1690
+ type BoardLaneWindows = Readonly<Record<IssueStatus, PagedWindow<IssueViewV2>>>;
1691
+ type LaneLeafTotals = Readonly<Record<IssueStatus, number | null>>;
1670
1692
  interface BoardLaneState {
1671
1693
  readonly scope: BoardScope;
1672
1694
  readonly windows: BoardLaneWindows;
@@ -1848,7 +1870,7 @@ declare module "@danxbot/card-kit@1" {
1848
1870
 
1849
1871
  interface CardFaceAc {
1850
1872
  total: number;
1851
- byStatus: Record<ChecklistItemStatus, number>;
1873
+ byStatus: Record<ChecklistItemStatus$1, number>;
1852
1874
  items?: NonNullable<IssueViewV2["ac_items"]>;
1853
1875
  }
1854
1876
  interface CardFaceModel {
@@ -1856,7 +1878,7 @@ declare module "@danxbot/card-kit@1" {
1856
1878
  title: string;
1857
1879
  type: CardTypeKey;
1858
1880
  priority: number;
1859
- statusName: IssueStatus$1;
1881
+ statusName: IssueStatus;
1860
1882
  status: CardStatusPresentation;
1861
1883
  list: CardFaceList | null;
1862
1884
  to: string;
@@ -1906,8 +1928,6 @@ declare module "@danxbot/card-kit@1" {
1906
1928
  };
1907
1929
 
1908
1930
  type CardFaceStatusMark = {
1909
- kind: "labelled";
1910
- } | {
1911
1931
  kind: "lane";
1912
1932
  laneListId: string | null;
1913
1933
  };
@@ -1918,7 +1938,7 @@ declare module "@danxbot/card-kit@1" {
1918
1938
  describedBy: string;
1919
1939
  }) => ReactNode;
1920
1940
  trailing?: ReactNode;
1921
- statusMark: CardFaceStatusMark;
1941
+ statusMark?: CardFaceStatusMark;
1922
1942
  cover?: ReactNode;
1923
1943
  inParentBox?: boolean;
1924
1944
  }
package/dist/cli.js CHANGED
@@ -5891,7 +5891,7 @@ var CARD_KIT_LIBRARY = "@danxbot/card-kit";
5891
5891
  var PLUGIN_RUNTIME_LIBRARIES = [
5892
5892
  { name: "react", major: 19 },
5893
5893
  { name: "react-dom", major: 19 },
5894
- { name: "@50arms/ui", major: 35 },
5894
+ { name: "@50arms/ui", major: 36 },
5895
5895
  { name: CARD_KIT_LIBRARY, major: CARD_KIT_MAJOR }
5896
5896
  ];
5897
5897
  var PLUGIN_RUNTIME_SPECIFIERS = [
package/dist/publish.js CHANGED
@@ -5886,7 +5886,7 @@ var CARD_KIT_LIBRARY = "@danxbot/card-kit";
5886
5886
  var PLUGIN_RUNTIME_LIBRARIES = [
5887
5887
  { name: "react", major: 19 },
5888
5888
  { name: "react-dom", major: 19 },
5889
- { name: "@50arms/ui", major: 35 },
5889
+ { name: "@50arms/ui", major: 36 },
5890
5890
  { name: CARD_KIT_LIBRARY, major: CARD_KIT_MAJOR }
5891
5891
  ];
5892
5892
  var PLUGIN_RUNTIME_SPECIFIERS = [
package/dist/vite.js CHANGED
@@ -4,7 +4,7 @@ var CARD_KIT_LIBRARY = "@danxbot/card-kit";
4
4
  var PLUGIN_RUNTIME_LIBRARIES = [
5
5
  { name: "react", major: 19 },
6
6
  { name: "react-dom", major: 19 },
7
- { name: "@50arms/ui", major: 35 },
7
+ { name: "@50arms/ui", major: 36 },
8
8
  { name: CARD_KIT_LIBRARY, major: CARD_KIT_MAJOR }
9
9
  ];
10
10
  var PLUGIN_RUNTIME_SPECIFIERS = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@50arms/plugin-sdk",
3
- "version": "0.2.53",
3
+ "version": "0.2.54",
4
4
  "description": "SDK for building 50 Arms plugins (DX-5170): the card kit's type declarations, the Widget declaration kit, a Vite preset that builds a plugin against the app's shared runtime and writes its manifest, and the danx-plugin CLI.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -37,7 +37,7 @@
37
37
  "node": ">=20"
38
38
  },
39
39
  "peerDependencies": {
40
- "@50arms/ui": "^35.1.0",
40
+ "@50arms/ui": "^35.1.0 || ^36.0.0",
41
41
  "@types/react": "^19.0.0",
42
42
  "react": "^19.0.0",
43
43
  "react-router": "^7.0.0",
@@ -50,7 +50,7 @@
50
50
  "test": "vitest run"
51
51
  },
52
52
  "devDependencies": {
53
- "@50arms/ui": "35.2.0",
53
+ "@50arms/ui": "36.1.0",
54
54
  "@types/node": "^22.0.0",
55
55
  "@types/react": "^19.2.2",
56
56
  "esbuild": "^0.25.0",