@dench.com/cli 3.8.5-staging.406 → 3.9.0-staging.415

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/app-sdk.d.ts CHANGED
@@ -937,8 +937,11 @@ export interface ApiRequests {
937
937
  "chat.follow": {
938
938
  threadId: string;
939
939
  };
940
- /** List CRM objects. — `dench crm objects list` — GET /api/v1/crm/objects */
941
- "crm.objects.list": Record<string, unknown>;
940
+ /** List CRM objects. — `dench crm objects list [--with-references]` — GET /api/v1/crm/objects */
941
+ "crm.objects.list": {
942
+ /** Include bounded navigation references. Array reads return {data, references, referenceCoverage}; existing result envelopes keep their fields. */
943
+ withReferences?: boolean;
944
+ };
942
945
  /** List names, display labels, visibility and workspace counts without internal state. — `dench crm objects list --compact` — GET /api/v1/crm/catalog/objects */
943
946
  "crm.objects.listCompact": Record<string, unknown>;
944
947
  /** Get a CRM object. — `dench crm objects get` — GET /api/v1/crm/objects/{name} */
@@ -1225,8 +1228,10 @@ export interface ApiRequests {
1225
1228
  /** Hex color, e.g. #22c55e. */
1226
1229
  color: string;
1227
1230
  };
1228
- /** List CRM entries. — `dench crm entries list` — GET /api/v1/crm/objects/{objectName}/entries */
1231
+ /** List CRM entries. — `dench crm entries list [--with-references]` — GET /api/v1/crm/objects/{objectName}/entries */
1229
1232
  "crm.entries.list": {
1233
+ /** Include bounded navigation references. Array reads return {data, references, referenceCoverage}; existing result envelopes keep their fields. */
1234
+ withReferences?: boolean;
1230
1235
  objectName: string;
1231
1236
  limit?: number;
1232
1237
  /** Personal scope: "me" (the signed-in member / the human behind an agent session), "unassigned", or a member userId or email. Adds one has_any / is_empty rule on the object's assignee user field; rows, totalCount, sums and analytics all follow it. Never saved onto the view. */
@@ -1555,8 +1560,10 @@ export interface ApiRequests {
1555
1560
  /** Cell value. Enum=option string, tags=string array, user=one member userId or a userId array, relation=related entry id, boolean=true/false. */
1556
1561
  value: unknown;
1557
1562
  };
1558
- /** Query CRM entries. — `dench crm query` — POST /api/v1/crm/query */
1563
+ /** Query CRM entries. — `dench crm query [--with-references]` — POST /api/v1/crm/query */
1559
1564
  "crm.query": {
1565
+ /** Include bounded navigation references. Array reads return {data, references, referenceCoverage}; existing result envelopes keep their fields. */
1566
+ withReferences?: boolean;
1560
1567
  objectName: string;
1561
1568
  /** Query DSL. Bare equality only; use dslJson for $-operators. */
1562
1569
  dsl?: {
@@ -1574,7 +1581,21 @@ export interface ApiRequests {
1574
1581
  assigneeField?: string;
1575
1582
  };
1576
1583
  /** Scan CRM entries with a resumable cursor. Empty filtered pages can have more results. — `dench crm query --page` — POST /api/v1/crm/query/page */
1577
- "crm.queryPage": Record<string, unknown>;
1584
+ "crm.queryPage": {
1585
+ objectName: string;
1586
+ dsl?: Record<string, unknown>;
1587
+ dslJson?: string;
1588
+ /** Personal scope: "me" (the signed-in member / the human behind an agent session), "unassigned", or a member userId or email. Adds one has_any / is_empty rule on the object's assignee user field; rows, totalCount, sums and analytics all follow it. Never saved onto the view. */
1589
+ assignedTo?: string;
1590
+ /** Which `user` field "assigned" means. Default: the analytics owner role, else the task `Assignee`, else a user field named like owner/assignee, else the first user field. */
1591
+ assigneeField?: string;
1592
+ /** Include bounded navigation references. Array reads return {data, references, referenceCoverage}; existing result envelopes keep their fields. */
1593
+ withReferences?: boolean;
1594
+ paginationOpts: {
1595
+ numItems: number;
1596
+ cursor: string | null;
1597
+ };
1598
+ };
1578
1599
  /** Run CRM SQL-compatible query. — `dench crm sql` — POST /api/v1/crm/sql */
1579
1600
  "crm.sql": {
1580
1601
  objectName: string;
@@ -1589,8 +1610,10 @@ export interface ApiRequests {
1589
1610
  /** Number field to total per bucket (e.g. Amount grouped by Stage). Exact at any table size. */
1590
1611
  sumField?: string;
1591
1612
  };
1592
- /** Search CRM entries. — `dench crm search` — GET /api/v1/crm/search */
1613
+ /** Search CRM entries. — `dench crm search [--with-references]` — GET /api/v1/crm/search */
1593
1614
  "crm.search": {
1615
+ /** Include bounded navigation references. Array reads return {data, references, referenceCoverage}; existing result envelopes keep their fields. */
1616
+ withReferences?: boolean;
1594
1617
  /** Full-text query. */
1595
1618
  text: string;
1596
1619
  /** Omit to search org-wide. */
@@ -1599,6 +1622,8 @@ export interface ApiRequests {
1599
1622
  };
1600
1623
  /** Search bounded pages of readable CRM entries, optionally projecting cells. Always follow continueCursor until isDone. — `dench crm search --page` — GET /api/v1/crm/search/page */
1601
1624
  "crm.search.page": {
1625
+ /** Include bounded navigation references. Array reads return {data, references, referenceCoverage}; existing result envelopes keep their fields. */
1626
+ withReferences?: boolean;
1602
1627
  /** Full-text query over readable entries. */
1603
1628
  text: string;
1604
1629
  objectName?: string;
@@ -1624,6 +1649,8 @@ export interface ApiRequests {
1624
1649
  };
1625
1650
  /** Apply a CRM batch. — `dench crm batch` — POST /api/v1/crm/batch */
1626
1651
  "crm.batch": {
1652
+ /** Include bounded navigation references. Array reads return {data, references, referenceCoverage}; existing result envelopes keep their fields. */
1653
+ withReferences?: boolean;
1627
1654
  ops: Array<{
1628
1655
  type: "entries.create";
1629
1656
  objectName: string;
@@ -2725,8 +2752,10 @@ export interface ApiRequests {
2725
2752
  "campaigns.accounts.linkedin": Record<string, unknown>;
2726
2753
  /** Discover the mailboxes the acting workspace member can send campaign email from: ids for emailMailboxAccountIds, status, warm-up state and when it is done, the daily cold-email cap and what is left today. Never returns provider credentials. — `dench campaign accounts` — GET /api/v1/campaigns/accounts/email */
2727
2754
  "campaigns.accounts.email": Record<string, unknown>;
2728
- /** List outreach campaigns (archived ones on request). — `dench campaign list` — GET /api/v1/campaigns */
2755
+ /** List outreach campaigns (archived ones on request). — `dench campaign list [--with-references]` — GET /api/v1/campaigns */
2729
2756
  "campaigns.list": {
2757
+ /** Include bounded navigation references. Array reads return {data, references, referenceCoverage}; existing result envelopes keep their fields. */
2758
+ withReferences?: boolean;
2730
2759
  /** Include archived campaigns. */
2731
2760
  includeArchived?: boolean;
2732
2761
  };
@@ -3626,6 +3655,37 @@ export interface ApiResponses {
3626
3655
  "secrets.delete": unknown;
3627
3656
  "campaigns.drafts.create": {
3628
3657
  sequenceId: string;
3658
+ references?: Array<{
3659
+ kind: "crm-entry";
3660
+ objectName: string;
3661
+ entryId: string;
3662
+ label: string;
3663
+ href: string;
3664
+ url?: string;
3665
+ imageUrl?: string;
3666
+ objectIcon?: string;
3667
+ } | {
3668
+ kind: "crm-object";
3669
+ objectName: string;
3670
+ label: string;
3671
+ href: string;
3672
+ url?: string;
3673
+ imageUrl?: string;
3674
+ objectIcon?: string;
3675
+ } | {
3676
+ kind: "campaign";
3677
+ sequenceId: string;
3678
+ label: string;
3679
+ href: string;
3680
+ url?: string;
3681
+ imageUrl?: string;
3682
+ objectIcon?: string;
3683
+ }>;
3684
+ referenceCoverage?: {
3685
+ returned: number;
3686
+ available: number;
3687
+ truncated: boolean;
3688
+ };
3629
3689
  };
3630
3690
  "campaigns.audience.search": {
3631
3691
  rows: Record<string, unknown>[];
@@ -4436,7 +4496,59 @@ export interface ApiResponses {
4436
4496
  createdAt: number;
4437
4497
  updatedAt: number;
4438
4498
  [key: string]: unknown;
4439
- }>;
4499
+ }> | {
4500
+ data: Array<{
4501
+ _id: string;
4502
+ _creationTime: number;
4503
+ organizationId: string;
4504
+ name: string;
4505
+ description?: string;
4506
+ /** Default view rendered for the object. */
4507
+ defaultView: "table" | "kanban" | "calendar" | "timeline" | "gallery" | "list";
4508
+ sortOrder: number;
4509
+ immutable: boolean;
4510
+ /** Who can read the object's records. Always reported as the value the object behaves as: `meeting` defaults to owner_plus_members, `calendar_event` to owner_only, anything else to workspace. */
4511
+ visibility?: "workspace" | "owner_only" | "owner_plus_members";
4512
+ icon?: string;
4513
+ viewSettings?: Record<string, unknown>;
4514
+ savedViews?: Record<string, unknown>[];
4515
+ entryCount?: number;
4516
+ createdAt: number;
4517
+ updatedAt: number;
4518
+ [key: string]: unknown;
4519
+ }>;
4520
+ references: Array<{
4521
+ kind: "crm-entry";
4522
+ objectName: string;
4523
+ entryId: string;
4524
+ label: string;
4525
+ href: string;
4526
+ url?: string;
4527
+ imageUrl?: string;
4528
+ objectIcon?: string;
4529
+ } | {
4530
+ kind: "crm-object";
4531
+ objectName: string;
4532
+ label: string;
4533
+ href: string;
4534
+ url?: string;
4535
+ imageUrl?: string;
4536
+ objectIcon?: string;
4537
+ } | {
4538
+ kind: "campaign";
4539
+ sequenceId: string;
4540
+ label: string;
4541
+ href: string;
4542
+ url?: string;
4543
+ imageUrl?: string;
4544
+ objectIcon?: string;
4545
+ }>;
4546
+ referenceCoverage: {
4547
+ returned: number;
4548
+ available: number;
4549
+ truncated: boolean;
4550
+ };
4551
+ };
4440
4552
  "crm.objects.listCompact": Array<{
4441
4553
  _id: string;
4442
4554
  name: string;
@@ -4465,10 +4577,72 @@ export interface ApiResponses {
4465
4577
  entryCount?: number;
4466
4578
  createdAt: number;
4467
4579
  updatedAt: number;
4580
+ references?: Array<{
4581
+ kind: "crm-entry";
4582
+ objectName: string;
4583
+ entryId: string;
4584
+ label: string;
4585
+ href: string;
4586
+ url?: string;
4587
+ imageUrl?: string;
4588
+ objectIcon?: string;
4589
+ } | {
4590
+ kind: "crm-object";
4591
+ objectName: string;
4592
+ label: string;
4593
+ href: string;
4594
+ url?: string;
4595
+ imageUrl?: string;
4596
+ objectIcon?: string;
4597
+ } | {
4598
+ kind: "campaign";
4599
+ sequenceId: string;
4600
+ label: string;
4601
+ href: string;
4602
+ url?: string;
4603
+ imageUrl?: string;
4604
+ objectIcon?: string;
4605
+ }>;
4606
+ referenceCoverage?: {
4607
+ returned: number;
4608
+ available: number;
4609
+ truncated: boolean;
4610
+ };
4468
4611
  [key: string]: unknown;
4469
4612
  } | null;
4470
4613
  "crm.objects.create": {
4471
4614
  id: string;
4615
+ references?: Array<{
4616
+ kind: "crm-entry";
4617
+ objectName: string;
4618
+ entryId: string;
4619
+ label: string;
4620
+ href: string;
4621
+ url?: string;
4622
+ imageUrl?: string;
4623
+ objectIcon?: string;
4624
+ } | {
4625
+ kind: "crm-object";
4626
+ objectName: string;
4627
+ label: string;
4628
+ href: string;
4629
+ url?: string;
4630
+ imageUrl?: string;
4631
+ objectIcon?: string;
4632
+ } | {
4633
+ kind: "campaign";
4634
+ sequenceId: string;
4635
+ label: string;
4636
+ href: string;
4637
+ url?: string;
4638
+ imageUrl?: string;
4639
+ objectIcon?: string;
4640
+ }>;
4641
+ referenceCoverage?: {
4642
+ returned: number;
4643
+ available: number;
4644
+ truncated: boolean;
4645
+ };
4472
4646
  };
4473
4647
  "crm.objects.update": {
4474
4648
  ok: boolean;
@@ -4645,7 +4819,49 @@ export interface ApiResponses {
4645
4819
  updatedAt: number;
4646
4820
  updatedBy: string;
4647
4821
  sortOrder: number;
4648
- }[];
4822
+ }[] | {
4823
+ data: {
4824
+ id: string;
4825
+ objectId: string;
4826
+ /** Field-name -> cell value map. */
4827
+ fields: Record<string, unknown>;
4828
+ createdAt: number;
4829
+ updatedAt: number;
4830
+ updatedBy: string;
4831
+ sortOrder: number;
4832
+ }[];
4833
+ references: Array<{
4834
+ kind: "crm-entry";
4835
+ objectName: string;
4836
+ entryId: string;
4837
+ label: string;
4838
+ href: string;
4839
+ url?: string;
4840
+ imageUrl?: string;
4841
+ objectIcon?: string;
4842
+ } | {
4843
+ kind: "crm-object";
4844
+ objectName: string;
4845
+ label: string;
4846
+ href: string;
4847
+ url?: string;
4848
+ imageUrl?: string;
4849
+ objectIcon?: string;
4850
+ } | {
4851
+ kind: "campaign";
4852
+ sequenceId: string;
4853
+ label: string;
4854
+ href: string;
4855
+ url?: string;
4856
+ imageUrl?: string;
4857
+ objectIcon?: string;
4858
+ }>;
4859
+ referenceCoverage: {
4860
+ returned: number;
4861
+ available: number;
4862
+ truncated: boolean;
4863
+ };
4864
+ };
4649
4865
  "crm.entries.get": {
4650
4866
  id: string;
4651
4867
  objectId: string;
@@ -4655,6 +4871,37 @@ export interface ApiResponses {
4655
4871
  updatedAt: number;
4656
4872
  updatedBy: string;
4657
4873
  sortOrder: number;
4874
+ references?: Array<{
4875
+ kind: "crm-entry";
4876
+ objectName: string;
4877
+ entryId: string;
4878
+ label: string;
4879
+ href: string;
4880
+ url?: string;
4881
+ imageUrl?: string;
4882
+ objectIcon?: string;
4883
+ } | {
4884
+ kind: "crm-object";
4885
+ objectName: string;
4886
+ label: string;
4887
+ href: string;
4888
+ url?: string;
4889
+ imageUrl?: string;
4890
+ objectIcon?: string;
4891
+ } | {
4892
+ kind: "campaign";
4893
+ sequenceId: string;
4894
+ label: string;
4895
+ href: string;
4896
+ url?: string;
4897
+ imageUrl?: string;
4898
+ objectIcon?: string;
4899
+ }>;
4900
+ referenceCoverage?: {
4901
+ returned: number;
4902
+ available: number;
4903
+ truncated: boolean;
4904
+ };
4658
4905
  } | null;
4659
4906
  "crm.entries.syncHistory": unknown;
4660
4907
  "crm.entries.syncHistoryStatus": unknown;
@@ -4863,8 +5110,70 @@ export interface ApiResponses {
4863
5110
  "crm.tasks.series.occurrences": Record<string, unknown>[];
4864
5111
  "crm.entries.create": {
4865
5112
  entryId: string;
5113
+ references?: Array<{
5114
+ kind: "crm-entry";
5115
+ objectName: string;
5116
+ entryId: string;
5117
+ label: string;
5118
+ href: string;
5119
+ url?: string;
5120
+ imageUrl?: string;
5121
+ objectIcon?: string;
5122
+ } | {
5123
+ kind: "crm-object";
5124
+ objectName: string;
5125
+ label: string;
5126
+ href: string;
5127
+ url?: string;
5128
+ imageUrl?: string;
5129
+ objectIcon?: string;
5130
+ } | {
5131
+ kind: "campaign";
5132
+ sequenceId: string;
5133
+ label: string;
5134
+ href: string;
5135
+ url?: string;
5136
+ imageUrl?: string;
5137
+ objectIcon?: string;
5138
+ }>;
5139
+ referenceCoverage?: {
5140
+ returned: number;
5141
+ available: number;
5142
+ truncated: boolean;
5143
+ };
4866
5144
  };
4867
5145
  "crm.entries.createMany": {
5146
+ references?: Array<{
5147
+ kind: "crm-entry";
5148
+ objectName: string;
5149
+ entryId: string;
5150
+ label: string;
5151
+ href: string;
5152
+ url?: string;
5153
+ imageUrl?: string;
5154
+ objectIcon?: string;
5155
+ } | {
5156
+ kind: "crm-object";
5157
+ objectName: string;
5158
+ label: string;
5159
+ href: string;
5160
+ url?: string;
5161
+ imageUrl?: string;
5162
+ objectIcon?: string;
5163
+ } | {
5164
+ kind: "campaign";
5165
+ sequenceId: string;
5166
+ label: string;
5167
+ href: string;
5168
+ url?: string;
5169
+ imageUrl?: string;
5170
+ objectIcon?: string;
5171
+ }>;
5172
+ referenceCoverage?: {
5173
+ returned: number;
5174
+ available: number;
5175
+ truncated: boolean;
5176
+ };
4868
5177
  results: {
4869
5178
  entryId: string;
4870
5179
  }[];
@@ -4872,8 +5181,70 @@ export interface ApiResponses {
4872
5181
  };
4873
5182
  "crm.entries.update": {
4874
5183
  entryId: string;
5184
+ references?: Array<{
5185
+ kind: "crm-entry";
5186
+ objectName: string;
5187
+ entryId: string;
5188
+ label: string;
5189
+ href: string;
5190
+ url?: string;
5191
+ imageUrl?: string;
5192
+ objectIcon?: string;
5193
+ } | {
5194
+ kind: "crm-object";
5195
+ objectName: string;
5196
+ label: string;
5197
+ href: string;
5198
+ url?: string;
5199
+ imageUrl?: string;
5200
+ objectIcon?: string;
5201
+ } | {
5202
+ kind: "campaign";
5203
+ sequenceId: string;
5204
+ label: string;
5205
+ href: string;
5206
+ url?: string;
5207
+ imageUrl?: string;
5208
+ objectIcon?: string;
5209
+ }>;
5210
+ referenceCoverage?: {
5211
+ returned: number;
5212
+ available: number;
5213
+ truncated: boolean;
5214
+ };
4875
5215
  };
4876
5216
  "crm.entries.updateMany": {
5217
+ references?: Array<{
5218
+ kind: "crm-entry";
5219
+ objectName: string;
5220
+ entryId: string;
5221
+ label: string;
5222
+ href: string;
5223
+ url?: string;
5224
+ imageUrl?: string;
5225
+ objectIcon?: string;
5226
+ } | {
5227
+ kind: "crm-object";
5228
+ objectName: string;
5229
+ label: string;
5230
+ href: string;
5231
+ url?: string;
5232
+ imageUrl?: string;
5233
+ objectIcon?: string;
5234
+ } | {
5235
+ kind: "campaign";
5236
+ sequenceId: string;
5237
+ label: string;
5238
+ href: string;
5239
+ url?: string;
5240
+ imageUrl?: string;
5241
+ objectIcon?: string;
5242
+ }>;
5243
+ referenceCoverage?: {
5244
+ returned: number;
5245
+ available: number;
5246
+ truncated: boolean;
5247
+ };
4877
5248
  results: {
4878
5249
  entryId: string;
4879
5250
  deleted?: boolean;
@@ -4890,6 +5261,37 @@ export interface ApiResponses {
4890
5261
  "crm.cells.get": unknown;
4891
5262
  "crm.cells.set": {
4892
5263
  entryId: string;
5264
+ references?: Array<{
5265
+ kind: "crm-entry";
5266
+ objectName: string;
5267
+ entryId: string;
5268
+ label: string;
5269
+ href: string;
5270
+ url?: string;
5271
+ imageUrl?: string;
5272
+ objectIcon?: string;
5273
+ } | {
5274
+ kind: "crm-object";
5275
+ objectName: string;
5276
+ label: string;
5277
+ href: string;
5278
+ url?: string;
5279
+ imageUrl?: string;
5280
+ objectIcon?: string;
5281
+ } | {
5282
+ kind: "campaign";
5283
+ sequenceId: string;
5284
+ label: string;
5285
+ href: string;
5286
+ url?: string;
5287
+ imageUrl?: string;
5288
+ objectIcon?: string;
5289
+ }>;
5290
+ referenceCoverage?: {
5291
+ returned: number;
5292
+ available: number;
5293
+ truncated: boolean;
5294
+ };
4893
5295
  };
4894
5296
  "crm.cells.setMany": {
4895
5297
  results: {
@@ -4899,17 +5301,72 @@ export interface ApiResponses {
4899
5301
  };
4900
5302
  "crm.cells.append": {
4901
5303
  entryId: string;
5304
+ references?: Array<{
5305
+ kind: "crm-entry";
5306
+ objectName: string;
5307
+ entryId: string;
5308
+ label: string;
5309
+ href: string;
5310
+ url?: string;
5311
+ imageUrl?: string;
5312
+ objectIcon?: string;
5313
+ } | {
5314
+ kind: "crm-object";
5315
+ objectName: string;
5316
+ label: string;
5317
+ href: string;
5318
+ url?: string;
5319
+ imageUrl?: string;
5320
+ objectIcon?: string;
5321
+ } | {
5322
+ kind: "campaign";
5323
+ sequenceId: string;
5324
+ label: string;
5325
+ href: string;
5326
+ url?: string;
5327
+ imageUrl?: string;
5328
+ objectIcon?: string;
5329
+ }>;
5330
+ referenceCoverage?: {
5331
+ returned: number;
5332
+ available: number;
5333
+ truncated: boolean;
5334
+ };
5335
+ };
5336
+ "crm.query": Record<string, unknown>[] | {
5337
+ data: Record<string, unknown>[];
5338
+ references: Array<{
5339
+ kind: "crm-entry";
5340
+ objectName: string;
5341
+ entryId: string;
5342
+ label: string;
5343
+ href: string;
5344
+ url?: string;
5345
+ imageUrl?: string;
5346
+ objectIcon?: string;
5347
+ } | {
5348
+ kind: "crm-object";
5349
+ objectName: string;
5350
+ label: string;
5351
+ href: string;
5352
+ url?: string;
5353
+ imageUrl?: string;
5354
+ objectIcon?: string;
5355
+ } | {
5356
+ kind: "campaign";
5357
+ sequenceId: string;
5358
+ label: string;
5359
+ href: string;
5360
+ url?: string;
5361
+ imageUrl?: string;
5362
+ objectIcon?: string;
5363
+ }>;
5364
+ referenceCoverage: {
5365
+ returned: number;
5366
+ available: number;
5367
+ truncated: boolean;
5368
+ };
4902
5369
  };
4903
- "crm.query": {
4904
- id: string;
4905
- objectId: string;
4906
- /** Field-name -> cell value map. */
4907
- fields: Record<string, unknown>;
4908
- createdAt: number;
4909
- updatedAt: number;
4910
- updatedBy: string;
4911
- sortOrder: number;
4912
- }[];
4913
5370
  "crm.queryPage": unknown;
4914
5371
  "crm.sql": {
4915
5372
  id: string;
@@ -4937,8 +5394,83 @@ export interface ApiResponses {
4937
5394
  updatedAt: number;
4938
5395
  updatedBy: string;
4939
5396
  [key: string]: unknown;
4940
- }[];
5397
+ }[] | {
5398
+ data: {
5399
+ _id: string;
5400
+ _creationTime: number;
5401
+ objectId: string;
5402
+ /** Field-name -> cell value map. */
5403
+ data: Record<string, unknown>;
5404
+ sortOrder: number;
5405
+ createdAt: number;
5406
+ updatedAt: number;
5407
+ updatedBy: string;
5408
+ [key: string]: unknown;
5409
+ }[];
5410
+ references: Array<{
5411
+ kind: "crm-entry";
5412
+ objectName: string;
5413
+ entryId: string;
5414
+ label: string;
5415
+ href: string;
5416
+ url?: string;
5417
+ imageUrl?: string;
5418
+ objectIcon?: string;
5419
+ } | {
5420
+ kind: "crm-object";
5421
+ objectName: string;
5422
+ label: string;
5423
+ href: string;
5424
+ url?: string;
5425
+ imageUrl?: string;
5426
+ objectIcon?: string;
5427
+ } | {
5428
+ kind: "campaign";
5429
+ sequenceId: string;
5430
+ label: string;
5431
+ href: string;
5432
+ url?: string;
5433
+ imageUrl?: string;
5434
+ objectIcon?: string;
5435
+ }>;
5436
+ referenceCoverage: {
5437
+ returned: number;
5438
+ available: number;
5439
+ truncated: boolean;
5440
+ };
5441
+ };
4941
5442
  "crm.search.page": {
5443
+ references?: Array<{
5444
+ kind: "crm-entry";
5445
+ objectName: string;
5446
+ entryId: string;
5447
+ label: string;
5448
+ href: string;
5449
+ url?: string;
5450
+ imageUrl?: string;
5451
+ objectIcon?: string;
5452
+ } | {
5453
+ kind: "crm-object";
5454
+ objectName: string;
5455
+ label: string;
5456
+ href: string;
5457
+ url?: string;
5458
+ imageUrl?: string;
5459
+ objectIcon?: string;
5460
+ } | {
5461
+ kind: "campaign";
5462
+ sequenceId: string;
5463
+ label: string;
5464
+ href: string;
5465
+ url?: string;
5466
+ imageUrl?: string;
5467
+ objectIcon?: string;
5468
+ }>;
5469
+ referenceCoverage?: {
5470
+ returned: number;
5471
+ available: number;
5472
+ truncated: boolean;
5473
+ };
4942
5474
  page: {
4943
5475
  _id: string;
4944
5476
  objectId: string;
@@ -4965,6 +5497,37 @@ export interface ApiResponses {
4965
5497
  ok: boolean;
4966
5498
  };
4967
5499
  "crm.batch": {
5500
+ references?: Array<{
5501
+ kind: "crm-entry";
5502
+ objectName: string;
5503
+ entryId: string;
5504
+ label: string;
5505
+ href: string;
5506
+ url?: string;
5507
+ imageUrl?: string;
5508
+ objectIcon?: string;
5509
+ } | {
5510
+ kind: "crm-object";
5511
+ objectName: string;
5512
+ label: string;
5513
+ href: string;
5514
+ url?: string;
5515
+ imageUrl?: string;
5516
+ objectIcon?: string;
5517
+ } | {
5518
+ kind: "campaign";
5519
+ sequenceId: string;
5520
+ label: string;
5521
+ href: string;
5522
+ url?: string;
5523
+ imageUrl?: string;
5524
+ objectIcon?: string;
5525
+ }>;
5526
+ referenceCoverage?: {
5527
+ returned: number;
5528
+ available: number;
5529
+ truncated: boolean;
5530
+ };
4968
5531
  results: {
4969
5532
  entryId: string;
4970
5533
  deleted?: boolean;
@@ -4979,6 +5542,37 @@ export interface ApiResponses {
4979
5542
  ok: boolean;
4980
5543
  };
4981
5544
  "crm.transaction.commit": {
5545
+ references?: Array<{
5546
+ kind: "crm-entry";
5547
+ objectName: string;
5548
+ entryId: string;
5549
+ label: string;
5550
+ href: string;
5551
+ url?: string;
5552
+ imageUrl?: string;
5553
+ objectIcon?: string;
5554
+ } | {
5555
+ kind: "crm-object";
5556
+ objectName: string;
5557
+ label: string;
5558
+ href: string;
5559
+ url?: string;
5560
+ imageUrl?: string;
5561
+ objectIcon?: string;
5562
+ } | {
5563
+ kind: "campaign";
5564
+ sequenceId: string;
5565
+ label: string;
5566
+ href: string;
5567
+ url?: string;
5568
+ imageUrl?: string;
5569
+ objectIcon?: string;
5570
+ }>;
5571
+ referenceCoverage?: {
5572
+ returned: number;
5573
+ available: number;
5574
+ truncated: boolean;
5575
+ };
4982
5576
  results: {
4983
5577
  entryId: string;
4984
5578
  deleted?: boolean;
@@ -6350,15 +6944,183 @@ export interface ApiResponses {
6350
6944
  createdAt: number;
6351
6945
  updatedAt: number;
6352
6946
  [key: string]: unknown;
6353
- }>;
6947
+ }> | {
6948
+ data: Array<{
6949
+ _id: string;
6950
+ name: string;
6951
+ /** Campaign lifecycle status. */
6952
+ status: "draft" | "active" | "paused" | "completed" | "archived";
6953
+ stopOnReply: boolean;
6954
+ /** Campaign email sender pool: up to 50 emailMailboxAccounts ids both you and the campaign owner may use. Omit to preserve existing configuration; [] clears the pool. A person's sender stays fixed for their conversation. Launch validates sender availability. */
6955
+ emailMailboxAccountIds?: string[];
6956
+ /** Campaign LinkedIn sender pool: up to 50 linkedinAccounts ids both you and the campaign owner may use. Omit to preserve existing configuration; [] clears the pool. Legacy step senders remain until a pool is configured. */
6957
+ linkedinAccountIds?: string[];
6958
+ timezone?: string;
6959
+ startsAt?: number;
6960
+ endsAt?: number;
6961
+ sendSchedules?: {
6962
+ /** Label, e.g. "Mon-Fri 9-18". */
6963
+ name: string;
6964
+ /** IANA timezone, e.g. America/Los_Angeles. */
6965
+ timezone: string;
6966
+ /** First hour sends may go out (0-23). */
6967
+ startHour: number;
6968
+ /** Hour sends stop (1-24); must be after startHour. */
6969
+ endHour: number;
6970
+ /** Days sends may go out: 0 = Sunday ... 6 = Saturday. */
6971
+ weekdays: number[];
6972
+ }[];
6973
+ dailySendCap?: number;
6974
+ stepCount: number;
6975
+ /** linear: steps run in order. workflow: steps have keys and paths (next, yesNext, noNext) and may include condition and wait_for_connection. Left out, a workflow stays one and steps with keys, paths or those types make one; nothing turns a workflow back into a list. */
6976
+ stepModel?: "linear" | "workflow";
6977
+ totalEnrolled: number;
6978
+ activeCount: number;
6979
+ pausedCount: number;
6980
+ finishedCount: number;
6981
+ repliedCount: number;
6982
+ failedCount: number;
6983
+ stoppedCount: number;
6984
+ launchedAt?: number;
6985
+ ownerName?: string;
6986
+ isOwner?: boolean;
6987
+ createdAt: number;
6988
+ updatedAt: number;
6989
+ [key: string]: unknown;
6990
+ }>;
6991
+ references: Array<{
6992
+ kind: "crm-entry";
6993
+ objectName: string;
6994
+ entryId: string;
6995
+ label: string;
6996
+ href: string;
6997
+ url?: string;
6998
+ imageUrl?: string;
6999
+ objectIcon?: string;
7000
+ } | {
7001
+ kind: "crm-object";
7002
+ objectName: string;
7003
+ label: string;
7004
+ href: string;
7005
+ url?: string;
7006
+ imageUrl?: string;
7007
+ objectIcon?: string;
7008
+ } | {
7009
+ kind: "campaign";
7010
+ sequenceId: string;
7011
+ label: string;
7012
+ href: string;
7013
+ url?: string;
7014
+ imageUrl?: string;
7015
+ objectIcon?: string;
7016
+ }>;
7017
+ referenceCoverage: {
7018
+ returned: number;
7019
+ available: number;
7020
+ truncated: boolean;
7021
+ };
7022
+ };
6354
7023
  "campaigns.create": {
6355
7024
  sequenceId: string;
7025
+ references?: Array<{
7026
+ kind: "crm-entry";
7027
+ objectName: string;
7028
+ entryId: string;
7029
+ label: string;
7030
+ href: string;
7031
+ url?: string;
7032
+ imageUrl?: string;
7033
+ objectIcon?: string;
7034
+ } | {
7035
+ kind: "crm-object";
7036
+ objectName: string;
7037
+ label: string;
7038
+ href: string;
7039
+ url?: string;
7040
+ imageUrl?: string;
7041
+ objectIcon?: string;
7042
+ } | {
7043
+ kind: "campaign";
7044
+ sequenceId: string;
7045
+ label: string;
7046
+ href: string;
7047
+ url?: string;
7048
+ imageUrl?: string;
7049
+ objectIcon?: string;
7050
+ }>;
7051
+ referenceCoverage?: {
7052
+ returned: number;
7053
+ available: number;
7054
+ truncated: boolean;
7055
+ };
6356
7056
  };
6357
7057
  "campaigns.duplicate": {
7058
+ references?: Array<{
7059
+ kind: "crm-entry";
7060
+ objectName: string;
7061
+ entryId: string;
7062
+ label: string;
7063
+ href: string;
7064
+ url?: string;
7065
+ imageUrl?: string;
7066
+ objectIcon?: string;
7067
+ } | {
7068
+ kind: "crm-object";
7069
+ objectName: string;
7070
+ label: string;
7071
+ href: string;
7072
+ url?: string;
7073
+ imageUrl?: string;
7074
+ objectIcon?: string;
7075
+ } | {
7076
+ kind: "campaign";
7077
+ sequenceId: string;
7078
+ label: string;
7079
+ href: string;
7080
+ url?: string;
7081
+ imageUrl?: string;
7082
+ objectIcon?: string;
7083
+ }>;
7084
+ referenceCoverage?: {
7085
+ returned: number;
7086
+ available: number;
7087
+ truncated: boolean;
7088
+ };
6358
7089
  /** The new draft. Rename it with campaigns.update. */
6359
7090
  sequenceId: string;
6360
7091
  };
6361
7092
  "campaigns.get": {
7093
+ references?: Array<{
7094
+ kind: "crm-entry";
7095
+ objectName: string;
7096
+ entryId: string;
7097
+ label: string;
7098
+ href: string;
7099
+ url?: string;
7100
+ imageUrl?: string;
7101
+ objectIcon?: string;
7102
+ } | {
7103
+ kind: "crm-object";
7104
+ objectName: string;
7105
+ label: string;
7106
+ href: string;
7107
+ url?: string;
7108
+ imageUrl?: string;
7109
+ objectIcon?: string;
7110
+ } | {
7111
+ kind: "campaign";
7112
+ sequenceId: string;
7113
+ label: string;
7114
+ href: string;
7115
+ url?: string;
7116
+ imageUrl?: string;
7117
+ objectIcon?: string;
7118
+ }>;
7119
+ referenceCoverage?: {
7120
+ returned: number;
7121
+ available: number;
7122
+ truncated: boolean;
7123
+ };
6362
7124
  sequence: {
6363
7125
  _id: string;
6364
7126
  name: string;
@@ -8100,7 +8862,7 @@ export type DenchApiTree = {
8100
8862
  /** Launch readiness without launching: blockers grouped by problem, warnings, and the fingerprint `launch` requires. (`dench campaign launch --check`) */
8101
8863
  preview(args: Req<"campaigns.launch.preview">): Promise<Res<"campaigns.launch.preview">>;
8102
8864
  };
8103
- /** List outreach campaigns (archived ones on request). (`dench campaign list`) */
8865
+ /** List outreach campaigns (archived ones on request). (`dench campaign list [--with-references]`) */
8104
8866
  list(args?: Req<"campaigns.list">): Promise<Res<"campaigns.list">>;
8105
8867
  /** What the campaign is doing now, what comes next and when, and why it is holding. (`dench campaign get`) */
8106
8868
  live(args: Req<"campaigns.live">): Promise<Res<"campaigns.live">>;
@@ -8345,7 +9107,7 @@ export type DenchApiTree = {
8345
9107
  get(args: Req<"crm.entries.get">): Promise<Res<"crm.entries.get">>;
8346
9108
  /** List a CRM entry's audit history. (`dench crm history`) */
8347
9109
  history(args: Req<"crm.entries.history">): Promise<Res<"crm.entries.history">>;
8348
- /** List CRM entries. (`dench crm entries list`) */
9110
+ /** List CRM entries. (`dench crm entries list [--with-references]`) */
8349
9111
  list(args: Req<"crm.entries.list">): Promise<Res<"crm.entries.list">>;
8350
9112
  /** Queue a full, paged pull of the record's email history from every connected mailbox; the ledger fills as pages land. (`dench crm entries sync-history`) */
8351
9113
  syncHistory(args: Req<"crm.entries.syncHistory">): Promise<Res<"crm.entries.syncHistory">>;
@@ -8401,7 +9163,7 @@ export type DenchApiTree = {
8401
9163
  delete(args: Req<"crm.objects.delete">): Promise<Res<"crm.objects.delete">>;
8402
9164
  /** Get a CRM object. (`dench crm objects get`) */
8403
9165
  get(args: Req<"crm.objects.get">): Promise<Res<"crm.objects.get">>;
8404
- /** List CRM objects. (`dench crm objects list`) */
9166
+ /** List CRM objects. (`dench crm objects list [--with-references]`) */
8405
9167
  list(args?: Req<"crm.objects.list">): Promise<Res<"crm.objects.list">>;
8406
9168
  /** List names, display labels, visibility and workspace counts without internal state. (`dench crm objects list --compact`) */
8407
9169
  listCompact(args?: Req<"crm.objects.listCompact">): Promise<Res<"crm.objects.listCompact">>;
@@ -8422,7 +9184,7 @@ export type DenchApiTree = {
8422
9184
  /** Hide (`hidden: true`) or show the caller's own emails / messages with this record to the workspace. An account covers every contact and opportunity linked to it; existing ledger rows are restamped and the shared Brief regenerates. (`dench crm privacy hide|show`) */
8423
9185
  set(args: Req<"crm.privacy.set">): Promise<Res<"crm.privacy.set">>;
8424
9186
  };
8425
- /** Query CRM entries. (`dench crm query`) */
9187
+ /** Query CRM entries. (`dench crm query [--with-references]`) */
8426
9188
  query(args: Req<"crm.query">): Promise<Res<"crm.query">>;
8427
9189
  /** Scan CRM entries with a resumable cursor. Empty filtered pages can have more results. (`dench crm query --page`) */
8428
9190
  queryPage(args: Req<"crm.queryPage">): Promise<Res<"crm.queryPage">>;
@@ -8431,7 +9193,7 @@ export type DenchApiTree = {
8431
9193
  generate(args: Req<"crm.reports.generate">): Promise<Res<"crm.reports.generate">>;
8432
9194
  };
8433
9195
  search: {
8434
- /** Search CRM entries. (`dench crm search`) */
9196
+ /** Search CRM entries. (`dench crm search [--with-references]`) */
8435
9197
  (args?: Req<"crm.search">): Promise<Res<"crm.search">>;
8436
9198
  $call(args?: Req<"crm.search">): Promise<Res<"crm.search">>;
8437
9199
  /** Search bounded pages of readable CRM entries, optionally projecting cells. Always follow continueCursor until isDone. (`dench crm search --page`) */