@lessly/sdk-app 81.0.0 → 82.0.0

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.
@@ -65810,23 +65810,83 @@ sourceAuthority?: (("policy" | "official" | "team" | "informal") | null)
65810
65810
  }
65811
65811
 
65812
65812
  export interface BrainDaemonCreateOutput {
65813
+ /**
65814
+ * Id of this ingestion daemon — the value every other daemon tool takes as `id`
65815
+ */
65813
65816
  id: string
65817
+ /**
65818
+ * Operator-given label for this daemon; null when it was never named
65819
+ */
65814
65820
  name: (string | null)
65821
+ /**
65822
+ * GitHub repository this daemon reads from; null on clickup and gdrive daemons
65823
+ */
65815
65824
  repo: (string | null)
65825
+ /**
65826
+ * Which source this daemon ingests from: 'github', 'clickup' or 'gdrive'
65827
+ */
65816
65828
  type: string
65829
+ /**
65830
+ * The model an operator PINNED on this daemon, not necessarily the one that runs; null means Auto. Read effectiveModel for what extraction actually uses.
65831
+ */
65817
65832
  model: (string | null)
65833
+ /**
65834
+ * GitHub owner (user or org) this daemon reads from; null on clickup and gdrive daemons
65835
+ */
65818
65836
  owner: (string | null)
65837
+ /**
65838
+ * Branch the GitHub daemon reads, usually main; null on clickup and gdrive daemons
65839
+ */
65819
65840
  branch: (string | null)
65820
- config?: unknown
65841
+ /**
65842
+ * This daemon's source settings, shaped by `type`: github carries markdown/issues/pulls toggles and glob filters, gdrive carries docs/pdf/text toggles and recurse. Meant for display, not for binding a later step to.
65843
+ */
65844
+ config?: {
65845
+ [k: string]: unknown
65846
+ }
65847
+ /**
65848
+ * False while the daemon is paused — a paused daemon starts no runs and reingest requests against it clear paths but trigger nothing
65849
+ */
65821
65850
  enabled: boolean
65851
+ /**
65852
+ * Which lane runs go to: 'hot' finishes in minutes, 'batch' queues the work with the model provider and can take hours
65853
+ */
65822
65854
  loadMode: string
65855
+ /**
65856
+ * When this daemon last ran, as an ISO-8601 timestamp; null when it has never run
65857
+ */
65823
65858
  lastRunAt: (string | null)
65824
- lastResult?: unknown
65859
+ /**
65860
+ * Summary the last run recorded, overwritten wholesale each run; null when the daemon has never run. Use brain_daemon_runs for the run history.
65861
+ */
65862
+ lastResult?: {
65863
+ [k: string]: unknown
65864
+ }
65865
+ /**
65866
+ * Id of the connector holding the credentials this daemon runs with; null on github daemons, which use the repo connection
65867
+ */
65825
65868
  connectorId: (string | null)
65826
- clickupConfig?: unknown
65869
+ /**
65870
+ * Workspace, space, list, content toggles and chat channels for a clickup daemon; null for every other type
65871
+ */
65872
+ clickupConfig?: {
65873
+ [k: string]: unknown
65874
+ }
65875
+ /**
65876
+ * How many of this daemon's documents are known to have extracted incompletely, accumulated across all runs (the last run overwrites lastResult, this does not). 0 does NOT mean clean on its own — read it together with unmeasuredCount.
65877
+ */
65827
65878
  degradedCount: number
65879
+ /**
65880
+ * The model this daemon ACTUALLY extracts with — `model` when it is pinned and still allowed, otherwise the platform default that Auto resolves to; null when nothing resolves. This is the one to report, not `model`.
65881
+ */
65828
65882
  effectiveModel: (string | null)
65883
+ /**
65884
+ * Authority tier stamped on the memories this daemon writes (highest→lowest: policy, official, team, informal); null means Auto — resolved per source category
65885
+ */
65829
65886
  sourceAuthority: (string | null)
65887
+ /**
65888
+ * How many of this daemon's documents nobody has measured: ingested before the check existed, or staged in a batch run that has not finished extracting. Unmeasured is NOT clean — while this is above 0, degradedCount is a floor, not a verdict, and the count drains itself as those documents are extracted.
65889
+ */
65830
65890
  unmeasuredCount: number
65831
65891
  }
65832
65892
 
@@ -65838,23 +65898,83 @@ id: string
65838
65898
  }
65839
65899
 
