@adoptai/genui-components 0.1.57 → 0.1.59

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 (56) hide show
  1. package/dist/composites/document-field-extraction/FieldAuditLog.d.ts +27 -0
  2. package/dist/composites/document-field-extraction/FieldAuditLog.d.ts.map +1 -0
  3. package/dist/composites/document-field-extraction/FieldDetail.d.ts +22 -0
  4. package/dist/composites/document-field-extraction/FieldDetail.d.ts.map +1 -0
  5. package/dist/composites/document-field-extraction/FieldDetails.d.ts +18 -0
  6. package/dist/composites/document-field-extraction/FieldDetails.d.ts.map +1 -0
  7. package/dist/composites/document-field-extraction/bboxTransform.d.ts +25 -0
  8. package/dist/composites/document-field-extraction/bboxTransform.d.ts.map +1 -0
  9. package/dist/composites/document-field-extraction/fieldLabels.d.ts +2 -0
  10. package/dist/composites/document-field-extraction/fieldLabels.d.ts.map +1 -0
  11. package/dist/composites/document-field-extraction/resolver.cjs +1920 -0
  12. package/dist/composites/document-field-extraction/resolver.cjs.map +1 -0
  13. package/dist/composites/document-field-extraction/resolver.d.ts +16 -0
  14. package/dist/composites/document-field-extraction/resolver.d.ts.map +1 -0
  15. package/dist/composites/document-field-extraction/resolver.js +1913 -0
  16. package/dist/composites/document-field-extraction/resolver.js.map +1 -0
  17. package/dist/composites/tabby-auth/resolver.cjs +597 -0
  18. package/dist/composites/tabby-auth/resolver.cjs.map +1 -0
  19. package/dist/composites/tabby-auth/resolver.d.ts +3 -0
  20. package/dist/composites/tabby-auth/resolver.d.ts.map +1 -0
  21. package/dist/composites/tabby-auth/resolver.js +595 -0
  22. package/dist/composites/tabby-auth/resolver.js.map +1 -0
  23. package/dist/composites/workflow-stepper/resolver.cjs +86 -18
  24. package/dist/composites/workflow-stepper/resolver.cjs.map +1 -1
  25. package/dist/composites/workflow-stepper/resolver.d.ts.map +1 -1
  26. package/dist/composites/workflow-stepper/resolver.js +86 -18
  27. package/dist/composites/workflow-stepper/resolver.js.map +1 -1
  28. package/dist/index.cjs +2661 -345
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.ts +5 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +2456 -144
  33. package/dist/index.js.map +1 -1
  34. package/dist/renderer.cjs +2482 -281
  35. package/dist/renderer.cjs.map +1 -1
  36. package/dist/renderer.js +2339 -138
  37. package/dist/renderer.js.map +1 -1
  38. package/dist/resolver.cjs +2481 -280
  39. package/dist/resolver.cjs.map +1 -1
  40. package/dist/resolver.d.ts.map +1 -1
  41. package/dist/resolver.js +2339 -138
  42. package/dist/resolver.js.map +1 -1
  43. package/dist/schemas/document-field-extraction.d.ts +258 -0
  44. package/dist/schemas/document-field-extraction.d.ts.map +1 -0
  45. package/dist/schemas/index.cjs +262 -3
  46. package/dist/schemas/index.cjs.map +1 -1
  47. package/dist/schemas/index.d.ts +376 -0
  48. package/dist/schemas/index.d.ts.map +1 -1
  49. package/dist/schemas/index.js +262 -3
  50. package/dist/schemas/index.js.map +1 -1
  51. package/dist/schemas/tabby-auth.d.ts +58 -0
  52. package/dist/schemas/tabby-auth.d.ts.map +1 -0
  53. package/dist/schemas/workflow-stepper.d.ts +60 -0
  54. package/dist/schemas/workflow-stepper.d.ts.map +1 -1
  55. package/dist/tool-definitions.json +326 -3
  56. package/package.json +1 -1
