@lepsto/sdk-app 90.2.0 → 91.0.1

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 (35) hide show
  1. package/CHANGELOG.md +4 -17
  2. package/dist/_types/gen/client.gen.d.ts +1 -44
  3. package/dist/_types/gen/manifest.gen.d.ts +1 -1
  4. package/dist/_types/gen/types.gen.d.ts +37 -820
  5. package/dist/_types/gen/users/index.d.ts +1 -1
  6. package/dist/_types/gen/users/queryOptions.gen.d.ts +1 -17
  7. package/dist/index.cjs +0 -393
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.js +11312 -30
  10. package/dist/index.js.map +1 -1
  11. package/dist/users/index.cjs +0 -20
  12. package/dist/users/index.cjs.map +1 -1
  13. package/dist/users/index.js +1 -17
  14. package/dist/users/index.js.map +1 -1
  15. package/package.json +2 -12
  16. package/src/gen/bindings.gen.ts +1 -374
  17. package/src/gen/client.gen.ts +0 -85
  18. package/src/gen/manifest.gen.ts +1 -29
  19. package/src/gen/types.gen.ts +37 -874
  20. package/src/gen/users/index.ts +1 -1
  21. package/src/gen/users/queryOptions.gen.ts +0 -25
  22. package/dist/_types/gen/playground/connect.gen.d.ts +0 -3
  23. package/dist/_types/gen/playground/index.d.ts +0 -3
  24. package/dist/_types/gen/playground/queryOptions.gen.d.ts +0 -70
  25. package/dist/chunk-VHBBS4OY.js +0 -11689
  26. package/dist/chunk-VHBBS4OY.js.map +0 -1
  27. package/dist/playground/index.cjs +0 -106
  28. package/dist/playground/index.cjs.map +0 -1
  29. package/dist/playground/index.d.cts +0 -1
  30. package/dist/playground/index.d.ts +0 -1
  31. package/dist/playground/index.js +0 -78
  32. package/dist/playground/index.js.map +0 -1
  33. package/src/gen/playground/connect.gen.ts +0 -9
  34. package/src/gen/playground/index.ts +0 -4
  35. package/src/gen/playground/queryOptions.gen.ts +0 -119
@@ -91106,378 +91106,6 @@ export interface OrganizationYoutubeInstallOutput {
91106
91106
  url: string
91107
91107
  }
91108
91108
 