65840
65900
  export interface BrainDaemonGetOutput {
65901
+ /**
65902
+ * Id of this ingestion daemon — the value every other daemon tool takes as `id`
65903
+ */
65841
65904
  id: string
65905
+ /**
65906
+ * Operator-given label for this daemon; null when it was never named
65907
+ */
65842
65908
  name: (string | null)
65909
+ /**
65910
+ * GitHub repository this daemon reads from; null on clickup and gdrive daemons
65911
+ */
65843
65912
  repo: (string | null)
65913
+ /**
65914
+ * Which source this daemon ingests from: 'github', 'clickup' or 'gdrive'
65915
+ */
65844
65916
  type: string
65917
+ /**
65918
+ * The model an operator PINNED on this daemon, not necessarily the one that runs; null means Auto. Read effectiveModel for what extraction actually uses.
65919
+ */
65845
65920
  model: (string | null)
65921
+ /**
65922
+ * GitHub owner (user or org) this daemon reads from; null on clickup and gdrive daemons
65923
+ */
65846
65924
  owner: (string | null)
65925
+ /**
65926
+ * Branch the GitHub daemon reads, usually main; null on clickup and gdrive daemons
65927
+ */
65847
65928
  branch: (string | null)
65848
- config?: unknown
65929
+ /**
65930
+ * This daemon's source settings, shaped by `type`: github carries markdown/issues/pulls toggles and glob filters, gdrive carries docs/pdf/text toggles and recurse. Meant for display, not for binding a later step to.
65931
+ */
65932
+ config?: {
65933
+ [k: string]: unknown
65934
+ }
65935
+ /**
65936
+ * False while the daemon is paused — a paused daemon starts no runs and reingest requests against it clear paths but trigger nothing
65937
+ */
65849
65938
  enabled: boolean
65939
+ /**
65940
+ * Which lane runs go to: 'hot' finishes in minutes, 'batch' queues the work with the model provider and can take hours
65941
+ */
65850
65942
  loadMode: string
65943
+ /**
65944
+ * When this daemon last ran, as an ISO-8601 timestamp; null when it has never run
65945
+ */
65851
65946
  lastRunAt: (string | null)
65852
- lastResult?: unknown
65947
+ /**
65948
+ * Summary the last run recorded, overwritten wholesale each run; null when the daemon has never run. Use brain_daemon_runs for the run history.
65949
+ */
65950
+ lastResult?: {
65951
+ [k: string]: unknown
65952
+ }
65953
+ /**
65954
+ * Id of the connector holding the credentials this daemon runs with; null on github daemons, which use the repo connection
65955
+ */
65853
65956
  connectorId: (string | null)
65854
- clickupConfig?: unknown
65957
+ /**
65958
+ * Workspace, space, list, content toggles and chat channels for a clickup daemon; null for every other type
65959
+ */
65960
+ clickupConfig?: {
65961
+ [k: string]: unknown
65962
+ }
65963
+ /**
65964
+ * How many of this daemon's documents are known to have extracted incompletely, accumulated across all runs (the last run overwrites lastResult, this does not). 0 does NOT mean clean on its own — read it together with unmeasuredCount.
65965
+ */
65855
65966
  degradedCount: number
65967
+ /**
65968
+ * The model this daemon ACTUALLY extracts with — `model` when it is pinned and still allowed, otherwise the platform default that Auto resolves to; null when nothing resolves. This is the one to report, not `model`.
65969
+ */
65856
65970
  effectiveModel: (string | null)
65971
+ /**
65972
+ * Authority tier stamped on the memories this daemon writes (highest→lowest: policy, official, team, informal); null means Auto — resolved per source category
65973
+ */
65857
65974
  sourceAuthority: (string | null)
65975
+ /**
65976
+ * How many of this daemon's documents nobody has measured: ingested before the check existed, or staged in a batch run that has not finished extracting. Unmeasured is NOT clean — while this is above 0, degradedCount is a floor, not a verdict, and the count drains itself as those documents are extracted.
65977
+ */
65858
65978
  unmeasuredCount: number
65859
65979
  }
65860
65980
 
@@ -66277,23 +66397,83 @@ export interface BrainDaemonsListInput {
66277
66397
  }
66278
66398
 