@@ -0,0 +1,258 @@
1
+ import { z } from "zod";
2
+ export declare const documentFieldExtractionSchema: z.ZodObject<{
3
+ type: z.ZodLiteral<"document-field-extraction">;
4
+ doc_type: z.ZodOptional<z.ZodString>;
5
+ file_name: z.ZodOptional<z.ZodString>;
6
+ payload_ref: z.ZodOptional<z.ZodString>;
7
+ store_id: z.ZodOptional<z.ZodString>;
8
+ doc_id: z.ZodOptional<z.ZodString>;
9
+ pages: z.ZodOptional<z.ZodArray<z.ZodObject<{
10
+ page: z.ZodNumber;
11
+ imageUrl: z.ZodOptional<z.ZodString>;
12
+ width_pt: z.ZodNumber;
13
+ height_pt: z.ZodNumber;
14
+ }, z.core.$strip>>>;
15
+ fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
16
+ field_key: z.ZodString;
17
+ label: z.ZodString;
18
+ value: z.ZodString;
19
+ page: z.ZodNumber;
20
+ bbox: z.ZodOptional<z.ZodNullable<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
21
+ confidence: z.ZodOptional<z.ZodNumber>;
22
+ confidence_tier: z.ZodOptional<z.ZodEnum<{
23
+ red: "red";
24
+ green: "green";
25
+ amber: "amber";
26
+ }>>;
27
+ badge: z.ZodOptional<z.ZodEnum<{
28
+ SC: "SC";
29
+ CN: "CN";
30
+ AB: "AB";
31
+ SW: "SW";
32
+ }>>;
33
+ state: z.ZodOptional<z.ZodEnum<{
34
+ ok: "ok";
35
+ corrected: "corrected";
36
+ missing: "missing";
37
+ warn: "warn";
38
+ }>>;
39
+ entity_type: z.ZodOptional<z.ZodString>;
40
+ is_primary: z.ZodOptional<z.ZodBoolean>;
41
+ previous_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
42
+ corrected_by: z.ZodOptional<z.ZodNullable<z.ZodString>>;
43
+ }, z.core.$strip>>>;
44
+ page_count: z.ZodOptional<z.ZodNumber>;
45
+ pages_processed: z.ZodOptional<z.ZodNumber>;
46
+ summary: z.ZodOptional<z.ZodNullable<z.ZodObject<{
47
+ display_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
48
+ short_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
49
+ organization: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
+ domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
+ domain_group: z.ZodOptional<z.ZodNullable<z.ZodString>>;
52
+ tax_year: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
53
+ crumbs: z.ZodOptional<z.ZodArray<z.ZodString>>;
54
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
55
+ stats: z.ZodOptional<z.ZodArray<z.ZodObject<{
56
+ field_key: z.ZodString;
57
+ label: z.ZodString;
58
+ value: z.ZodString;
59
+ caption: z.ZodOptional<z.ZodNullable<z.ZodString>>;
60
+ }, z.core.$strip>>>;
61
+ facts: z.ZodOptional<z.ZodArray<z.ZodObject<{
62
+ field_key: z.ZodString;
63
+ label: z.ZodString;
64
+ value: z.ZodString;
65
+ badge: z.ZodOptional<z.ZodNullable<z.ZodString>>;
66
+ }, z.core.$strip>>>;
67
+ }, z.core.$strip>>>;
68
+ }, z.core.$strip>;
69
+ export declare const documentFieldExtractionTool: {
70
+ name: string;
71
+ description: string;
72
+ input_schema: {
73
+ type: "object";
74
+ properties: {
75
+ type: {
76
+ type: string;
77
+ enum: string[];
78
+ };
79
+ doc_type: {
80
+ type: string;
81
+ };
82
+ file_name: {
83
+ type: string;
84
+ description: string;
85
+ };
86
+ payload_ref: {
87
+ type: string;
88
+ description: string;
89
+ };
90
+ store_id: {
91
+ type: string;
92
+ description: string;
93
+ };
94
+ doc_id: {
95
+ type: string;
96
+ description: string;
97
+ };
98
+ pages: {
99
+ type: string;
100
+ items: {
101
+ type: string;
102
+ properties: {
103
+ page: {
104
+ type: string;
105
+ description: string;
106
+ };
107
+ imageUrl: {
108
+ type: string;
109
+ };
110
+ width_pt: {
111
+ type: string;
112
+ };
113
+ height_pt: {
114
+ type: string;
115
+ };
116
+ };
117
+ required: string[];
118
+ };
119
+ };
120
+ fields: {
121
+ type: string;
122
+ items: {
123
+ type: string;
124
+ properties: {
125
+ field_key: {
126
+ type: string;
127
+ };
128
+ label: {
129
+ type: string;
130
+ };
131
+ value: {
132
+ type: string;
133
+ };
134
+ page: {
135
+ type: string;
136
+ description: string;
137
+ };
138
+ bbox: {
139
+ type: string;
140
+ items: {
141
+ type: string;
142
+ };
143
+ description: string;
144
+ };
145
+ confidence: {
146
+ type: string;
147
+ };
148
+ confidence_tier: {
149
+ type: string;
150
+ enum: string[];
151
+ };
152
+ badge: {
153
+ type: string;
154
+ enum: string[];
155
+ };
156
+ state: {
157
+ type: string;
158
+ enum: string[];
159
+ };
160
+ entity_type: {
161
+ type: string;
162
+ };
163
+ is_primary: {
164
+ type: string;
165
+ };
166
+ };
167
+ required: string[];
168
+ };
169
+ };
170
+ page_count: {
171
+ type: string;
172
+ };
173
+ pages_processed: {
174
+ type: string;
175
+ };
176
+ summary: {
177
+ type: string;
178
+ description: string;
179
+ properties: {
180
+ display_name: {
181
+ type: string;
182
+ };
183
+ short_name: {
184
+ type: string;
185
+ };
186
+ organization: {
187
+ type: string;
188
+ };
189
+ domain: {
190
+ type: string;
191
+ };
192
+ domain_group: {
193
+ type: string;
194
+ };
195
+ tax_year: {
196
+ type: string;
197
+ };
198
+ crumbs: {
199
+ type: string;
200
+ items: {
201
+ type: string;
202
+ };
203
+ };
204
+ tags: {
205
+ type: string;
206
+ items: {
207
+ type: string;
208
+ };
209
+ };
210
+ stats: {
211
+ type: string;
212
+ items: {
213
+ type: string;
214
+ properties: {
215
+ field_key: {
216
+ type: string;
217
+ };
218
+ label: {
219
+ type: string;
220
+ };
221
+ value: {
222
+ type: string;
223
+ };
224
+ caption: {
225
+ type: string;
226
+ };
227
+ };
228
+ required: string[];
229
+ };
230
+ };
231
+ facts: {
232
+ type: string;
233
+ items: {
234
+ type: string;
235
+ properties: {
236
+ field_key: {
237
+ type: string;
238
+ };
239
+ label: {
240
+ type: string;
241
+ };
242
+ value: {
243
+ type: string;
244
+ };
245
+ badge: {
246
+ type: string;
247
+ };
248
+ };
249
+ required: string[];
250
+ };
251
+ };
252
+ };
253
+ };
254
+ };
255
+ required: string[];
256
+ };
257
+ };
258
+ //# sourceMappingURL=document-field-extraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-field-extraction.d.ts","sourceRoot":"","sources":["../../src/schemas/document-field-extraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgExB,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBxC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6GvC,CAAC"}
@@ -3395,7 +3395,32 @@ var workflowStepperSchema = zod.z.object({
3395
3395
  n: zod.z.number().int().positive().optional(),
3396
3396
  title: zod.z.string(),
3397
3397
  sub: zod.z.string().optional(),
3398
- status: zod.z.enum(["done", "active", "review", "pending", "blocked", "failed"]),
3398
+ status: zod.z.enum([
3399
+ "done",
3400
+ "active",
3401
+ "running",
3402
+ "review",
3403
+ "pending",
3404
+ "blocked",
3405
+ "failed"
3406
+ ]),
3407
+ // Optional quality-gate verdict for a step run by an executor (e.g. a
3408
+ // pipeline). Surfaces a subtle trust badge; flags hint at issues a human
3409
+ // should review (the full list lives in the escalation dock).
3410
+ eval: zod.z.object({
3411
+ score: zod.z.number().min(0).max(1).nullable().optional(),
3412
+ verdict: zod.z.enum(["good", "bad"]).optional(),
3413
+ reasoning: zod.z.string().optional(),
3414
+ judge_ok: zod.z.boolean().optional(),
3415
+ data_quality_flags: zod.z.array(
3416
+ zod.z.object({
3417
+ field: zod.z.string().optional(),
3418
+ issue: zod.z.string().optional(),
3419
+ severity: zod.z.enum(["low", "medium", "high"]).optional(),
3420
+ details: zod.z.string().optional()
3421
+ })
3422
+ ).optional()
3423
+ }).optional(),
3399
3424
  assignees: zod.z.array(
3400
3425
  zod.z.object({
3401
3426
  name: zod.z.string(),
@@ -3431,7 +3456,32 @@ var workflowStepperTool = {
3431
3456
  n: { type: "number", description: "Step number; defaults to index + 1" },
3432
3457
  title: { type: "string" },
3433
3458
  sub: { type: "string", description: "Short status caption, e.g. '7 accounts \xB7 2 exceptions'" },
3434
- status: { type: "string", enum: ["done", "active", "review", "pending", "blocked", "failed"] },
3459
+ status: {
3460
+ type: "string",
3461
+ enum: ["done", "active", "running", "review", "pending", "blocked", "failed"]
3462
+ },
3463
+ eval: {
3464
+ type: "object",
3465
+ description: "Optional quality-gate verdict for an executor-run step.",
3466
+ properties: {
3467
+ score: { type: "number" },
3468
+ verdict: { type: "string", enum: ["good", "bad"] },
3469
+ reasoning: { type: "string" },
3470
+ judge_ok: { type: "boolean" },
3471
+ data_quality_flags: {
3472
+ type: "array",
3473
+ items: {
3474
+ type: "object",
3475
+ properties: {
3476
+ field: { type: "string" },
3477
+ issue: { type: "string" },
3478
+ severity: { type: "string", enum: ["low", "medium", "high"] },
3479
+ details: { type: "string" }
3480
+ }
3481
+ }
3482
+ }
3483
+ }
3484
+ },
3435
3485
  assignees: {
3436
3486
  type: "array",
3437
3487
  maxItems: 6,
@@ -3455,6 +3505,183 @@ var workflowStepperTool = {
3455
3505
  required: ["type", "title", "steps"]
3456
3506
  }
3457
3507
  };
3508
+ var bbox = zod.z.tuple([zod.z.number(), zod.z.number(), zod.z.number(), zod.z.number()]);
3509
+ var fieldSchema = zod.z.object({
3510
+ field_key: zod.z.string(),
3511
+ label: zod.z.string(),
3512
+ value: zod.z.string(),
3513
+ page: zod.z.number(),
3514
+ // 0-indexed, matches PageDimension.page
3515
+ bbox: bbox.nullable().optional(),
3516
+ confidence: zod.z.number().optional(),
3517
+ confidence_tier: zod.z.enum(["green", "amber", "red"]).optional(),
3518
+ badge: zod.z.enum(["SC", "CN", "AB", "SW"]).optional(),
3519
+ state: zod.z.enum(["ok", "corrected", "missing", "warn"]).optional(),
3520
+ entity_type: zod.z.string().optional(),
3521
+ is_primary: zod.z.boolean().optional(),
3522
+ // Set after a human correction (extractor output, or an optimistic in-card
3523
+ // edit) so the editable field card can show old → new and who changed it.
3524
+ previous_value: zod.z.string().nullable().optional(),
3525
+ corrected_by: zod.z.string().nullable().optional()
3526
+ });
3527
+ var pageSchema = zod.z.object({
3528
+ page: zod.z.number(),
3529
+ // 0-indexed
3530
+ imageUrl: zod.z.string().optional(),
3531
+ // host-resolved from the durable image_ref
3532
+ width_pt: zod.z.number(),
3533
+ height_pt: zod.z.number()
3534
+ });
3535
+ var summaryStatSchema = zod.z.object({
3536
+ field_key: zod.z.string(),
3537
+ label: zod.z.string(),
3538
+ value: zod.z.string(),
3539
+ caption: zod.z.string().nullable().optional()
3540
+ });
3541
+ var summaryFactSchema = zod.z.object({
3542
+ field_key: zod.z.string(),
3543
+ label: zod.z.string(),
3544
+ value: zod.z.string(),
3545
+ badge: zod.z.string().nullable().optional()
3546
+ });
3547
+ var summarySchema = zod.z.object({
3548
+ display_name: zod.z.string().nullable().optional(),
3549
+ short_name: zod.z.string().nullable().optional(),
3550
+ organization: zod.z.string().nullable().optional(),
3551
+ domain: zod.z.string().nullable().optional(),
3552
+ domain_group: zod.z.string().nullable().optional(),
3553
+ tax_year: zod.z.union([zod.z.string(), zod.z.number()]).nullable().optional(),
3554
+ crumbs: zod.z.array(zod.z.string()).optional(),
3555
+ tags: zod.z.array(zod.z.string()).optional(),
3556
+ stats: zod.z.array(summaryStatSchema).optional(),
3557
+ facts: zod.z.array(summaryFactSchema).optional()
3558
+ });
3559
+ var documentFieldExtractionSchema = zod.z.object({
3560
+ type: zod.z.literal("document-field-extraction"),
3561
+ doc_type: zod.z.string().optional(),
3562
+ // Original uploaded filename (e.g. "2024_gl.pdf"); preferred over doc_type for
3563
+ // the card title since doc_type is often the "generic_fallback" schema name.
3564
+ file_name: zod.z.string().optional(),
3565
+ // Server-side token; resolved by the host into pages/fields before render.
3566
+ payload_ref: zod.z.string().optional(),
3567
+ // Present for persisted workstream docs; absent for pre-existing cards.
3568
+ store_id: zod.z.string().optional(),
3569
+ doc_id: zod.z.string().optional(),
3570
+ pages: zod.z.array(pageSchema).max(100).optional(),
3571
+ fields: zod.z.array(fieldSchema).max(1e3).optional(),
3572
+ // Page-count metadata for the Details tab ("N of M pages extracted").
3573
+ page_count: zod.z.number().optional(),
3574
+ pages_processed: zod.z.number().optional(),
3575
+ // Deterministic document summary for the Details tab.
3576
+ summary: summarySchema.nullable().optional()
3577
+ });
3578
+ var documentFieldExtractionTool = {
3579
+ name: "render_document_field_extraction",
3580
+ description: "Render extracted document fields as an interactive overlay on the page image(s) \u2014 colored bounding boxes per field plus a synced field-card list. Use after the extract_document tool returns; pass the returned payload_ref (the host expands it). For invoices, statements, tax forms, receipts, KYC/loan docs, POs where the user wants to SEE where each value sits on the page.",
3581
+ input_schema: {
3582
+ type: "object",
3583
+ properties: {
3584
+ type: { type: "string", enum: ["document-field-extraction"] },
3585
+ doc_type: { type: "string" },
3586
+ file_name: {
3587
+ type: "string",
3588
+ description: "Original uploaded filename; shown as the card title."
3589
+ },
3590
+ payload_ref: {
3591
+ type: "string",
3592
+ description: "Durable store key returned by extract_document; the GenUI host expands it into pages/fields at render time. Pass this verbatim \u2014 do NOT hand-build pages/fields."
3593
+ },
3594
+ store_id: {
3595
+ type: "string",
3596
+ description: "Docstore store id; present for persisted workstream docs. The host uses this to open the editable viewer."
3597
+ },
3598
+ doc_id: {
3599
+ type: "string",
3600
+ description: "Docstore document id; present for persisted workstream docs. Required for the editable viewer."
3601
+ },
3602
+ pages: {
3603
+ type: "array",
3604
+ items: {
3605
+ type: "object",
3606
+ properties: {
3607
+ page: { type: "number", description: "0-indexed page number" },
3608
+ imageUrl: { type: "string" },
3609
+ width_pt: { type: "number" },
3610
+ height_pt: { type: "number" }
3611
+ },
3612
+ required: ["page", "width_pt", "height_pt"]
3613
+ }
3614
+ },
3615
+ fields: {
3616
+ type: "array",
3617
+ items: {
3618
+ type: "object",
3619
+ properties: {
3620
+ field_key: { type: "string" },
3621
+ label: { type: "string" },
3622
+ value: { type: "string" },
3623
+ page: { type: "number", description: "0-indexed page number" },
3624
+ bbox: {
3625
+ type: "array",
3626
+ items: { type: "number" },
3627
+ description: "[x0,y0,x1,y1] PDF points, origin bottom-left; null if unlocated"
3628
+ },
3629
+ confidence: { type: "number" },
3630
+ confidence_tier: { type: "string", enum: ["green", "amber", "red"] },
3631
+ badge: { type: "string", enum: ["SC", "CN", "AB", "SW"] },
3632
+ state: { type: "string", enum: ["ok", "corrected", "missing", "warn"] },
3633
+ entity_type: { type: "string" },
3634
+ is_primary: { type: "boolean" }
3635
+ },
3636
+ required: ["field_key", "label", "value", "page"]
3637
+ }
3638
+ },
3639
+ page_count: { type: "number" },
3640
+ pages_processed: { type: "number" },
3641
+ summary: {
3642
+ type: "object",
3643
+ description: "Deterministic document summary for the Details tab (display_name, organization, domain, stats, facts, tags). Produced by the extractor \u2014 pass through verbatim.",
3644
+ properties: {
3645
+ display_name: { type: "string" },
3646
+ short_name: { type: "string" },
3647
+ organization: { type: "string" },
3648
+ domain: { type: "string" },
3649
+ domain_group: { type: "string" },
3650
+ tax_year: { type: "string" },
3651
+ crumbs: { type: "array", items: { type: "string" } },
3652
+ tags: { type: "array", items: { type: "string" } },
3653
+ stats: {
3654
+ type: "array",
3655
+ items: {
3656
+ type: "object",
3657
+ properties: {
3658
+ field_key: { type: "string" },
3659
+ label: { type: "string" },
3660
+ value: { type: "string" },
3661
+ caption: { type: "string" }
3662
+ },
3663
+ required: ["field_key", "label", "value"]
3664
+ }
3665
+ },
3666
+ facts: {
3667
+ type: "array",
3668
+ items: {
3669
+ type: "object",
3670
+ properties: {
3671
+ field_key: { type: "string" },
3672
+ label: { type: "string" },
3673
+ value: { type: "string" },
3674
+ badge: { type: "string" }
3675
+ },
3676
+ required: ["field_key", "label", "value"]
3677
+ }
3678
+ }
3679
+ }
3680
+ }
3681
+ },
3682
+ required: ["type"]
3683
+ }
3684
+ };
3458
3685
  var decisionCardSchema = zod.z.object({
3459
3686
  type: zod.z.literal("decision-card"),
3460
3687
  id: zod.z.string().optional(),
@@ -3558,6 +3785,36 @@ var decisionCardTool = {
3558
3785
  required: ["type", "title", "question", "options"]
3559
3786
  }
3560
3787
  };
3788
+ var tabbyAuthSchema = zod.z.object({
3789
+ type: zod.z.literal("tabby-auth"),
3790
+ app: zod.z.string(),
3791
+ url: zod.z.string(),
3792
+ workspace: zod.z.string().optional(),
3793
+ state: zod.z.enum(["pending", "connected"]).optional(),
3794
+ ctaLabel: zod.z.string().optional(),
3795
+ steps: zod.z.array(zod.z.string()).optional(),
3796
+ description: zod.z.string().optional(),
3797
+ iconUrl: zod.z.string().optional()
3798
+ });
3799
+ var tabbyAuthTool = {
3800
+ name: "render_tabby_auth",
3801
+ description: "Render a dedicated, trustworthy sign-in card when a harness skill needs the member to authenticate with a third-party app (e.g. Sage Intacct, Airbnb, an ERP) before a `call_web_api` request can proceed. Use this for the `login_required` path instead of a raw markdown link or a connect-integration card. `app` is the human display name (drives the title context, subtitle, and CTA). `url` is the login/short-link the prominent CTA opens in a new tab. `workspace` adds a subtitle suffix ('{app} \xB7 {workspace} workspace'). `state='pending'` (default) is the first-time connect; `state='connected'` is the verify/re-auth case (session already live) with a green badge and an Open deep-link. `steps` overrides the default numbered instructions; `description` is a one-line intro. The card title ('Authentication required') and the 'Credentials not stored by Adopt' trust footer are hardcoded brand constants \u2014 never supplied here.",
3802
+ input_schema: {
3803
+ type: "object",
3804
+ properties: {
3805
+ type: { type: "string", enum: ["tabby-auth"] },
3806
+ app: { type: "string" },
3807
+ url: { type: "string" },
3808
+ workspace: { type: "string" },
3809
+ state: { type: "string", enum: ["pending", "connected"] },
3810
+ ctaLabel: { type: "string" },
3811
+ steps: { type: "array", items: { type: "string" } },
3812
+ description: { type: "string" },
3813
+ iconUrl: { type: "string" }
3814
+ },
3815
+ required: ["type", "app", "url"]
3816
+ }
3817
+ };
3561
3818
 
3562
3819
  // src/schemas/buildRenderUITool.ts
3563
3820
  function buildRenderUITool(selectedSchemas) {
@@ -3677,7 +3934,9 @@ var schemaRegistry = {
3677
3934
  "integrations-list": { schema: integrationsListSchema, tool: integrationsListTool },
3678
3935
  "pipeline-preview": { schema: pipelinePreviewSchema, tool: pipelinePreviewTool },
3679
3936
  "workflow-stepper": { schema: workflowStepperSchema, tool: workflowStepperTool },
3680
- "decision-card": { schema: decisionCardSchema, tool: decisionCardTool }
3937
+ "document-field-extraction": { schema: documentFieldExtractionSchema, tool: documentFieldExtractionTool },
3938
+ "decision-card": { schema: decisionCardSchema, tool: decisionCardTool },
3939
+ "tabby-auth": { schema: tabbyAuthSchema, tool: tabbyAuthTool }
3681
3940
  };
3682
3941
 
3683
3942
  exports.buildRenderUITool = buildRenderUITool;