91109
- export interface PlaygroundAnalyticsOverviewInput {
91110
- /**
91111
- * Max records per entity in recent[]; omit for the endpoint default
91112
- */
91113
- limit?: number
91114
- }
91115
-
91116
- export interface PlaygroundAnalyticsOverviewOutput {
91117
- ok: boolean
91118
- minted: boolean
91119
- overview?: unknown
91120
- http_status: number
91121
- }
91122
-
91123
- export interface PlaygroundBillingEntitlementsInput {
91124
-
91125
- }
91126
-
91127
- export interface PlaygroundBillingEntitlementsOutput {
91128
- ok: boolean
91129
- minted: boolean
91130
- http_status: number
91131
- entitlements?: unknown
91132
- }
91133
-
91134
- export interface PlaygroundBillingRecordUsageInput {
91135
- /**
91136
- * Quantity of events to record against playground-events (SUM); defaults to 1
91137
- */
91138
- value?: number
91139
- }
91140
-
91141
- export interface PlaygroundBillingRecordUsageOutput {
91142
- minted: boolean
91143
- accepted: (number | null)
91144
- recorded: boolean
91145
- duplicates: (number | null)
91146
- http_status: number
91147
- }
91148
-
91149
- export interface PlaygroundClickupCreateTaskInput {
91150
- /**
91151
- * Task title; defaults to a fixture label
91152
- */
91153
- name?: string
91154
- /**
91155
- * ClickUp list id; falls back to CLICKUP_TEST_LIST_ID
91156
- */
91157
- listId?: string
91158
- }
91159
-
91160
- export interface PlaygroundClickupCreateTaskOutput {
91161
- minted: boolean
91162
- task_id: (string | null)
91163
- list_status: number
91164
- vend_status: number
91165
- clickup_status: number
91166
- installation_count: number
91167
- }
91168
-
91169
- export interface PlaygroundClickupGetLastWebhookInput {
91170
-
91171
- }
91172
-
91173
- export type PlaygroundClickupGetLastWebhookOutput = ({
91174
- payload: string
91175
- event_id: string
91176
- provider: string
91177
- verified: boolean
91178
- product_id: string
91179
- occurred_at: string
91180
- connector_id: string
91181
- clickup_event: (string | null)
91182
- receipt_count: number
91183
- } | {
91184
- found: false
91185
- })
91186
-
91187
- export interface PlaygroundClickupGetOverviewInput {
91188
-
91189
- }
91190
-
91191
- export interface PlaygroundClickupGetOverviewOutput {
91192
- team: ({
91193
- teamId: string
91194
- teamName: string
91195
- } | null)
91196
- lists: PlaygroundClickupGetOverviewOutputItems[]
91197
- tasks: {
91198
- id: string
91199
- name: string
91200
- status: (string | null)
91201
- }[]
91202
- minted: boolean
91203
- spaces: PlaygroundClickupGetOverviewOutputItems[]
91204
- list_status: number
91205
- vend_status: number
91206
- lists_status: number
91207
- tasks_status: number
91208
- spaces_status: number
91209
- folders_status: number
91210
- installation_count: number
91211
- }
91212
- export interface PlaygroundClickupGetOverviewOutputItems {
91213
- id: string
91214
- name: string
91215
- }
91216
-
91217
- export interface PlaygroundEchoPingInput {
91218
- /**
91219
- * The text to echo back, 1–1024 characters
91220
- */
91221
- message: string
91222
- }
91223
-
91224
- export interface PlaygroundEchoPingOutput {
91225
- /**
91226
- * The message exactly as it was received
91227
- */
91228
- message: string
91229
- /**
91230
- * The product the call was resolved to
91231
- */
91232
- productId: string
91233
- /**
91234
- * ISO-8601 instant (UTC) at which the call reached the service
91235
- */
91236
- receivedAt: string
91237
- }
91238
-
91239
- export interface PlaygroundGdriveGetLastChangeInput {
91240
-
91241
- }
91242
-
91243
- export type PlaygroundGdriveGetLastChangeOutput = ({
91244
- file_id: string
91245
- removed: boolean
91246
- file_name: (string | null)
91247
- mime_type: (string | null)
91248
- product_id: string
91249
- occurred_at: string
91250
- connector_id: string
91251
- resource_state: string
91252
- } | {
91253
- found: false
91254
- })
91255
-
91256
- export interface PlaygroundGdriveReadFileInput {
91257
- /**
91258
- * Drive file id; falls back to GDRIVE_TEST_FILE_ID, then the first picked file
91259
- */
91260
- fileId?: string
91261
- }
91262
-
91263
- export interface PlaygroundGdriveReadFileOutput {
91264
- minted: boolean
91265
- file_id: (string | null)
91266
- file_name: (string | null)
91267
- mime_type: (string | null)
91268
- file_count: number
91269
- get_status: number
91270
- list_status: number
91271
- vend_status: number
91272
- content_bytes: (number | null)
91273
- }
91274
-
91275
- export interface PlaygroundGoogleadsReadCustomerInput {
91276
-
91277
- }
91278
-
91279
- export interface PlaygroundGoogleadsReadCustomerOutput {
91280
- minted: boolean
91281
- vended: boolean
91282
- customer_id: (string | null)
91283
- vend_status: number
91284
- result_count: number
91285
- search_status: number
91286
- login_customer_id: (string | null)
91287
- }
91288
-
91289
- export interface PlaygroundLifecycleGetStateInput {
91290
-
91291
- }
91292
-
91293
- export interface PlaygroundLifecycleGetStateOutput {
91294
- blocked: boolean
91295
- archived: boolean
91296
- productId: string
91297
- lastBlockTransition: ({
91298
- eventId: string
91299
- eventName: string
91300
- productId: string
91301
- occurredAt: string
91302
- recordedAt: string
91303
- receiptCount: number
91304
- organizationId: string
91305
- cascadedFromOrg: boolean
91306
- } | null)
91307
- lastArchiveTransition: ({
91308
- eventId: string
91309
- eventName: string
91310
- productId: string
91311
- occurredAt: string
91312
- recordedAt: string
91313
- receiptCount: number
91314
- organizationId: string
91315
- cascadedFromOrg: boolean
91316
- } | null)
91317
- }
91318
-
91319
- export interface PlaygroundLifecycleListEventsInput {
91320
-
91321
- }
91322
-
91323
- export type PlaygroundLifecycleListEventsOutput = {
91324
- eventId: string
91325
- eventName: string
91326
- productId: string
91327
- occurredAt: string
91328
- recordedAt: string
91329
- receiptCount: number
91330
- organizationId: string
91331
- cascadedFromOrg: boolean
91332
- }[]
91333
-
91334
- export interface PlaygroundWebhookGetLastInput {
91335
-
91336
- }
91337
-
91338
- export type PlaygroundWebhookGetLastOutput = ({
91339
- payload?: unknown
91340
- event_id: string
91341
- provider: string
91342
- verified: boolean
91343
- product_id: string
91344
- occurred_at: string
91345
- connector_id: string
91346
- delivery_count: number
91347
- } | {
91348
- found: false
91349
- })
91350
-
91351
- export interface PlaygroundWorkflowEchoInput {
91352
- /**
91353
- * The text to store, 1–1024 characters
91354
- */
91355
- note: string
91356
- /**
91357
- * Optional labels stored alongside the note, at most 20
91358
- *
91359
- * @maxItems 20
91360
- */
91361
- tags?: []|[string]|[string, string]|[string, string, string]|[string, string, string, string]|[string, string, string, string, string]|[string, string, string, string, string, string]|[string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]
91362
- }
91363
-
91364
- export interface PlaygroundWorkflowEchoOutput {
91365
- /**
91366
- * Identifier of the stored echo
91367
- */
91368
- id: string
91369
- /**
91370
- * The note exactly as it was received
91371
- */
91372
- note: string
91373
- /**
91374
- * The tags exactly as they were received
91375
- */
91376
- tags: string[]
91377
- /**
91378
- * Correlation id for this echo. The playground/workflow.echoed event published about two seconds later repeats it, which is how a composer matches the completion back to this step.
91379
- */
91380
- echo_id: string
91381
- /**
91382
- * ISO-8601 instant (UTC) at which the echo was stored
91383
- */
91384
- received_at: string
91385
- }
91386
-
91387
- export interface PlaygroundWorkflowEchoListInput {
91388
-
91389
- }
91390
-
91391
- export type PlaygroundWorkflowEchoListOutput = {
91392
- /**
91393
- * Identifier of the stored echo
91394
- */
91395
- id: string
91396
- /**
91397
- * The note exactly as it was received
91398
- */
91399
- note: string
91400
- /**
91401
- * The tags exactly as they were received
91402
- */
91403
- tags: string[]
91404
- /**
91405
- * ISO-8601 instant (UTC) at which the echo was stored
91406
- */
91407
- received_at: string
91408
- }[]
91409
-
91410
- export interface PlaygroundWorkflowPingInput {
91411
- /**
91412
- * Class of ping, echoed on the emitted event and filterable on the trigger. Defaults to 'manual'.
91413
- */
91414
- kind?: string
91415
- }
91416
-
91417
- export interface PlaygroundWorkflowPingOutput {
91418
- /**
91419
- * Correlation id for this ping. The emitted playground/workflow.ping event repeats it, which is how a composer matches the event back to this step.
91420
- */
91421
- id: string
91422
- /**
91423
- * The name of the event that was published
91424
- */
91425
- event: string
91426
- }
91427
-
91428
- export interface PlaygroundWorkflowSubjectsListInput {
91429
- /**
91430
- * How many subjects to return, 1–100. Defaults to 25.
91431
- */
91432
- limit?: number
91433
- /**
91434
- * The next_cursor of the previous page. Opaque — pass it back unchanged. Omit for the first page.
91435
- */
91436
- cursor?: string
91437
- /**
91438
- * ISO-8601 UTC instant. Return only subjects whose last_activity_at is AT OR AFTER this — the opposite question, the recently active population. Omit for no lower bound.
91439
- */
91440
- last_activity_after?: string
91441
- /**
91442
- * ISO-8601 UTC instant. Return only subjects whose last_activity_at is AT OR BEFORE this — the "inactive for N days" question: pass now minus N days. Omit for no upper bound.
91443
- */
91444
- last_activity_before?: string
91445
- }
91446
-
91447
- export interface PlaygroundWorkflowSubjectsListOutput {
91448
- /**
91449
- * This page of subjects, most recently active first
91450
- */
91451
- items: {
91452
- /**
91453
- * Stable identifier for the subject. This is the field a batch trigger keys on, so a subject already served in an earlier run is skipped rather than served twice.
91454
- */
91455
- subject_key: string
91456
- /**
91457
- * Human-readable name of the subject
91458
- */
91459
- display_name: string
91460
- /**
91461
- * ISO-8601 instant (UTC) of the subject last activity
91462
- */
91463
- last_activity_at: string
91464
- }[]
91465
- /**
91466
- * Whether another page follows. False and a null next_cursor both mark the last page, so a consumer that loops on either terminates.
91467
- */
91468
- has_more: boolean
91469
- /**
91470
- * Pass back as `cursor` to fetch the next page; null on the last page. Always null when has_more is false.
91471
- */
91472
- next_cursor: (string | null)
91473
- }
91474
-
91475
- export interface PlaygroundWsEchoInput {
91476
-
91477
- }
91478
-
91479
- export type PlaygroundWsEchoOutput = unknown;
91480
-
91481
91109
  export interface RealtimeArchiveExportInput {
91482
91110
  /**
91483
91111
  * Only entries with ts <= to_ts (epoch ms)
@@ -115799,9 +115427,9 @@ export interface UsersApikeysCreateInput {
115799
115427
  */
115800
115428
  name: string
115801
115429
  /**
115802
- * 'publishable' mints a non-secret key (upk_…) that identifies this product in browser flows and stays readable. It is the only key type: the secret server key (usk_…) is retired.
115430
+ * 'server' mints a SECRET key (usk_…) for the Product's backend returned exactly once and stored hashed. 'publishable' mints a non-secret key (upk_…) that identifies this product in browser flows and stays readable.
115803
115431
  */
115804
- type: "publishable"
115432
+ type: ("server" | "publishable")
115805
115433
  }