66279
66399
  export type BrainDaemonsListOutput = {
66400
+ /**
66401
+ * Id of this ingestion daemon — the value every other daemon tool takes as `id`
66402
+ */
66280
66403
  id: string
66404
+ /**
66405
+ * Operator-given label for this daemon; null when it was never named
66406
+ */
66281
66407
  name: (string | null)
66408
+ /**
66409
+ * GitHub repository this daemon reads from; null on clickup and gdrive daemons
66410
+ */
66282
66411
  repo: (string | null)
66412
+ /**
66413
+ * Which source this daemon ingests from: 'github', 'clickup' or 'gdrive'
66414
+ */
66283
66415
  type: string
66416
+ /**
66417
+ * The model an operator PINNED on this daemon, not necessarily the one that runs; null means Auto. Read effectiveModel for what extraction actually uses.
66418
+ */
66284
66419
  model: (string | null)
66420
+ /**
66421
+ * GitHub owner (user or org) this daemon reads from; null on clickup and gdrive daemons
66422
+ */
66285
66423
  owner: (string | null)
66424
+ /**
66425
+ * Branch the GitHub daemon reads, usually main; null on clickup and gdrive daemons
66426
+ */
66286
66427
  branch: (string | null)
66287
- config?: unknown
66428
+ /**
66429
+ * This daemon's source settings, shaped by `type`: github carries markdown/issues/pulls toggles and glob filters, gdrive carries docs/pdf/text toggles and recurse. Meant for display, not for binding a later step to.
66430
+ */
66431
+ config?: {
66432
+ [k: string]: unknown
66433
+ }
66434
+ /**
66435
+ * False while the daemon is paused — a paused daemon starts no runs and reingest requests against it clear paths but trigger nothing
66436
+ */
66288
66437
  enabled: boolean
66438
+ /**
66439
+ * Which lane runs go to: 'hot' finishes in minutes, 'batch' queues the work with the model provider and can take hours
66440
+ */
66289
66441
  loadMode: string
66442
+ /**
66443
+ * When this daemon last ran, as an ISO-8601 timestamp; null when it has never run
66444
+ */
66290
66445
  lastRunAt: (string | null)
66291
- lastResult?: unknown
66446
+ /**
66447
+ * Summary the last run recorded, overwritten wholesale each run; null when the daemon has never run. Use brain_daemon_runs for the run history.
66448
+ */
66449
+ lastResult?: {
66450
+ [k: string]: unknown
66451
+ }
66452
+ /**
66453
+ * Id of the connector holding the credentials this daemon runs with; null on github daemons, which use the repo connection
66454
+ */
66292
66455
  connectorId: (string | null)
66293
- clickupConfig?: unknown
66456
+ /**
66457
+ * Workspace, space, list, content toggles and chat channels for a clickup daemon; null for every other type
66458
+ */
66459
+ clickupConfig?: {
66460
+ [k: string]: unknown
66461
+ }
66462
+ /**
66463
+ * How many of this daemon's documents are known to have extracted incompletely, accumulated across all runs (the last run overwrites lastResult, this does not). 0 does NOT mean clean on its own — read it together with unmeasuredCount.
66464
+ */
66294
66465
  degradedCount: number
66466
+ /**
66467
+ * The model this daemon ACTUALLY extracts with — `model` when it is pinned and still allowed, otherwise the platform default that Auto resolves to; null when nothing resolves. This is the one to report, not `model`.
66468
+ */
66295
66469
  effectiveModel: (string | null)
66470
+ /**
66471
+ * Authority tier stamped on the memories this daemon writes (highest→lowest: policy, official, team, informal); null means Auto — resolved per source category
66472
+ */
66296
66473
  sourceAuthority: (string | null)
66474
+ /**
66475
+ * How many of this daemon's documents nobody has measured: ingested before the check existed, or staged in a batch run that has not finished extracting. Unmeasured is NOT clean — while this is above 0, degradedCount is a floor, not a verdict, and the count drains itself as those documents are extracted.
66476
+ */
66297
66477
  unmeasuredCount: number
66298
66478
  }[]
66299
66479
 
@@ -89870,6 +90050,32 @@ color: (string | null)
89870
90050
  createdAt: string
89871
90051
  }
89872
90052
 
90053
+ export interface SupportLabelGetInput {
90054
+ /**
90055
+ * Label id
90056
+ */
90057
+ id: string
90058
+ }
90059
+
90060
+ export interface SupportLabelGetOutput {
90061
+ /**
90062
+ * Label id
90063
+ */
90064
+ id: string
90065
+ /**
90066
+ * Label name, unique within the product
90067
+ */
90068
+ name: string
90069
+ /**
90070
+ * Display colour as a hex string, or null if uncoloured
90071
+ */
90072
+ color: (string | null)
90073
+ /**
90074
+ * ISO-8601 creation timestamp
90075
+ */
90076
+ createdAt: string
90077
+ }
90078
+
89873
90079
  export interface SupportLabelListInput {
89874
90080
 
89875
90081
  }
@@ -89985,10 +90191,97 @@ contentType: string
89985
90191
  */
89986
90192
  downloadUrl: string
89987
90193
  }[]
90194
+ /**
90195
+ * The same files as a flat list of ids, in the order attachments[] has them. This is the value support_message_create takes back; attachments.0.id names only the first file
90196
+ */
90197
+ attachmentIds: string[]
89988
90198
  /**
89989
90199
  * The agent author, or null when the external end user wrote the message
89990
90200
  */
89991
90201
  authorAgentId: (string | null)
