@50arms/plugin-sdk 0.2.53 → 0.2.55

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;
@@ -807,24 +632,6 @@ declare module "@danxbot/card-kit@1" {
807
632
  detail: string;
808
633
  }
809
634
 
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
- };
827
-
828
635
  type PickerRouting = "gate" | "queued" | "not_queued" | "skip" | "terminal_or_container";
829
636
  interface DispatchableExplainView {
830
637
  id: CardRef;
@@ -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,16 @@ declare module "@danxbot/card-kit@1" {
973
778
  author: string;
974
779
  by: AuthorV2;
975
780
  timestamp: string;
976
- text: string;
781
+ messages: Array<string>;
782
+ reduced?: undefined | true;
783
+ reduced_text?: undefined | null | string;
784
+ reply_to_removed?: undefined | true;
977
785
  updated_at: string;
978
786
  origin: "" | "trello" | "slack" | "asana" | "danxbot";
979
787
  via_key?: undefined | null | ViaKey;
980
788
  metadata?: unknown;
981
789
  answers_decision_id?: undefined | null | number;
790
+ sign_off?: undefined | null | CommentSignOffViewV2;
982
791
  tags: Array<{ kind: "problem"; ref: number; } | { kind: "design"; ref: number; } | { kind: "decision"; ref: number; }>;
983
792
  resource_tags: Array<CommentResourceTag>;
984
793
  reply_to_comment_id: null | number;
@@ -998,7 +807,6 @@ declare module "@danxbot/card-kit@1" {
998
807
  thumbnail_error: null | string;
999
808
  created_at: string;
1000
809
  }>);
1001
- triage?: undefined | TriageViewV2;
1002
810
  title: string;
1003
811
  description?: undefined | string;
1004
812
  status: "Cancelled" | "Review" | "ToDo" | "In Progress" | "Backlog" | "Done";
@@ -1056,6 +864,7 @@ declare module "@danxbot/card-kit@1" {
1056
864
  open_action_count?: undefined | number;
1057
865
  open_problem_count?: undefined | number;
1058
866
  ac?: undefined | Array<AcItemViewV2>;
867
+ triage?: undefined | TriageViewV2;
1059
868
  triage_enabled?: undefined | false | true;
1060
869
  dispatch?: undefined | null | { started_at: string | null; };
1061
870
  dispatch_kind?: undefined | null | "work" | "triage" | "recovery" | "flesh-out" | "chat" | "main-sync-repair" | "worktree-maintenance" | "manual" | "landing" | `gate-${string}`;
@@ -1119,9 +928,9 @@ declare module "@danxbot/card-kit@1" {
1119
928
  metadata: unknown;
1120
929
  }>);
1121
930
  decision_records?: undefined | (Array<{
1122
- action: "created" | "changed" | "deleted" | "restored";
1123
931
  title: string;
1124
932
  kind: "design" | "business_rule" | "architecture" | "other";
933
+ action: "created" | "changed" | "deleted" | "restored";
1125
934
  made_by: "agent" | "human";
1126
935
  approved: boolean;
1127
936
  impact: number;
@@ -1132,8 +941,8 @@ declare module "@danxbot/card-kit@1" {
1132
941
  deleted_at: null | string;
1133
942
  author: string;
1134
943
  by: AuthorV2;
1135
- text: string;
1136
944
  via_key: null | ViaKey;
945
+ text: string;
1137
946
  ref: string;
1138
947
  ref_num: number;
1139
948
  current_version: number;
@@ -1147,9 +956,9 @@ declare module "@danxbot/card-kit@1" {
1147
956
  comment_count: number;
1148
957
  unread_comment_count: number;
1149
958
  versions?: undefined | (Array<{
1150
- action: "created" | "changed" | "deleted" | "restored";
1151
959
  title: string;
1152
960
  kind: "design" | "business_rule" | "architecture" | "other";
961
+ action: "created" | "changed" | "deleted" | "restored";
1153
962
  made_by: "agent" | "human";
1154
963
  impact: number;
1155
964
  confidence: number;
@@ -1157,8 +966,8 @@ declare module "@danxbot/card-kit@1" {
1157
966
  created_at: string;
1158
967
  author: string;
1159
968
  by: AuthorV2;
1160
- text: string;
1161
969
  via_key: null | ViaKey;
970
+ text: string;
1162
971
  ref: string;
1163
972
  approval: DecisionApprovalState;
1164
973
  made_by_user_id: null | number;
@@ -1169,8 +978,8 @@ declare module "@danxbot/card-kit@1" {
1169
978
  version_no: number;
1170
979
  }>);
1171
980
  approvals?: undefined | (Array<{
1172
- action: "approve" | "unapprove";
1173
981
  at: string;
982
+ action: "approve" | "unapprove";
1174
983
  id: number;
1175
984
  ref: string;
1176
985
  version_no: number;
@@ -1179,9 +988,9 @@ declare module "@danxbot/card-kit@1" {
1179
988
  }>);
1180
989
  }>);
1181
990
  decision_record_versions?: undefined | (Array<{
1182
- action: "created" | "changed" | "deleted" | "restored";
1183
991
  title: string;
1184
992
  kind: "design" | "business_rule" | "architecture" | "other";
993
+ action: "created" | "changed" | "deleted" | "restored";
1185
994
  made_by: "agent" | "human";
1186
995
  impact: number;
1187
996
  confidence: number;
@@ -1189,8 +998,8 @@ declare module "@danxbot/card-kit@1" {
1189
998
  created_at: string;
1190
999
  author: string;
1191
1000
  by: AuthorV2;
1192
- text: string;
1193
1001
  via_key: null | ViaKey;
1002
+ text: string;
1194
1003
  ref: string;
1195
1004
  approval: DecisionApprovalState;
1196
1005
  made_by_user_id: null | number;
@@ -1201,8 +1010,8 @@ declare module "@danxbot/card-kit@1" {
1201
1010
  version_no: number;
1202
1011
  }>);
1203
1012
  decision_record_approvals?: undefined | (Array<{
1204
- action: "approve" | "unapprove";
1205
1013
  at: string;
1014
+ action: "approve" | "unapprove";
1206
1015
  id: number;
1207
1016
  ref: string;
1208
1017
  version_no: number;
@@ -1225,7 +1034,7 @@ declare module "@danxbot/card-kit@1" {
1225
1034
  created_by: string;
1226
1035
  created_at: string;
1227
1036
  archived_at: null | string;
1228
- review_state: "rejected" | "approved" | "awaiting_review" | "changes_requested";
1037
+ review_state: "approved" | "awaiting_review" | "changes_requested" | "rejected";
1229
1038
  revision_count: number;
1230
1039
  latest_revision_no: number;
1231
1040
  chosen_options: null | OptionSelection;
@@ -1252,8 +1061,9 @@ declare module "@danxbot/card-kit@1" {
1252
1061
  decisions?: undefined | (Array<{
1253
1062
  decision_id: number;
1254
1063
  revision_no: number;
1255
- outcome: "rejected" | "approved" | "changes_requested";
1064
+ outcome: "approved" | "changes_requested" | "rejected";
1256
1065
  note: null | string;
1066
+ comment_id: number;
1257
1067
  decided_by: string;
1258
1068
  decided_by_ref: ActorRef;
1259
1069
  created_at: string;
@@ -1281,12 +1091,12 @@ declare module "@danxbot/card-kit@1" {
1281
1091
  }>;
1282
1092
  children_detail?: undefined | (Array<{
1283
1093
  status: "Cancelled" | "Review" | "ToDo" | "In Progress" | "Backlog" | "Done";
1284
- type: undefined | string;
1285
- priority: undefined | number;
1094
+ type: string;
1095
+ priority: number;
1286
1096
  name: string;
1287
1097
  id: string;
1288
1098
  blocked: boolean;
1289
- summary: undefined | null | string;
1099
+ summary: null | string;
1290
1100
  open_problem_count: number;
1291
1101
  waiting_on: boolean;
1292
1102
  waiting_on_by_card: boolean;
@@ -1386,7 +1196,7 @@ declare module "@danxbot/card-kit@1" {
1386
1196
  id: number;
1387
1197
  solution_id: null | number;
1388
1198
  solution_title: null | string;
1389
- outcome: "answered" | "rejected";
1199
+ outcome: "rejected" | "answered";
1390
1200
  freeform: null | string;
1391
1201
  note: null | string;
1392
1202
  decided_by: string;
@@ -1413,9 +1223,9 @@ declare module "@danxbot/card-kit@1" {
1413
1223
  answered_version_no: null | number;
1414
1224
  choices: Array<{ solution_id: number; kind: DecisionReviewChoiceKind; version_no: number; title: string; }>;
1415
1225
  versions?: undefined | (Array<{
1416
- action: "created" | "changed" | "deleted" | "restored";
1417
1226
  title: string;
1418
1227
  kind: "design" | "business_rule" | "architecture" | "other";
1228
+ action: "created" | "changed" | "deleted" | "restored";
1419
1229
  made_by: "agent" | "human";
1420
1230
  impact: number;
1421
1231
  confidence: number;
@@ -1423,8 +1233,8 @@ declare module "@danxbot/card-kit@1" {
1423
1233
  created_at: string;
1424
1234
  author: string;
1425
1235
  by: AuthorV2;
1426
- text: string;
1427
1236
  via_key: null | ViaKey;
1237
+ text: string;
1428
1238
  ref: string;
1429
1239
  approval: DecisionApprovalState;
1430
1240
  made_by_user_id: null | number;
@@ -1465,7 +1275,7 @@ declare module "@danxbot/card-kit@1" {
1465
1275
  created_by: string;
1466
1276
  created_at: string;
1467
1277
  archived_at: null | string;
1468
- review_state: "rejected" | "approved" | "awaiting_review" | "changes_requested";
1278
+ review_state: "approved" | "awaiting_review" | "changes_requested" | "rejected";
1469
1279
  revision_count: number;
1470
1280
  latest_revision_no: number;
1471
1281
  chosen_options: null | OptionSelection;
@@ -1492,8 +1302,9 @@ declare module "@danxbot/card-kit@1" {
1492
1302
  decisions?: undefined | (Array<{
1493
1303
  decision_id: number;
1494
1304
  revision_no: number;
1495
- outcome: "rejected" | "approved" | "changes_requested";
1305
+ outcome: "approved" | "changes_requested" | "rejected";
1496
1306
  note: null | string;
1307
+ comment_id: number;
1497
1308
  decided_by: string;
1498
1309
  decided_by_ref: ActorRef;
1499
1310
  created_at: string;
@@ -1534,19 +1345,229 @@ declare module "@danxbot/card-kit@1" {
1534
1345
  url: string;
1535
1346
  }
1536
1347
 
1537
- interface CodeGateStatus {
1538
- gate: string;
1539
- status: QualityGateStatus;
1348
+ type IssueStatus = "Review" | "ToDo" | "In Progress" | "Backlog" | "Done" | "Cancelled";
1349
+ type EffortLevelName = "min" | "very_low" | "low" | "medium" | "high" | "very_high" | "max";
1350
+ type IssueProblemType = "design" | "question" | "action" | "decision_review";
1351
+ type DecisionOutcome = "rejected" | "answered";
1352
+ type IssueDependencyKind = "depends_on" | "conflict_on";
1353
+ type IssueDispatchKind = "work" | "triage" | "recovery" | "flesh-out" | "chat" | "main-sync-repair" | "worktree-maintenance" | "manual" | "landing" | `gate-${string}`;
1354
+ type IssueAssignmentMode = "automated" | "manual";
1355
+ type StartCommitError = "no_repo" | "not_github_repo" | "no_token" | "github_refused" | "github_unreachable" | "unreadable_tip" | "unexpected";
1356
+ interface IssueV2 {
1357
+ id: CardId;
1358
+ ref: CardRef;
1359
+ rev: number;
1360
+ board_id: BoardId;
1361
+ schema_version: number;
1362
+ type: CardTypeKey;
1363
+ title: string;
1364
+ description: string;
1365
+ summary: string | null;
1366
+ pull_request_url: string | null;
1367
+ risk_score: RiskScore | null;
1368
+ risk_reason: string | null;
1369
+ risk_raise_reason: string | null;
1370
+ start_commit_sha: string | null;
1371
+ start_commit_at: string | null;
1372
+ start_commit_error: StartCommitError | null;
1373
+ start_commit_error_detail: string | null;
1374
+ parent_id: CardId | null;
1375
+ parent_ref: CardRef | null;
1376
+ effort_level: EffortLevelName;
1377
+ downward_rung: EffortLevelName | null;
1378
+ source_type: string;
1379
+ list_id: string | null;
1380
+ assigned_agent: string | null;
1381
+ priority: number;
1382
+ created_at: string;
1383
+ updated_at: string;
1384
+ deleted_at: string | null;
1385
+ ready_at: string | null;
1386
+ started_at: string | null;
1387
+ completed_at: string | null;
1388
+ cancelled_at: string | null;
1389
+ archived_at: string | null;
1390
+ wake_at: string | null;
1391
+ wake_action: "ready" | "review" | null;
1392
+ dispatch_id: string | null;
1393
+ dispatch_started_at: string | null;
1394
+ dispatch_kind: IssueDispatchKind | null;
1395
+ assignment_mode: IssueAssignmentMode;
1396
+ card_branch: string | null;
1397
+ last_commit_sha: string | null;
1398
+ card_branch_retired_at: string | null;
1399
+ card_branch_retired_reason: string | null;
1400
+ card_branch_retired_by: string | null;
1401
+ chat_session_uuid: string | null;
1402
+ slack_session_uuid: string | null;
1403
+ blocked_at: string | null;
1404
+ blocked_reason: string | null;
1405
+ blocked_by: string | null;
1406
+ blocked_via_key_id: number | null;
1407
+ blocked_via_key_name: string | null;
1408
+ blocked_team_agent_id: number | null;
1409
+ open_problem_count: number;
1410
+ triage_ice_total: number | null;
1411
+ triage_ice_i: number | null;
1412
+ triage_ice_c: number | null;
1413
+ triage_ice_e: number | null;
1414
+ triage_confidence: number | null;
1415
+ triage_last_status: string;
1416
+ triage_last_explain: string;
1417
+ terminal_derived: boolean;
1418
+ in_progress_derived: boolean;
1419
+ dispatchable_derived: boolean;
1420
+ triage_enabled: boolean;
1421
+ content_hash: string;
1540
1422
  }
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;
1423
+ interface IssueDisplayV2 extends IssueV2 {
1424
+ status_derived: IssueStatus;
1425
+ }
1426
+ interface CommentResourceTag {
1427
+ tag: string;
1428
+ resource_type: ResourceType | null;
1429
+ resource_id: string | null;
1430
+ }
1431
+ interface AuthorV2 {
1432
+ name: string;
1433
+ kind: "agent" | "person";
1434
+ avatar_url: string | null;
1435
+ reason: StatusReason | null;
1436
+ team_agent_id: number | null;
1437
+ }
1438
+ interface CommentSignOffV2 {
1439
+ kind: "design";
1440
+ action: DesignDecisionOutcome;
1441
+ }
1442
+ interface SignOffPicksV2 {
1443
+ groups: DesignOptionGroup[];
1444
+ selection: OptionSelection;
1445
+ }
1446
+ interface CommentSignOffViewV2 extends CommentSignOffV2 {
1447
+ picks: SignOffPicksV2 | null;
1448
+ }
1449
+ type CommentReplyStateName = "sent" | "seen" | "responded";
1450
+ type CommentRecipientV2 = {
1451
+ kind: "agent";
1452
+ by: AuthorV2;
1453
+ reachability: CommentReachabilityV2;
1454
+ } | {
1455
+ kind: "none";
1456
+ waiting_on: {
1457
+ kind: "plan";
1458
+ id: PlanRefNum;
1459
+ ref: string;
1460
+ name: string;
1461
+ } | {
1462
+ kind: "card";
1463
+ id: string;
1464
+ };
1465
+ };
1466
+ type CommentReachabilityV2 = {
1467
+ state: "listening";
1468
+ } | {
1469
+ state: "busy";
1470
+ } | {
1471
+ state: "compacting";
1472
+ since: string;
1473
+ } | {
1474
+ state: "listener_down";
1475
+ } | {
1476
+ state: "paused_by_agent";
1477
+ reason: string;
1478
+ } | {
1479
+ state: "usage_limit";
1480
+ limit: PacingLimit;
1481
+ until: string;
1482
+ };
1483
+ type ReplyRecipientV2 = {
1484
+ kind: "agent";
1485
+ by: AuthorV2;
1486
+ } | Extract<CommentRecipientV2, {
1487
+ kind: "none";
1488
+ }>;
1489
+ interface CommentReplyStateV2 {
1490
+ state: CommentReplyStateName;
1491
+ recipient: ReplyRecipientV2;
1492
+ reply_comment_id: number | null;
1493
+ }
1494
+ type ChecklistItemStatus = "incomplete" | "failing" | "passing" | "cancelled" | "deferred";
1495
+ interface ChecklistV2 {
1496
+ id: number;
1497
+ issue_id: CardId;
1498
+ ordinal: number;
1499
+ name: string;
1500
+ created_at: string;
1501
+ updated_at: string;
1502
+ deleted_at: string | null;
1503
+ }
1504
+ interface ChecklistItemV2 {
1505
+ id: number;
1506
+ checklist_id: number;
1507
+ ordinal: number;
1508
+ label: string;
1509
+ detail: string;
1510
+ status: ChecklistItemStatus;
1511
+ created_at: string;
1512
+ updated_at: string;
1513
+ deleted_at: string | null;
1514
+ }
1515
+ interface ChecklistWithItemsV2 extends ChecklistV2 {
1516
+ items: ChecklistItemV2[];
1517
+ }
1518
+ type ThumbnailStatus = "ready" | "not_image" | "failed" | "pending";
1519
+ interface IssueAttachmentV2 {
1520
+ id: number;
1521
+ issue_id: CardId;
1522
+ source_type: string;
1523
+ external_id: string;
1524
+ url: string;
1525
+ filename: string;
1526
+ mime: string;
1527
+ is_primary: boolean;
1528
+ thumbnail_status: ThumbnailStatus;
1529
+ thumbnail_url: string | null;
1530
+ thumbnail_error: string | null;
1531
+ created_at: string;
1532
+ updated_at: string;
1533
+ deleted_at: string | null;
1534
+ }
1535
+ type QualityGateStatus = "pending" | "pass" | "fail" | "skipped";
1536
+ type GateRoundReviewerKind = "session" | "dispatch" | "person";
1537
+ type GateRoundVerdict = "pass" | "fail" | "retry" | "skipped";
1538
+ interface GateRoundV2 {
1539
+ id: number;
1540
+ number: number;
1541
+ reviewed_ref: string | null;
1542
+ reviewer_kind: GateRoundReviewerKind;
1543
+ reviewer_name: string;
1544
+ by: AuthorV2;
1545
+ via_key: {
1546
+ id: number;
1547
+ name: string;
1548
+ } | null;
1549
+ reviewer_dispatch_id: string | null;
1550
+ review_grade: EffortLevelName | null;
1551
+ model: string | null;
1552
+ effort: string | null;
1553
+ verdict: GateRoundVerdict;
1554
+ summary: string;
1555
+ recorded_at: string;
1556
+ }
1557
+ interface ProvenanceRecordV2 {
1558
+ id: number;
1559
+ quote: string | null;
1560
+ reasoning: string | null;
1561
+ source: ProvenanceSourceV2 | null;
1562
+ recorded_by: AuthorV2;
1563
+ recorded_at: string;
1564
+ }
1565
+ interface ProvenanceSourceV2 {
1566
+ kind: ProvenanceSourceKind;
1567
+ ref: string;
1568
+ card_id: CardRef | null;
1569
+ author: AuthorV2 | null;
1570
+ at: string | null;
1550
1571
  }
1551
1572
 
1552
1573
  function useIssueDetail(id: string): LiveQueryResult<IssueViewV2>;
@@ -1609,7 +1630,7 @@ declare module "@danxbot/card-kit@1" {
1609
1630
 
1610
1631
  interface LaneMoveRequest {
1611
1632
  issueId: string;
1612
- lane: IssueStatus$1;
1633
+ lane: IssueStatus;
1613
1634
  placement: PriorityPlacement | null;
1614
1635
  }
1615
1636
  type BoardMoveResult = {
@@ -1644,16 +1665,16 @@ declare module "@danxbot/card-kit@1" {
1644
1665
  function createCard(input: NewCardInput): Promise<string>;
1645
1666
  type HideableLane = "Cancelled" | "Backlog";
1646
1667
  interface LaneVisibility {
1647
- isShown: (lane: IssueStatus$1) => boolean;
1668
+ isShown: (lane: IssueStatus) => boolean;
1648
1669
  setShown: (lane: HideableLane, shown: boolean) => void;
1649
1670
  }
1650
1671
 
1651
1672
  type LaneSortField = "title" | "id" | "priority" | "updated_at" | "created_at";
1652
1673
  type LaneSort = SortValue<LaneSortField>;
1653
- type LaneSorts = Readonly<Record<IssueStatus$1, LaneSort>>;
1674
+ type LaneSorts = Readonly<Record<IssueStatus, LaneSort>>;
1654
1675
  interface LaneSortState {
1655
1676
  readonly sorts: LaneSorts;
1656
- readonly setSort: (lane: IssueStatus$1, sort: LaneSort) => void;
1677
+ readonly setSort: (lane: IssueStatus, sort: LaneSort) => void;
1657
1678
  }
1658
1679
 
1659
1680
  type BoardScope = {
@@ -1665,8 +1686,8 @@ declare module "@danxbot/card-kit@1" {
1665
1686
  readonly planId: number;
1666
1687
  readonly boards: readonly BoardRefNum[];
1667
1688
  };
1668
- type BoardLaneWindows = Readonly<Record<IssueStatus$1, PagedWindow<IssueViewV2>>>;
1669
- type LaneLeafTotals = Readonly<Record<IssueStatus$1, number | null>>;
1689
+ type BoardLaneWindows = Readonly<Record<IssueStatus, PagedWindow<IssueViewV2>>>;
1690
+ type LaneLeafTotals = Readonly<Record<IssueStatus, number | null>>;
1670
1691
  interface BoardLaneState {
1671
1692
  readonly scope: BoardScope;
1672
1693
  readonly windows: BoardLaneWindows;
@@ -1848,7 +1869,7 @@ declare module "@danxbot/card-kit@1" {
1848
1869
 
1849
1870
  interface CardFaceAc {
1850
1871
  total: number;
1851
- byStatus: Record<ChecklistItemStatus, number>;
1872
+ byStatus: Record<ChecklistItemStatus$1, number>;
1852
1873
  items?: NonNullable<IssueViewV2["ac_items"]>;
1853
1874
  }
1854
1875
  interface CardFaceModel {
@@ -1856,7 +1877,7 @@ declare module "@danxbot/card-kit@1" {
1856
1877
  title: string;
1857
1878
  type: CardTypeKey;
1858
1879
  priority: number;
1859
- statusName: IssueStatus$1;
1880
+ statusName: IssueStatus;
1860
1881
  status: CardStatusPresentation;
1861
1882
  list: CardFaceList | null;
1862
1883
  to: string;
@@ -1906,8 +1927,6 @@ declare module "@danxbot/card-kit@1" {
1906
1927
  };
1907
1928
 
1908
1929
  type CardFaceStatusMark = {
1909
- kind: "labelled";
1910
- } | {
1911
1930
  kind: "lane";
1912
1931
  laneListId: string | null;
1913
1932
  };
@@ -1918,7 +1937,7 @@ declare module "@danxbot/card-kit@1" {
1918
1937
  describedBy: string;
1919
1938
  }) => ReactNode;
1920
1939
  trailing?: ReactNode;
1921
- statusMark: CardFaceStatusMark;
1940
+ statusMark?: CardFaceStatusMark;
1922
1941
  cover?: ReactNode;
1923
1942
  inParentBox?: boolean;
1924
1943
  }
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.55",
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",