115806
115434
 
115807
115435
  export interface UsersApikeysCreateOutput {
@@ -115818,15 +115446,15 @@ key: string
115818
115446
  */
115819
115447
  name: string
115820
115448
  /**
115821
- * `publishable` a browser-safe key (upk_…). It is the only type.
115449
+ * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
115822
115450
  */
115823
- type: "publishable"
115451
+ type: ("server" | "publishable")
115824
115452
  /**
115825
- * The full value of the key, which is not a secret and stays readable.
115453
+ * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
115826
115454
  */
115827
115455
  value: (string | null)
115828
115456
  /**
115829
- * `upk_` plus six characters — enough to recognise a key, never to use one.
115457
+ * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
115830
115458
  */
115831
115459
  prefix: string
115832
115460
  /**
@@ -115856,15 +115484,15 @@ id: string
115856
115484
  */
115857
115485
  name: string
115858
115486
  /**
115859
- * `publishable` a browser-safe key (upk_…). It is the only type.
115487
+ * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
115860
115488
  */
115861
- type: "publishable"
115489
+ type: ("server" | "publishable")
115862
115490
  /**
115863
- * The full value of the key, which is not a secret and stays readable.
115491
+ * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
115864
115492
  */
115865
115493
  value: (string | null)
115866
115494
  /**
115867
- * `upk_` plus six characters — enough to recognise a key, never to use one.
115495
+ * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
115868
115496
  */
115869
115497
  prefix: string
115870
115498
  /**
@@ -115892,15 +115520,15 @@ id: string
115892
115520
  */
115893
115521
  name: string
115894
115522
  /**
115895
- * `publishable` a browser-safe key (upk_…). It is the only type.
115523
+ * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
115896
115524
  */
115897
- type: "publishable"
115525
+ type: ("server" | "publishable")
115898
115526
  /**
115899
- * The full value of the key, which is not a secret and stays readable.
115527
+ * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
115900
115528
  */
115901
115529
  value: (string | null)
115902
115530
  /**
115903
- * `upk_` plus six characters — enough to recognise a key, never to use one.
115531
+ * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
115904
115532
  */
115905
115533
  prefix: string
115906
115534
  /**
@@ -116066,7 +115694,7 @@ from: (string | null)
116066
115694
  */
116067
115695
  codeEnabled: boolean
116068
115696
  /**
116069
- * Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
115697
+ * Base URL magic links point at, e.g. "https://public.lessly.com/{productId}/users". Null uses the deployment default.
116070
115698
  */
116071
115699
  linkBaseUrl: (string | null)
116072
115700
  /**
@@ -116190,7 +115818,7 @@ successMessage: string
116190
115818
  */
116191
115819
  doubleOptIn: boolean
116192
115820
  /**
116193
- * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lepsto Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
115821
+ * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lessly Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
116194
115822
  */
116195
115823
  retentionDays: number
116196
115824
  /**
@@ -116361,7 +115989,7 @@ from?: (string | null)
116361
115989
  */
116362
115990
  codeEnabled?: boolean
116363
115991
  /**
116364
- * Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
115992
+ * Base URL magic links point at, e.g. "https://public.lessly.com/{productId}/users". Null uses the deployment default.
116365
115993
  */
116366
115994
  linkBaseUrl?: (string | null)
116367
115995
  /**
@@ -116531,7 +116159,7 @@ successMessage?: string
116531
116159
  */
116532
116160
  doubleOptIn?: boolean
116533
116161
  /**
116534
- * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lepsto Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
116162
+ * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lessly Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
116535
116163
  */
116536
116164
  retentionDays?: number
116537
116165
  /**
@@ -116744,7 +116372,7 @@ from: (string | null)
116744
116372
  */
116745
116373
  codeEnabled: boolean
116746
116374
  /**
116747
- * Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
116375
+ * Base URL magic links point at, e.g. "https://public.lessly.com/{productId}/users". Null uses the deployment default.
116748
116376
  */
116749
116377
  linkBaseUrl: (string | null)
116750
116378
  /**
@@ -116868,7 +116496,7 @@ successMessage: string
116868
116496
  */
116869
116497
  doubleOptIn: boolean
116870
116498
  /**
116871
- * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lepsto Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
116499
+ * How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lessly Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
116872
116500
  */
116873
116501
  retentionDays: number
116874
116502
  /**
@@ -117213,11 +116841,11 @@ finishedAt: string
117213
116841
  */
117214
116842
  waitlistRetentionDays: number
117215
116843
  /**
117216
- * What Lepsto PUBLISHED, in its Privacy Policy §6: a waitlist address that never converted is deleted 6 months from sign-up. It rides along so the window above can be read against the promise it came from, rather than as a number with no provenance.
116844
+ * What Lessly PUBLISHED, in its Privacy Policy §6: a waitlist address that never converted is deleted 6 months from sign-up. It rides along so the window above can be read against the promise it came from, rather than as a number with no provenance.
117217
116845
  */
117218
116846
  waitlistPromisedMaxDays: number
117219
116847
  /**
117220
- * True when this product configured a window WIDER than the published 180 days. Nothing refuses such a value and nothing clamps it — §6 is Lepsto’s own policy and a client Product answers to its own, under which a longer window may be perfectly lawful. This flag exists INSTEAD of that ceiling: a deliberate divergence from what Lepsto published must be diagnosable in one call rather than found by comparing two numbers nobody thought to compare.
116848
+ * True when this product configured a window WIDER than the published 180 days. Nothing refuses such a value and nothing clamps it — §6 is Lessly’s own policy and a client Product answers to its own, under which a longer window may be perfectly lawful. This flag exists INSTEAD of that ceiling: a deliberate divergence from what Lessly published must be diagnosable in one call rather than found by comparing two numbers nobody thought to compare.
117221
116849
  */
117222
116850
  waitlistWiderThanPromised: boolean
117223
116851
  }