90202
+ /**
90203
+ * How many files this message carries, 0 when it carries none. A dot-path has no length, so this is the only way a step can branch on whether there are files at all — and a message may carry a file and no body, so it is what tells those two messages apart
90204
+ */
90205
+ attachmentCount: number
90206
+ /**
90207
+ * The external author, or null when an agent wrote the message
90208
+ */
90209
+ authorExternalId: (string | null)
90210
+ }
90211
+
90212
+ export interface SupportMessageGetInput {
90213
+ /**
90214
+ * Message id
90215
+ */
90216
+ id: string
90217
+ }
90218
+
90219
+ export interface SupportMessageGetOutput {
90220
+ /**
90221
+ * Message id
90222
+ */
90223
+ id: string
90224
+ /**
90225
+ * The message text, byte-identical to what was stored
90226
+ */
90227
+ body: string
90228
+ /**
90229
+ * Thread this message belongs to
90230
+ */
90231
+ threadId: string
90232
+ /**
90233
+ * ISO-8601 creation timestamp
90234
+ */
90235
+ createdAt: string
90236
+ /**
90237
+ * inbound: written by the external end user. outbound: written by support, going out to them
90238
+ */
90239
+ direction: ("inbound" | "outbound")
90240
+ /**
90241
+ * public: part of the conversation the external end user sees. internal: a note between agents that never leaves the support contour
90242
+ */
90243
+ visibility: ("public" | "internal")
90244
+ /**
90245
+ * Files this message carries, each with a freshly signed download URL. Empty when there are none. Attachments whose upload was never confirmed are never listed here
90246
+ */
90247
+ attachments: {
90248
+ /**
90249
+ * Attachment id
90250
+ */
90251
+ id: string
90252
+ /**
90253
+ * Display name of the file
90254
+ */
90255
+ fileName: string
90256
+ /**
90257
+ * ISO-8601 timestamp of when the attachment was created
90258
+ */
90259
+ createdAt: string
90260
+ /**
90261
+ * Size in bytes as reported by storage
90262
+ */
90263
+ sizeBytes: number
90264
+ /**
90265
+ * MIME type of the file
90266
+ */
90267
+ contentType: string
90268
+ /**
90269
+ * Short-lived signed URL to read the file. Re-read the message to get a fresh one
90270
+ */
90271
+ downloadUrl: string
90272
+ }[]
90273
+ /**
90274
+ * The same files as a flat list of ids, in the order attachments[] has them. This is the value support_message_create takes back; attachments.0.id names only the first file
90275
+ */
90276
+ attachmentIds: string[]
90277
+ /**
90278
+ * The agent author, or null when the external end user wrote the message
90279
+ */
90280
+ authorAgentId: (string | null)
90281
+ /**
90282
+ * How many files this message carries, 0 when it carries none. A dot-path has no length, so this is the only way a step can branch on whether there are files at all — and a message may carry a file and no body, so it is what tells those two messages apart
90283
+ */
90284
+ attachmentCount: number
89992
90285
  /**
89993
90286
  * The external author, or null when an agent wrote the message
89994
90287
  */
@@ -90092,10 +90385,18 @@ contentType: string
90092
90385
  */
90093
90386
  downloadUrl: string
90094
90387
  }[]
90388
+ /**
90389
+ * The same files as a flat list of ids, in the order attachments[] has them. This is the value support_message_create takes back; attachments.0.id names only the first file
90390
+ */
90391
+ attachmentIds: string[]
90095
90392
  /**
90096
90393
  * The agent author, or null when the external end user wrote the message
90097
90394
  */
90098
90395
  authorAgentId: (string | null)
90396
+ /**
90397
+ * How many files this message carries, 0 when it carries none. A dot-path has no length, so this is the only way a step can branch on whether there are files at all — and a message may carry a file and no body, so it is what tells those two messages apart
90398
+ */
90399
+ attachmentCount: number
90099
90400
  /**
90100
90401
  * The external author, or null when an agent wrote the message
90101
90402
  */
@@ -90185,6 +90486,10 @@ archived: boolean
90185
90486
  */
90186
90487
  category: ("open" | "pending" | "resolved" | "closed")
90187
90488
  }
90489
+ /**
90490
+ * The same labels as a flat list of ids, in the order labels[] has them. This is the value support_thread_update takes back: a dot-path can name this whole set, while labels.0.id names only the first element
90491
+ */
90492
+ labelIds: string[]
90188
90493
  /**
90189
90494
  * Free-form client-owned JSON
90190
90495
  */
@@ -90207,6 +90512,10 @@ createdAt: string
90207
90512
  * ISO-8601 last-modification timestamp
90208
90513
  */
90209
90514
  updatedAt: string
90515
+ /**
90516
+ * The same labels as a flat list of names, in the order labels[] has them
90517
+ */
90518
+ labelNames: string[]
90210
90519
  /**
90211
90520
  * ISO-8601 timestamp of the last reply, or null while there are none
90212
90521
  */
@@ -90437,14 +90746,23 @@ enabled?: boolean
90437
90746
  * When to show the survey once the page matches
90438
90747
  */