@@ -117678,7 +117306,7 @@ refreshReuseDetected: number
117678
117306
  */
117679
117307
  since: string
117680
117308
  /**
117681
- * Point-in-time directory populations by DERIVED status — `user` has no status column, these are computed from `kind`, `waitlisted` and the ban/delete/erase timestamps.
117309
+ * Point-in-time directory populations by DERIVED status — `user` has no status column, these are computed from `waitlisted` and the ban/delete/erase timestamps.
117682
117310
  */
117683
117311
  users: {
117684
117312
  /**
@@ -117686,7 +117314,7 @@ users: {
117686
117314
  */
117687
117315
  total: number
117688
117316
  /**
117689
- * Full accounts: kind 'account', not waitlisted, not banned, not deleted, not erased.
117317
+ * Full accounts: not waitlisted, not banned, not deleted, not erased.
117690
117318
  */
117691
117319
  active: number
117692
117320
  /**
@@ -117701,10 +117329,6 @@ erased: number
117701
117329
  * SOFT-deleted and still recoverable — not erased.
117702
117330
  */
117703
117331
  deleted: number
117704
- /**
117705
- * People the Product knows who have no credential and have never signed in (kind 'contact'), excluding deleted and erased ones. Never part of `active`, and never billed as retained users.
117706
- */
117707
- contacts: number
117708
117332
  /**
117709
117333
  * Waitlist signups with no credential yet.
117710
117334
  */
@@ -117759,251 +117383,6 @@ createdInWindow: number
117759
117383
  }
117760
117384
  }
117761
117385
 
117762
- export interface UsersTouchesCreateInput {
117763
- /**
117764
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
117765
- */
117766
- body: string
117767
- /**
117768
- * The end user this interaction was with.
117769
- */
117770
- userId: string
117771
- /**
117772
- * How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
117773
- */
117774
- channel: ("message" | "call" | "meeting" | "note" | "email")
117775
- /**
117776
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
117777
- */
117778
- direction: ("outbound" | "inbound" | "none")
117779
- /**
117780
- * When it happened (ISO 8601). Omit to mean now — pass it when logging after the fact, which may be any time in the past.
117781
- */
117782
- occurredAt?: string
117783
- }
117784
-
117785
- export interface UsersTouchesCreateOutput {
117786
- /**
117787
- * Id of this touch. Pass it to users_touches_update or _delete.
117788
- */
117789
- id: string
117790
- /**
117791
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
117792
- */
117793
- body: string
117794
- /**
117795
- * The end user this interaction was with.
117796
- */
117797
- userId: string
117798
- /**
117799
- * Id of the operator or agent that logged it, verbatim.
117800
- */
117801
- actorId: string
117802
- /**
117803
- * How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
117804
- */
117805
- channel: ("message" | "call" | "meeting" | "note" | "email")
117806
- /**
117807
- * Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
117808
- */
117809
- actorType: ("operator" | "agent")
117810
- /**
117811
- * When the touch was logged (ISO 8601).
117812
- */
117813
- createdAt: string
117814
- /**
117815
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
117816
- */
117817
- direction: ("outbound" | "inbound" | "none")
117818
- /**
117819
- * Product this touch belongs to. Never an input — it comes from the calling identity.
117820
- */
117821
- productId: string
117822
- /**
117823
- * When the touch was last edited (ISO 8601).
117824
- */
117825
- updatedAt: string
117826
- /**
117827
- * When the interaction happened (ISO 8601) — not when it was logged.
117828
- */
117829
- occurredAt: string
117830
- }
117831
-
117832
- export interface UsersTouchesDeleteInput {
117833
- /**
117834
- * Act on a touch somebody else logged. Without it a touch you did not author answers 404, exactly as a touch that does not exist does — the refusal must not tell you the row is there. Every forced call is recorded in the audit trail.
117835
- */
117836
- force?: boolean
117837
- /**
117838
- * The end user the touch belongs to.
117839
- */
117840
- userId: string
117841
- /**
117842
- * The touch to delete, from users_touches_list.
117843
- */
117844
- touchId: string
117845
- }
117846
-
117847
- export interface UsersTouchesDeleteOutput {
117848
- /**
117849
- * Id of the touch that was deleted.
117850
- */
117851
- id: string
117852
- /**
117853
- * The end user it belonged to.
117854
- */
117855
- userId: string
117856
- /**
117857
- * Always true — a failure answers 404 instead.
117858
- */
117859
- deleted: true
117860
- }
117861
-
117862
- export interface UsersTouchesListInput {
117863
- /**
117864
- * Page size, 1-100. Default 50.
117865
- */
117866
- limit?: number
117867
- /**
117868
- * Opaque cursor from a previous response's `nextCursor`. Omit for the first page.
117869
- */
117870
- cursor?: string
117871
- /**
117872
- * The end user whose touches to list.
117873
- */
117874
- userId: string
117875
- /**
117876
- * Only touches on this channel. Omit for all of them.
117877
- */
117878
- channel?: ("message" | "call" | "meeting" | "note" | "email")
117879
- }
117880
-
117881
- export interface UsersTouchesListOutput {
117882
- /**
117883
- * The page of touches, newest first.
117884
- */
117885
- items: {
117886
- /**
117887
- * Id of this touch. Pass it to users_touches_update or _delete.
117888
- */
117889
- id: string
117890
- /**
117891
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
117892
- */
117893
- body: string
117894
- /**
117895
- * The end user this interaction was with.
117896
- */
117897
- userId: string
117898
- /**
117899
- * Id of the operator or agent that logged it, verbatim.
117900
- */
117901
- actorId: string
117902
- /**
117903
- * How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
117904
- */
117905
- channel: ("message" | "call" | "meeting" | "note" | "email")
117906
- /**
117907
- * Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
117908
- */
117909
- actorType: ("operator" | "agent")
117910
- /**
117911
- * When the touch was logged (ISO 8601).
117912
- */
117913
- createdAt: string
117914
- /**
117915
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
117916
- */
117917
- direction: ("outbound" | "inbound" | "none")
117918
- /**
117919
- * Product this touch belongs to. Never an input — it comes from the calling identity.
117920
- */
117921
- productId: string
117922
- /**
117923
- * When the touch was last edited (ISO 8601).
117924
- */
117925
- updatedAt: string
117926
- /**
117927
- * When the interaction happened (ISO 8601) — not when it was logged.
117928
- */
117929
- occurredAt: string
117930
- }[]
117931
- /**
117932
- * Pass as `cursor` for the next page. Null when this was the last one.
117933
- */
117934
- nextCursor: (string | null)
117935
- }
117936
-
117937
- export interface UsersTouchesUpdateInput {
117938
- /**
117939
- * Replacement text, 1-8192 characters. Omit to leave it unchanged.
117940
- */
117941
- body?: string
117942
- /**
117943
- * Act on a touch somebody else logged. Without it a touch you did not author answers 404, exactly as a touch that does not exist does — the refusal must not tell you the row is there. Every forced call is recorded in the audit trail.
117944
- */
117945
- force?: boolean
117946
- /**
117947
- * The end user the touch belongs to.
117948
- */
117949
- userId: string
117950
- /**
117951
- * The touch to edit, from users_touches_list.
117952
- */
117953
- touchId: string
117954
- /**
117955
- * Correct when it happened (ISO 8601). Omit to leave it unchanged.
117956
- */
117957
- occurredAt?: string
117958
- }
117959
-
117960
- export interface UsersTouchesUpdateOutput {
117961
- /**
117962
- * Id of this touch. Pass it to users_touches_update or _delete.
117963
- */
117964
- id: string
117965
- /**
117966
- * What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
117967
- */
117968
- body: string
117969
- /**
117970
- * The end user this interaction was with.
117971
- */
117972
- userId: string
117973
- /**
117974
- * Id of the operator or agent that logged it, verbatim.
117975
- */
117976
- actorId: string
117977
- /**
117978
- * How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
117979
- */
117980
- channel: ("message" | "call" | "meeting" | "note" | "email")
117981
- /**
117982
- * Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
117983
- */
117984
- actorType: ("operator" | "agent")
117985
- /**
117986
- * When the touch was logged (ISO 8601).
117987
- */
117988
- createdAt: string
117989
- /**
117990
- * Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
117991
- */
117992
- direction: ("outbound" | "inbound" | "none")
117993
- /**
117994
- * Product this touch belongs to. Never an input — it comes from the calling identity.
117995
- */
117996
- productId: string
117997
- /**
117998
- * When the touch was last edited (ISO 8601).
117999
- */
118000
- updatedAt: string
118001
- /**
118002
- * When the interaction happened (ISO 8601) — not when it was logged.
118003
- */
118004
- occurredAt: string
118005
- }
118006
-
118007
117386
  export interface UsersUsersBanInput {
118008
117387
  /**
118009
117388
  * The opaque user id returned by users_users_create or _list.
@@ -118016,22 +117395,10 @@ export interface UsersUsersBanOutput {
118016
117395
  * Id of this end user. Pass it to any users_users_* tool.
118017
117396
  */
118018
117397
  id: string
118019
- /**
118020
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
118021
- */
118022
- kind: ("account" | "contact")
118023
117398
  /**
118024
117399
  * The user's display name. Null when nobody set one.
118025
117400
  */
118026
117401
  name: (string | null)
118027
- /**
118028
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
118029
- */
118030
- tags: string[]
118031
- /**
118032
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
118033
- */
118034
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118035
117402
  /**
118036
117403
  * When the user was banned (ISO 8601). Null while they are not banned.
118037
117404
  */
@@ -118079,7 +117446,7 @@ id: string
118079
117446
  /**
118080
117447
  * What kind of identifier this is. Today always `email`.
118081
117448
  */
118082
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117449
+ type: "email"
118083
117450
  /**
118084
117451
  * The address as the user typed it, for display.
118085
117452
  */
@@ -118101,10 +117468,6 @@ valueCanonical: string
118101
117468
  */
118102
117469
  verificationStatus: ("unverified" | "verified" | "expired")
118103
117470
  }[]
118104
- /**
118105
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
118106
- */
118107
- lastTouchAt: (string | null)
118108
117471
  /**
118109
117472
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118110
117473
  */
@@ -118139,10 +117502,6 @@ unsafeMetadata: {
118139
117502
  privateMetadata: {
118140
117503
  [k: string]: unknown
118141
117504
  }
118142
- /**
118143
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
118144
- */
118145
- mergedIntoUserId: (string | null)
118146
117505
  /**
118147
117506
  * Id of the primary identifier row. Null when there is no primary identifier.
118148
117507
  */
@@ -118154,22 +117513,10 @@ emailChangeLockedUntil: (string | null)
118154
117513
  }
118155
117514
 