90439
90748
  trigger: ({
90749
+ /**
90750
+ * An immediate trigger, with nothing else to set
90751
+ */
90440
90752
  kind: "immediate"
90441
90753
  } | {
90754
+ /**
90755
+ * A delayed trigger, which needs seconds
90756
+ */
90442
90757
  kind: "delay"
90443
90758
  /**
90444
90759
  * How long to wait after the page matched, in seconds (at most a day)
90445
90760
  */
90446
90761
  seconds: number
90447
90762
  } | {
90763
+ /**
90764
+ * An event trigger, which needs the event name
90765
+ */
90448
90766
  kind: "event"
90449
90767
  /**
90450
90768
  * An event in the client’s own runtime. This toolkit never sees it
@@ -93219,6 +93537,9 @@ value?: string
93219
93537
  }]
93220
93538
  }
93221
93539
 
93540
+ /**
93541
+ * One delivery rule: which pages get which survey, when, how often, and to whom
93542
+ */
93222
93543
  export interface SupportRuleCreateOutput {
93223
93544
  /**
93224
93545
  * Rule id
@@ -93232,6 +93553,9 @@ device: ("any" | "desktop" | "mobile")
93232
93553
  * Whether the rule is live
93233
93554
  */
93234
93555
  enabled: boolean
93556
+ /**
93557
+ * When the client’s runtime shows the survey once the page matches: immediately, after a delay, or on an event of its own
93558
+ */
93235
93559
  trigger: {
93236
93560
  /**
93237
93561
  * Which kind of trigger this is
@@ -93258,13 +93582,22 @@ urlMatch: {
93258
93582
  * exact: the whole URL, character for character. prefix: the URL starts with the value. contains: the value appears anywhere in the URL. regex: a JavaScript regular expression, applied unanchored — write ^ yourself if you mean the start
93259
93583
  */
93260
93584
  kind: ("exact" | "prefix" | "contains" | "regex")
93585
+ /**
93586
+ * What the URL is compared against, read according to kind
93587
+ */
93261
93588
  value: string
93262
93589
  }
93263
93590
  /**
93264
93591
  * ISO-8601 creation timestamp
93265
93592
  */
93266
93593
  createdAt: string
93594
+ /**
93595
+ * How often the same person may see this survey. The client’s runtime enforces it — this toolkit never sees the end user
93596
+ */
93267
93597
  frequency: {
93598
+ /**
93599
+ * once: show it a single time, ever. until_answered: keep showing it until they respond. always: show it every time the rule matches
93600
+ */
93268
93601
  kind: ("once" | "until_answered" | "always")
93269
93602
  /**
93270
93603
  * Days between showings, when set
@@ -96038,6 +96371,9 @@ export interface SupportRuleGetInput {
96038
96371
  id: string
96039
96372
  }
96040
96373
 
96374
+ /**
96375
+ * One delivery rule: which pages get which survey, when, how often, and to whom
96376
+ */
96041
96377
  export interface SupportRuleGetOutput {
96042
96378
  /**
96043
96379
  * Rule id
@@ -96051,6 +96387,9 @@ device: ("any" | "desktop" | "mobile")
96051
96387
  * Whether the rule is live
96052
96388
  */
96053
96389
  enabled: boolean
96390
+ /**
96391
+ * When the client’s runtime shows the survey once the page matches: immediately, after a delay, or on an event of its own
96392
+ */
96054
96393
  trigger: {
96055
96394
  /**
96056
96395
  * Which kind of trigger this is
@@ -96077,13 +96416,22 @@ urlMatch: {
96077
96416
  * exact: the whole URL, character for character. prefix: the URL starts with the value. contains: the value appears anywhere in the URL. regex: a JavaScript regular expression, applied unanchored — write ^ yourself if you mean the start
96078
96417
  */
96079
96418
  kind: ("exact" | "prefix" | "contains" | "regex")
96419
+ /**
96420
+ * What the URL is compared against, read according to kind
96421
+ */
96080
96422
  value: string
96081
96423
  }
96082
96424
  /**
96083
96425
  * ISO-8601 creation timestamp
96084
96426
  */
96085
96427
  createdAt: string
96428
+ /**
96429
+ * How often the same person may see this survey. The client’s runtime enforces it — this toolkit never sees the end user
96430
+ */
96086
96431
  frequency: {
96432
+ /**
96433
+ * once: show it a single time, ever. until_answered: keep showing it until they respond. always: show it every time the rule matches
96434
+ */
96087
96435
  kind: ("once" | "until_answered" | "always")
96088
96436
  /**
96089
96437
  * Days between showings, when set
@@ -98880,6 +99228,9 @@ device: ("any" | "desktop" | "mobile")
98880
99228
  * Whether the rule is live
98881
99229
  */
98882
99230
  enabled: boolean
99231
+ /**
99232
+ * When the client’s runtime shows the survey once the page matches: immediately, after a delay, or on an event of its own
99233
+ */
98883
99234
  trigger: {
98884
99235
  /**
98885
99236
  * Which kind of trigger this is
@@ -98906,13 +99257,22 @@ urlMatch: {
98906
99257
  * exact: the whole URL, character for character. prefix: the URL starts with the value. contains: the value appears anywhere in the URL. regex: a JavaScript regular expression, applied unanchored — write ^ yourself if you mean the start
98907
99258
  */
98908
99259
  kind: ("exact" | "prefix" | "contains" | "regex")
99260
+ /**
99261
+ * What the URL is compared against, read according to kind
99262
+ */
98909
99263
  value: string
98910
99264
  }
98911
99265
  /**
98912
99266
  * ISO-8601 creation timestamp
98913
99267
  */
98914
99268
  createdAt: string
99269
+ /**
99270
+ * How often the same person may see this survey. The client’s runtime enforces it — this toolkit never sees the end user
99271
+ */
98915
99272
  frequency: {
99273
+ /**
99274
+ * once: show it a single time, ever. until_answered: keep showing it until they respond. always: show it every time the rule matches
99275
+ */
98916
99276
  kind: ("once" | "until_answered" | "always")
98917
99277
  /**
98918
99278
  * Days between showings, when set
@@ -101683,14 +102043,23 @@ enabled?: boolean
101683
102043
  * The new trigger, replacing the old one
101684
102044
  */
101685
102045
  trigger?: ({
102046
+ /**
102047
+ * An immediate trigger, with nothing else to set
102048
+ */
101686
102049
  kind: "immediate"
101687
102050
  } | {
102051
+ /**
102052
+ * A delayed trigger, which needs seconds
102053
+ */
101688
102054
  kind: "delay"
101689
102055
  /**
101690
102056
  * How long to wait after the page matched, in seconds (at most a day)
101691
102057
  */
101692
102058
  seconds: number
101693
102059
  } | {
102060
+ /**
102061
+ * An event trigger, which needs the event name
102062
+ */
101694
102063
  kind: "event"
101695
102064
  /**
101696
102065
  * An event in the client’s own runtime. This toolkit never sees it
@@ -104461,6 +104830,9 @@ value?: string
104461
104830
  }]
104462
104831
  }
104463
104832
 
104833
+ /**
104834
+ * One delivery rule: which pages get which survey, when, how often, and to whom
104835
+ */
104464
104836
  export interface SupportRuleUpdateOutput {
104465
104837
  /**
104466
104838
  * Rule id
@@ -104474,6 +104846,9 @@ device: ("any" | "desktop" | "mobile")
104474
104846
  * Whether the rule is live
104475
104847
  */
104476
104848
  enabled: boolean
104849
+ /**
104850
+ * When the client’s runtime shows the survey once the page matches: immediately, after a delay, or on an event of its own
104851
+ */
104477
104852
  trigger: {
104478
104853
  /**
104479
104854
  * Which kind of trigger this is
@@ -104500,13 +104875,22 @@ urlMatch: {
104500
104875
  * exact: the whole URL, character for character. prefix: the URL starts with the value. contains: the value appears anywhere in the URL. regex: a JavaScript regular expression, applied unanchored — write ^ yourself if you mean the start
104501
104876
  */
104502
104877
  kind: ("exact" | "prefix" | "contains" | "regex")
104878
+ /**
104879
+ * What the URL is compared against, read according to kind
104880
+ */
104503
104881
  value: string
104504
104882
  }
104505
104883
  /**
104506
104884
  * ISO-8601 creation timestamp
104507
104885
  */
104508
104886
  createdAt: string
104887
+ /**
104888
+ * How often the same person may see this survey. The client’s runtime enforces it — this toolkit never sees the end user
104889
+ */
104509
104890
  frequency: {
104891
+ /**
104892
+ * once: show it a single time, ever. until_answered: keep showing it until they respond. always: show it every time the rule matches
104893
+ */
104510
104894
  kind: ("once" | "until_answered" | "always")
104511
104895
  /**
104512
104896
  * Days between showings, when set
@@ -107339,6 +107723,40 @@ archived: boolean
107339
107723
  category: ("open" | "pending" | "resolved" | "closed")
107340
107724
  }
107341
107725
 
107726
+ export interface SupportStatusGetInput {
107727
+ /**
107728
+ * Status id
107729
+ */
107730
+ id: string
107731
+ }
107732
+
107733
+ export interface SupportStatusGetOutput {
107734
+ /**
107735
+ * Status id
107736
+ */
107737
+ id: string
107738
+ /**
107739
+ * Status name, unique within the product
107740
+ */
107741
+ name: string
107742
+ /**
107743
+ * Display colour as a hex string
107744
+ */
107745
+ color: string
107746
+ /**
107747
+ * Sort order within the status dictionary
107748
+ */
107749
+ order: number
107750
+ /**
107751
+ * Archived statuses stay readable but are not offered as targets
107752
+ */
107753
+ archived: boolean
107754
+ /**
107755
+ * Lifecycle bucket the status belongs to
107756
+ */
107757
+ category: ("open" | "pending" | "resolved" | "closed")
107758
+ }
107759
+
107342
107760
  export interface SupportStatusListInput {
107343
107761
  /**
107344
107762
  * Also return archived statuses (default false)
@@ -107521,6 +107939,14 @@ required?: boolean
107521
107939
  * ISO-8601 last-modification timestamp
107522
107940
  */
107523
107941
  updatedAt: string
107942
+ /**
107943
+ * The same questions as a flat list of ids, in the order they are asked
107944
+ */
107945
+ questionIds: string[]
107946
+ /**
107947
+ * How many questions this survey asks — the same field support/survey.published carries, so a workflow built from the trigger and one built from a get-step bind one shape
107948
+ */
107949
+ questionCount: number
107524
107950
  }
107525
107951
 
107526
107952
  export interface SupportSurveyCreateInput {
@@ -107683,6 +108109,14 @@ required?: boolean
107683
108109
  * ISO-8601 last-modification timestamp
107684
108110
  */
107685
108111
  updatedAt: string
108112
+ /**
108113
+ * The same questions as a flat list of ids, in the order they are asked
108114
+ */
108115
+ questionIds: string[]
108116
+ /**
108117
+ * How many questions this survey asks — the same field support/survey.published carries, so a workflow built from the trigger and one built from a get-step bind one shape
108118
+ */
108119
+ questionCount: number
107686
108120
  }
107687
108121
 
107688
108122
  export interface SupportSurveyGetInput {
@@ -107778,6 +108212,14 @@ required?: boolean
107778
108212
  * ISO-8601 last-modification timestamp
107779
108213
  */
107780
108214
  updatedAt: string
108215
+ /**
108216
+ * The same questions as a flat list of ids, in the order they are asked
108217
+ */
108218
+ questionIds: string[]
108219
+ /**
108220
+ * How many questions this survey asks — the same field support/survey.published carries, so a workflow built from the trigger and one built from a get-step bind one shape
108221
+ */
108222
+ questionCount: number
107781
108223
  }
107782
108224
 
107783
108225
  export interface SupportSurveyListInput {
@@ -107893,6 +108335,14 @@ required?: boolean
107893
108335
  * ISO-8601 last-modification timestamp
107894
108336
  */
107895
108337
  updatedAt: string
108338
+ /**
108339
+ * The same questions as a flat list of ids, in the order they are asked
108340
+ */
108341
+ questionIds: string[]
108342
+ /**
108343
+ * How many questions this survey asks — the same field support/survey.published carries, so a workflow built from the trigger and one built from a get-step bind one shape
108344
+ */
108345
+ questionCount: number
107896
108346
  }[]
107897
108347
  }
107898
108348
 
@@ -107989,6 +108439,14 @@ required?: boolean
107989
108439
  * ISO-8601 last-modification timestamp
107990
108440
  */
107991
108441
  updatedAt: string
108442
+ /**
108443
+ * The same questions as a flat list of ids, in the order they are asked
108444
+ */
108445
+ questionIds: string[]
108446
+ /**
108447
+ * How many questions this survey asks — the same field support/survey.published carries, so a workflow built from the trigger and one built from a get-step bind one shape
108448
+ */
108449
+ questionCount: number
107992
108450
  }
107993
108451
 
107994
108452
  export interface SupportSurveyStatsInput {
@@ -108211,6 +108669,14 @@ required?: boolean
108211
108669
  * ISO-8601 last-modification timestamp
108212
108670
  */
108213
108671
  updatedAt: string
108672
+ /**
108673
+ * The same questions as a flat list of ids, in the order they are asked
108674
+ */
108675
+ questionIds: string[]
108676
+ /**
108677
+ * How many questions this survey asks — the same field support/survey.published carries, so a workflow built from the trigger and one built from a get-step bind one shape
108678
+ */
108679
+ questionCount: number
108214
108680
  }
108215
108681
 
108216
108682
  export interface SupportSurveyUpdateInput {
@@ -108377,6 +108843,14 @@ required?: boolean
108377
108843
  * ISO-8601 last-modification timestamp
108378
108844
  */
108379
108845
  updatedAt: string
108846
+ /**
108847
+ * The same questions as a flat list of ids, in the order they are asked
108848
+ */
108849
+ questionIds: string[]
108850
+ /**
108851
+ * How many questions this survey asks — the same field support/survey.published carries, so a workflow built from the trigger and one built from a get-step bind one shape
108852
+ */
108853
+ questionCount: number
108380
108854
  }
108381
108855
 
108382
108856
  export interface SupportThreadAssignInput {
@@ -108457,6 +108931,10 @@ archived: boolean
108457
108931
  */
108458
108932
  category: ("open" | "pending" | "resolved" | "closed")
108459
108933
  }
108934
+ /**
108935
+ * The same labels as a flat list of ids, in the order labels[] has them. This is the value support_thread_update takes back: a dot-path can name this whole set, while labels.0.id names only the first element
108936
+ */
108937
+ labelIds: string[]
108460
108938
  /**
108461
108939
  * Free-form client-owned JSON
108462
108940
  */
@@ -108479,6 +108957,10 @@ createdAt: string
108479
108957
  * ISO-8601 last-modification timestamp
108480
108958
  */
108481
108959
  updatedAt: string
108960
+ /**
108961
+ * The same labels as a flat list of names, in the order labels[] has them
108962
+ */
108963
+ labelNames: string[]
108482
108964
  /**
108483
108965
  * ISO-8601 timestamp of the last reply, or null while there are none
108484
108966
  */
@@ -108599,6 +109081,10 @@ archived: boolean
108599
109081
  */
108600
109082
  category: ("open" | "pending" | "resolved" | "closed")
108601
109083
  }
109084
+ /**
109085
+ * The same labels as a flat list of ids, in the order labels[] has them. This is the value support_thread_update takes back: a dot-path can name this whole set, while labels.0.id names only the first element
109086
+ */
109087
+ labelIds: string[]
108602
109088
  /**
108603
109089
  * Free-form client-owned JSON
108604
109090
  */
@@ -108621,6 +109107,10 @@ createdAt: string
108621
109107
  * ISO-8601 last-modification timestamp
108622
109108
  */
108623
109109
  updatedAt: string
109110
+ /**
109111
+ * The same labels as a flat list of names, in the order labels[] has them
109112
+ */
109113
+ labelNames: string[]
108624
109114
  /**
108625
109115
  * ISO-8601 timestamp of the last reply, or null while there are none
108626
109116
  */
@@ -108713,6 +109203,10 @@ archived: boolean
108713
109203
  */
108714
109204
  category: ("open" | "pending" | "resolved" | "closed")
108715
109205
  }
109206
+ /**
109207
+ * The same labels as a flat list of ids, in the order labels[] has them. This is the value support_thread_update takes back: a dot-path can name this whole set, while labels.0.id names only the first element
109208
+ */
109209
+ labelIds: string[]
108716
109210
  /**
108717
109211
  * Free-form client-owned JSON
108718
109212
  */
@@ -108735,6 +109229,10 @@ createdAt: string
108735
109229
  * ISO-8601 last-modification timestamp
108736
109230
  */
108737
109231
  updatedAt: string
109232
+ /**
109233
+ * The same labels as a flat list of names, in the order labels[] has them
109234
+ */
109235
+ labelNames: string[]
108738
109236
  /**
108739
109237
  * ISO-8601 timestamp of the last reply, or null while there are none
108740
109238
  */
@@ -108887,6 +109385,10 @@ archived: boolean
108887
109385
  */
108888
109386
  category: ("open" | "pending" | "resolved" | "closed")
108889
109387
  }
109388
+ /**
109389
+ * The same labels as a flat list of ids, in the order labels[] has them. This is the value support_thread_update takes back: a dot-path can name this whole set, while labels.0.id names only the first element
109390
+ */
109391
+ labelIds: string[]
108890
109392
  /**
108891
109393
  * Free-form client-owned JSON
108892
109394
  */
@@ -108909,6 +109411,10 @@ createdAt: string
108909
109411
  * ISO-8601 last-modification timestamp
108910
109412
  */
108911
109413
  updatedAt: string
109414
+ /**
109415
+ * The same labels as a flat list of names, in the order labels[] has them
109416
+ */
109417
+ labelNames: string[]
108912
109418
  /**
108913
109419
  * ISO-8601 timestamp of the last reply, or null while there are none
108914
109420
  */
@@ -109006,6 +109512,10 @@ archived: boolean
109006
109512
  */
109007
109513
  category: ("open" | "pending" | "resolved" | "closed")
109008
109514
  }
109515
+ /**
109516
+ * The same labels as a flat list of ids, in the order labels[] has them. This is the value support_thread_update takes back: a dot-path can name this whole set, while labels.0.id names only the first element
109517
+ */
109518
+ labelIds: string[]
109009
109519
  /**
109010
109520
  * Free-form client-owned JSON
109011
109521
  */
@@ -109028,6 +109538,10 @@ createdAt: string
109028
109538
  * ISO-8601 last-modification timestamp
109029
109539
  */
109030
109540
  updatedAt: string
109541
+ /**
109542
+ * The same labels as a flat list of names, in the order labels[] has them
109543
+ */
109544
+ labelNames: string[]
109031
109545
  /**
109032
109546
  * ISO-8601 timestamp of the last reply, or null while there are none
109033
109547
  */
@@ -109140,6 +109654,10 @@ archived: boolean
109140
109654
  */
109141
109655
  category: ("open" | "pending" | "resolved" | "closed")
109142
109656
  }
109657
+ /**
109658
+ * The same labels as a flat list of ids, in the order labels[] has them. This is the value support_thread_update takes back: a dot-path can name this whole set, while labels.0.id names only the first element
109659
+ */
109660
+ labelIds: string[]
109143
109661
  /**
109144
109662
  * Free-form client-owned JSON
109145
109663
  */
@@ -109162,6 +109680,10 @@ createdAt: string
109162
109680
  * ISO-8601 last-modification timestamp
109163
109681
  */
109164
109682
  updatedAt: string
109683
+ /**
109684
+ * The same labels as a flat list of names, in the order labels[] has them
109685
+ */
109686
+ labelNames: string[]
109165
109687
  /**
109166
109688
  * ISO-8601 timestamp of the last reply, or null while there are none
109167
109689
  */