118156
117515
  export interface UsersUsersCreateInput {
118157
- /**
118158
- * What kind of person to create. 'account' (the default) can sign in. 'contact' is somebody the Product knows who has NO credential — a contact may not carry `password`, `waitlisted` or `requiresReset` (`contact_cannot_hold_credentials`), is hidden from the default users_users_list view, and is never counted as a retained user. A contact becomes an account only by proving an address, never by an operator setting this.
118159
- */
118160
- kind?: ("account" | "contact")
118161
117516
  /**
118162
117517
  * The user's display name.
118163
117518
  */
118164
117519
  name?: string
118165
- /**
118166
- * Free labels for this person. Trimmed, lowercased and de-duplicated on write; at most 32 of at most 64 characters each.
118167
- */
118168
- tags?: string[]
118169
- /**
118170
- * The relationship stage to start them at, in funnel order: new, contacted, replied, engaged, converted, lost. Default 'new'.
118171
- */
118172
- stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118173
117520
  /**
118174
117521
  * URL of the user's avatar image.
118175
117522
  */
@@ -118200,7 +117547,7 @@ testUser?: boolean
118200
117547
  */
118201
117548
  waitlisted?: boolean
118202
117549
  /**
118203
- * How this user is reached: their email addresses, plus any contact channels (`phone`, `telegram`, `linkedin`, `x`). At least one is required.
117550
+ * The email addresses that reach this user. At least one is required.
118204
117551
  *
118205
117552
  * @minItems 1
118206
117553
  */
@@ -118208,13 +117555,13 @@ identifiers: [{
118208
117555
  /**
118209
117556
  * Identifier kind. Only 'email' exists in this phase.
118210
117557
  */
118211
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117558
+ type: "email"
118212
117559
  /**
118213
117560
  * The email address. Stored canonicalised (lowercase, NFC) plus raw for display.
118214
117561
  */
118215
117562
  value: string
118216
117563
  /**
118217
- * Record the identifier as already verified (use for trusted imports). IGNORED for contact channels, which are always stored unverified — nothing here can prove a phone or a handle. Only ONE verified copy of an email may exist per product; unverified duplicates are allowed. Default false.
117564
+ * Record the identifier as already verified (use for trusted imports). Only ONE verified copy of a value may exist per product; unverified duplicates are allowed. Default false.
118218
117565
  */
118219
117566
  verified?: boolean
118220
117567
  /**
@@ -118225,13 +117572,13 @@ isPrimary?: boolean
118225
117572
  /**
118226
117573
  * Identifier kind. Only 'email' exists in this phase.
118227
117574
  */
118228
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117575
+ type: "email"
118229
117576
  /**
118230
117577
  * The email address. Stored canonicalised (lowercase, NFC) plus raw for display.
118231
117578
  */
118232
117579
  value: string
118233
117580
  /**
118234
- * Record the identifier as already verified (use for trusted imports). IGNORED for contact channels, which are always stored unverified — nothing here can prove a phone or a handle. Only ONE verified copy of an email may exist per product; unverified duplicates are allowed. Default false.
117581
+ * Record the identifier as already verified (use for trusted imports). Only ONE verified copy of a value may exist per product; unverified duplicates are allowed. Default false.
118235
117582
  */
118236
117583
  verified?: boolean
118237
117584
  /**
@@ -118270,22 +117617,10 @@ export interface UsersUsersCreateOutput {
118270
117617
  * Id of this end user. Pass it to any users_users_* tool.
118271
117618
  */
118272
117619
  id: string
118273
- /**
118274
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
118275
- */
118276
- kind: ("account" | "contact")
118277
117620
  /**
118278
117621
  * The user's display name. Null when nobody set one.
118279
117622
  */
118280
117623
  name: (string | null)
118281
- /**
118282
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
118283
- */
118284
- tags: string[]
118285
- /**
118286
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
118287
- */
118288
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118289
117624
  /**
118290
117625
  * When the user was banned (ISO 8601). Null while they are not banned.
118291
117626
  */
@@ -118333,7 +117668,7 @@ id: string
118333
117668
  /**
118334
117669
  * What kind of identifier this is. Today always `email`.
118335
117670
  */
118336
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117671
+ type: "email"
118337
117672
  /**
118338
117673
  * The address as the user typed it, for display.
118339
117674
  */
@@ -118355,10 +117690,6 @@ valueCanonical: string
118355
117690
  */
118356
117691
  verificationStatus: ("unverified" | "verified" | "expired")
118357
117692
  }[]
118358
- /**
118359
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
118360
- */
118361
- lastTouchAt: (string | null)
118362
117693
  /**
118363
117694
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118364
117695
  */
@@ -118393,10 +117724,6 @@ unsafeMetadata: {
118393
117724
  privateMetadata: {
118394
117725
  [k: string]: unknown
118395
117726
  }
118396
- /**
118397
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
118398
- */
118399
- mergedIntoUserId: (string | null)
118400
117727
  /**
118401
117728
  * Id of the primary identifier row. Null when there is no primary identifier.
118402
117729
  */
@@ -118419,22 +117746,10 @@ export interface UsersUsersDeleteOutput {
118419
117746
  * Id of this end user. Pass it to any users_users_* tool.
118420
117747
  */
118421
117748
  id: string
118422
- /**
118423
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
118424
- */
118425
- kind: ("account" | "contact")
118426
117749
  /**
118427
117750
  * The user's display name. Null when nobody set one.
118428
117751
  */
118429
117752
  name: (string | null)
118430
- /**
118431
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
118432
- */
118433
- tags: string[]
118434
- /**
118435
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
118436
- */
118437
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118438
117753
  /**
118439
117754
  * When the user was banned (ISO 8601). Null while they are not banned.
118440
117755
  */
@@ -118482,7 +117797,7 @@ id: string
118482
117797
  /**
118483
117798
  * What kind of identifier this is. Today always `email`.
118484
117799
  */
118485
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117800
+ type: "email"
118486
117801
  /**
118487
117802
  * The address as the user typed it, for display.
118488
117803
  */
@@ -118504,10 +117819,6 @@ valueCanonical: string
118504
117819
  */
118505
117820
  verificationStatus: ("unverified" | "verified" | "expired")
118506
117821
  }[]
118507
- /**
118508
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
118509
- */
118510
- lastTouchAt: (string | null)
118511
117822
  /**
118512
117823
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118513
117824
  */
@@ -118542,10 +117853,6 @@ unsafeMetadata: {
118542
117853
  privateMetadata: {
118543
117854
  [k: string]: unknown
118544
117855
  }
118545
- /**
118546
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
118547
- */
118548
- mergedIntoUserId: (string | null)
118549
117856
  /**
118550
117857
  * Id of the primary identifier row. Null when there is no primary identifier.
118551
117858
  */
@@ -118557,10 +117864,6 @@ emailChangeLockedUntil: (string | null)
118557
117864
  }
118558
117865
 
118559
117866
  export interface UsersUsersExportInput {
118560
- /**
118561
- * Filter by kind: 'account' or 'contact'. Omit for accounts only, unless `includeContacts` is true.
118562
- */
118563
- kind?: ("account" | "contact")
118564
117867
  /**
118565
117868
  * Rows per page, 1-500. Default 100.
118566
117869
  */
@@ -118581,10 +117884,6 @@ status?: ("active" | "banned" | "waitlisted")
118581
117884
  * Include soft-deleted users. Default false.
118582
117885
  */
118583
117886
  includeDeleted?: boolean
118584
- /**
118585
- * Include CONTACTS alongside accounts, so one pass exports both. Default false — the same rule this export already applies to waitlist signups and test users.
118586
- */
118587
- includeContacts?: boolean
118588
117887
  }
118589
117888
 
118590
117889
  export interface UsersUsersExportOutput {
@@ -118594,22 +117893,10 @@ users: {
118594
117893
  * Id of this end user. Pass it to any users_users_* tool.
118595
117894
  */
118596
117895
  id: string
118597
- /**
118598
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
118599
- */
118600
- kind: ("account" | "contact")
118601
117896
  /**
118602
117897
  * The user's display name. Null when nobody set one.
118603
117898
  */
118604
117899
  name: (string | null)
118605
- /**
118606
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
118607
- */
118608
- tags: string[]
118609
- /**
118610
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
118611
- */
118612
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118613
117900
  /**
118614
117901
  * When the user was banned (ISO 8601). Null while they are not banned.
118615
117902
  */
@@ -118657,7 +117944,7 @@ id: string
118657
117944
  /**
118658
117945
  * What kind of identifier this is. Today always `email`.
118659
117946
  */
118660
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
117947
+ type: "email"
118661
117948
  /**
118662
117949
  * The address as the user typed it, for display.
118663
117950
  */
@@ -118679,10 +117966,6 @@ valueCanonical: string
118679
117966
  */
118680
117967
  verificationStatus: ("unverified" | "verified" | "expired")
118681
117968
  }[]
118682
- /**
118683
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
118684
- */
118685
- lastTouchAt: (string | null)
118686
117969
  /**
118687
117970
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118688
117971
  */
@@ -118717,10 +118000,6 @@ unsafeMetadata: {
118717
118000
  privateMetadata: {
118718
118001
  [k: string]: unknown
118719
118002
  }
118720
- /**
118721
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
118722
- */
118723
- mergedIntoUserId: (string | null)
118724
118003
  /**
118725
118004
  * Id of the primary identifier row. Null when there is no primary identifier.
118726
118005
  */
@@ -118746,22 +118025,10 @@ export interface UsersUsersGetOutput {
118746
118025
  * Id of this end user. Pass it to any users_users_* tool.
118747
118026
  */
118748
118027
  id: string
118749
- /**
118750
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
118751
- */
118752
- kind: ("account" | "contact")
118753
118028
  /**
118754
118029
  * The user's display name. Null when nobody set one.
118755
118030
  */
118756
118031
  name: (string | null)
118757
- /**
118758
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
118759
- */
118760
- tags: string[]
118761
- /**
118762
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
118763
- */
118764
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
118765
118032
  /**
118766
118033
  * When the user was banned (ISO 8601). Null while they are not banned.
118767
118034
  */
@@ -118809,7 +118076,7 @@ id: string
118809
118076
  /**
118810
118077
  * What kind of identifier this is. Today always `email`.
118811
118078
  */
118812
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
118079
+ type: "email"
118813
118080
  /**
118814
118081
  * The address as the user typed it, for display.
118815
118082
  */
@@ -118831,10 +118098,6 @@ valueCanonical: string
118831
118098
  */
118832
118099
  verificationStatus: ("unverified" | "verified" | "expired")
118833
118100
  }[]
118834
- /**
118835
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
118836
- */
118837
- lastTouchAt: (string | null)
118838
118101
  /**
118839
118102
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118840
118103
  */
@@ -118869,10 +118132,6 @@ unsafeMetadata: {
118869
118132
  privateMetadata: {
118870
118133
  [k: string]: unknown
118871
118134
  }
118872
- /**
118873
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
118874
- */
118875
- mergedIntoUserId: (string | null)
118876
118135
  /**
118877
118136
  * Id of the primary identifier row. Null when there is no primary identifier.
118878
118137
  */
@@ -118927,10 +118186,6 @@ userId: (string | null)
118927
118186
  * How many rows were passed over — an address already in the directory, typically.
118928
118187
  */
118929
118188
  skipped: number
118930
- /**
118931
- * How many of the CREATED users were contacts (`kind: 'contact'`). A row that was skipped or failed is not counted.
118932
- */
118933
- contacts: number
118934
118189
  /**
118935
118190
  * How many rows you submitted.
118936
118191
  */
@@ -118980,14 +118235,6 @@ expiresAt: string
118980
118235
  }
118981
118236
 
118982
118237
  export interface UsersUsersListInput {
118983
- /**
118984
- * Return only people carrying this tag. ONE tag, matched against the stored (lowercased) value and ANDed with the other filters.
118985
- */
118986
- tag?: string
118987
- /**
118988
- * Filter by kind: 'account' or 'contact'. Passing 'contact' is how you list contacts — they are hidden otherwise. Omit for accounts only, unless `includeContacts` is true.
118989
- */
118990
- kind?: ("account" | "contact")
118991
118238
  /**
118992
118239
  * Page size, 1-100. Default 25.
118993
118240
  */
@@ -118996,10 +118243,6 @@ limit?: number
118996
118243
  * Case-insensitive substring match against the user's identifiers (email) and name.
118997
118244
  */
118998
118245
  query?: string
118999
- /**
119000
- * Filter by relationship stage: new, contacted, replied, engaged, converted or lost. Omit for every stage.
119001
- */
119002
- stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
119003
118246
  /**
119004
118247
  * Opaque cursor from a previous response's `nextCursor`. Omit for the first page.
119005
118248
  */
@@ -119012,18 +118255,6 @@ status?: ("active" | "banned" | "waitlisted")
119012
118255
  * Include soft-deleted users. Default false — deleted users are hidden.
119013
118256
  */
119014
118257
  includeDeleted?: boolean
119015
- /**
119016
- * Only people whose most recent logged interaction happened at or after this instant (ISO 8601). People never touched are EXCLUDED by this filter — list without it to see everyone.
119017
- */
119018
- lastTouchAfter?: string
119019
- /**
119020
- * Include CONTACTS. Default false: a contact has no credential and has never signed in, so it is not part of the directory an operator browses — the same rule waitlist signups and test users follow. Use `kind: "contact"` to see only them.
119021
- */
119022
- includeContacts?: boolean
119023
- /**
119024
- * Only people whose most recent logged interaction happened before this instant (ISO 8601) — the "gone quiet" list. People never touched are EXCLUDED rather than treated as infinitely stale; list without this filter to see everyone.
119025
- */
119026
- lastTouchBefore?: string
119027
118258
  /**
119028
118259
  * Include TEST USERS. Default false: a test user is a fixture, not a customer — it is excluded from metering and from this listing for the same reason. Ask for it explicitly when you are debugging the fixtures themselves.
119029
118260
  */
@@ -119043,22 +118274,10 @@ users: {
119043
118274
  * Id of this end user. Pass it to any users_users_* tool.
119044
118275
  */
119045
118276
  id: string
119046
- /**
119047
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
119048
- */
119049
- kind: ("account" | "contact")
119050
118277
  /**
119051
118278
  * The user's display name. Null when nobody set one.
119052
118279
  */
119053
118280
  name: (string | null)
119054
- /**
119055
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
119056
- */
119057
- tags: string[]
119058
- /**
119059
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
119060
- */
119061
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
119062
118281
  /**
119063
118282
  * When the user was banned (ISO 8601). Null while they are not banned.
119064
118283
  */
@@ -119106,7 +118325,7 @@ id: string
119106
118325
  /**
119107
118326
  * What kind of identifier this is. Today always `email`.
119108
118327
  */
119109
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
118328
+ type: "email"
119110
118329
  /**
119111
118330
  * The address as the user typed it, for display.
119112
118331
  */
@@ -119128,10 +118347,6 @@ valueCanonical: string
119128
118347
  */
119129
118348
  verificationStatus: ("unverified" | "verified" | "expired")
119130
118349
  }[]
119131
- /**
119132
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
119133
- */
119134
- lastTouchAt: (string | null)
119135
118350
  /**
119136
118351
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
119137
118352
  */
@@ -119166,10 +118381,6 @@ unsafeMetadata: {
119166
118381
  privateMetadata: {
119167
118382
  [k: string]: unknown
119168
118383
  }
119169
- /**
119170
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
119171
- */
119172
- mergedIntoUserId: (string | null)
119173
118384
  /**
119174
118385
  * Id of the primary identifier row. Null when there is no primary identifier.
119175
118386
  */
@@ -119223,22 +118434,10 @@ export interface UsersUsersUnbanOutput {
119223
118434
  * Id of this end user. Pass it to any users_users_* tool.
119224
118435
  */
119225
118436
  id: string
119226
- /**
119227
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
119228
- */
119229
- kind: ("account" | "contact")
119230
118437
  /**
119231
118438
  * The user's display name. Null when nobody set one.
119232
118439
  */
119233
118440
  name: (string | null)
119234
- /**
119235
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
119236
- */
119237
- tags: string[]
119238
- /**
119239
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
119240
- */
119241
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
119242
118441
  /**
119243
118442
  * When the user was banned (ISO 8601). Null while they are not banned.
119244
118443
  */
@@ -119286,7 +118485,7 @@ id: string
119286
118485
  /**
119287
118486
  * What kind of identifier this is. Today always `email`.
119288
118487
  */
119289
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
118488
+ type: "email"
119290
118489
  /**
119291
118490
  * The address as the user typed it, for display.
119292
118491
  */
@@ -119308,10 +118507,6 @@ valueCanonical: string
119308
118507
  */
119309
118508
  verificationStatus: ("unverified" | "verified" | "expired")
119310
118509
  }[]
119311
- /**
119312
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
119313
- */
119314
- lastTouchAt: (string | null)
119315
118510
  /**
119316
118511
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
119317
118512
  */
@@ -119346,10 +118541,6 @@ unsafeMetadata: {
119346
118541
  privateMetadata: {
119347
118542
  [k: string]: unknown
119348
118543
  }
119349
- /**
119350
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
119351
- */
119352
- mergedIntoUserId: (string | null)
119353
118544
  /**
119354
118545
  * Id of the primary identifier row. Null when there is no primary identifier.
119355
118546
  */
@@ -119365,14 +118556,6 @@ export interface UsersUsersUpdateInput {
119365
118556
  * The user's display name. Pass null to clear.
119366
118557
  */
119367
118558
  name?: (string | null)
119368
- /**
119369
- * REPLACES the whole tag list — send every tag you want stored, not just the new ones. Trimmed, lowercased and de-duplicated on write.
119370
- */
119371
- tags?: string[]
119372
- /**
119373
- * Move the person to this relationship stage. A real change publishes `users/user.stage-changed`; a patch that changes ONLY the stage deliberately does not also publish `users/user.updated`, so a workflow that writes stages does not wake itself.
119374
- */
119375
- stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
119376
118559
  /**
119377
118560
  * The user to update.
119378
118561
  */
@@ -119420,22 +118603,10 @@ export interface UsersUsersUpdateOutput {
119420
118603
  * Id of this end user. Pass it to any users_users_* tool.
119421
118604
  */
119422
118605
  id: string
119423
- /**
119424
- * What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
119425
- */
119426
- kind: ("account" | "contact")
119427
118606
  /**
119428
118607
  * The user's display name. Null when nobody set one.
119429
118608
  */
119430
118609
  name: (string | null)
119431
- /**
119432
- * Free labels on this person, stored trimmed, lowercased and de-duplicated.
119433
- */
119434
- tags: string[]
119435
- /**
119436
- * The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
119437
- */
119438
- stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
119439
118610
  /**
119440
118611
  * When the user was banned (ISO 8601). Null while they are not banned.
119441
118612
  */
@@ -119483,7 +118654,7 @@ id: string
119483
118654
  /**
119484
118655
  * What kind of identifier this is. Today always `email`.
119485
118656
  */
119486
- type: ("email" | "phone" | "telegram" | "linkedin" | "x")
118657
+ type: "email"
119487
118658
  /**
119488
118659
  * The address as the user typed it, for display.
119489
118660
  */
@@ -119505,10 +118676,6 @@ valueCanonical: string
119505
118676
  */
119506
118677
  verificationStatus: ("unverified" | "verified" | "expired")
119507
118678
  }[]
119508
- /**
119509
- * When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
119510
- */
119511
- lastTouchAt: (string | null)
119512
118679
  /**
119513
118680
  * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
119514
118681
  */
@@ -119543,10 +118710,6 @@ unsafeMetadata: {
119543
118710
  privateMetadata: {
119544
118711
  [k: string]: unknown
119545
118712
  }
119546
- /**
119547
- * The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
119548
- */
119549
- mergedIntoUserId: (string | null)
119550
118713
  /**
119551
118714
  * Id of the primary identifier row. Null when there is no primary identifier.
119552
118715
  */