@tinkerlandai/longplay-sdk 0.10.8 → 0.10.13

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 (62) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +40 -4
  3. package/README.zh-CN.md +3 -1
  4. package/dist/{ai-usage-Btwg1nD7.d.ts → ai-usage-C-OZBxgW.d.ts} +1 -1
  5. package/dist/{api-5gAz4-Sb.d.ts → api-Bf_aRlXs.d.ts} +82 -0
  6. package/dist/chunk-33FQUT3Z.js +179 -0
  7. package/dist/chunk-3JDJD4NY.js +1 -0
  8. package/dist/chunk-ADSQZ7T3.js +1 -0
  9. package/dist/chunk-AHDMDMHB.js +1 -0
  10. package/dist/chunk-AY3DAC2V.js +4 -0
  11. package/dist/chunk-KQ4MS4LR.js +6 -0
  12. package/dist/chunk-OBZSDWLC.js +1 -0
  13. package/dist/chunk-OZZMZH7X.js +1 -0
  14. package/dist/chunk-RGWFBLW4.js +1 -0
  15. package/dist/chunk-RK6UEQF2.js +1 -0
  16. package/dist/chunk-VQBQAKJD.js +1 -0
  17. package/dist/chunk-VSJOHWDL.js +17 -0
  18. package/dist/chunk-VSMITXQD.js +1 -0
  19. package/dist/chunk-YT7TSF3I.js +1 -0
  20. package/dist/{configuration-sync-CywDxRkX.d.ts → configuration-sync-D2n_gGj6.d.ts} +1 -0
  21. package/dist/content-6JUK2IAJ.js +1 -0
  22. package/dist/{funnel-local-client-B4Z3dvNf.d.ts → funnel-local-client-DJq2K7an.d.ts} +8869 -93
  23. package/dist/{funnel-node-evaluation-P5B4fPfJ.d.ts → funnel-node-evaluation-CJSkUkbv.d.ts} +36 -0
  24. package/dist/{funnel-resource-client-BhbXsB2q.d.ts → funnel-process-client-C_UhTH8g.d.ts} +5132 -41
  25. package/dist/funnel-runtime-host-X5AMUCP2.js +1 -0
  26. package/dist/index.d.ts +102 -77
  27. package/dist/index.js +1 -1
  28. package/dist/native-shell.js +1 -1
  29. package/dist/openrouter.d.ts +2 -2
  30. package/dist/openrouter.js +1 -1
  31. package/dist/page.d.ts +1 -1
  32. package/dist/page.js +1 -1
  33. package/dist/paywall-KSTKKKEA.js +1 -0
  34. package/dist/popup.js +1 -1
  35. package/dist/react-native.d.ts +109 -106
  36. package/dist/react-native.js +1 -1
  37. package/dist/screen-renderer-NHJ6OQTF.js +1 -0
  38. package/dist/server.d.ts +10677 -25
  39. package/dist/server.js +1 -1
  40. package/dist/{visual-dom-OIXANRP3.js → visual-dom-7IF7ITAK.js} +1 -1
  41. package/dist/visual.js +1 -1
  42. package/package.json +10 -9
  43. package/dist/chunk-5JJZSH23.js +0 -179
  44. package/dist/chunk-5ZS3TNC4.js +0 -1
  45. package/dist/chunk-7DXL3LHT.js +0 -1
  46. package/dist/chunk-7XVAFQEE.js +0 -1
  47. package/dist/chunk-ACF2FBUB.js +0 -1
  48. package/dist/chunk-CBVZUTNH.js +0 -1
  49. package/dist/chunk-DCV6IS2Z.js +0 -4
  50. package/dist/chunk-EI2VRDYJ.js +0 -1
  51. package/dist/chunk-G56XGVMS.js +0 -1
  52. package/dist/chunk-GJRXHH6G.js +0 -1
  53. package/dist/chunk-R26BYN3U.js +0 -1
  54. package/dist/chunk-RP2P3FU4.js +0 -1
  55. package/dist/chunk-SBPTOOYB.js +0 -1
  56. package/dist/chunk-U4UEOR5W.js +0 -6
  57. package/dist/chunk-XSVQHPQT.js +0 -17
  58. package/dist/content-XXVHMKKL.js +0 -1
  59. package/dist/funnel-runtime-host-PBJ63LOE.js +0 -1
  60. package/dist/paywall-CDR4GZMX.js +0 -1
  61. package/dist/screen-renderer-NLB3FAQJ.js +0 -1
  62. /package/dist/{chunk-AK3IJ6FZ.js → chunk-OJM6ORHE.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.13 — 2026-11-03
4
+
5
+ - Keep Paywall confirmation and recovery available when presentation is replaced or disposed during an accepted purchase.
6
+ - Preserve Funnel commands and acknowledgements when hosts change before the shown response completes.
7
+ - Include the native commerce fixes from 0.10.12 in the unified six-language release; wire protocol stays `0.10`.
8
+
9
+ ## 0.10.12 — 2026-11-02
10
+
11
+ - Cancel native purchase operations after a definite store dismissal or decline; retain recovery for unknown results.
12
+ - Skip purchases owned by another App or Customer during native restore, and preserve Feature host initialization failures.
13
+ - Accept store product IDs containing underscores, dots and uppercase characters in public Paywall configuration across generated clients.
14
+ - Retain the deprecated native order recovery entry point as a no-op; merchant session restoration and backend recovery remain authoritative. Wire protocol stays `0.10`.
15
+
16
+ ## 0.10.11 — 2026-11-02
17
+
18
+ - Add opt-in managed Funnel processes: create or reuse a Guest and bind a verified login to the same Run, including accounts that already have a Customer.
19
+ - Preserve anonymous answers, accepted history, Run credentials and command recovery across login; keep commercial Customer ownership separate from the original Participant.
20
+ - Add the merchant backend's durable process adapter, Web/React Native process and IAM hosts, and Swift/Kotlin process bridges. Backend credentials stay outside the client and command journal.
21
+ - Retain original binding intents after lost replies, isolate account switches and revoke only the process's own session on logout. Existing Funnel Versions and wire protocol `0.10` are preserved.
22
+
23
+ ## 0.10.10 — 2026-11-01
24
+
25
+ - Preserve Funnel commands and purchase recovery through concurrent responses, failed persistence and native pending results; avoid stale Paywall quotes and leaked sessions.
26
+ - Fence refreshed credentials against account changes, coalesce configuration cache work and retain exact exposure and Messaging retry identities.
27
+ - Render native Content with the bundled renderer, report failed starts and return an explicit busy response when the native bridge is full.
28
+ - Cancel and release native HTTP streams promptly; keep Python and Go network waits outside session state locks.
29
+ - Classify invalid Android usage commands as request errors before invoking the merchant relay.
30
+
3
31
  ## 0.10.8 — 2026-11-01
4
32
 
5
33
  - Recover IAM entry background Waits and unknown starts after reload by replaying the original start request under the same Customer and build, without persisting credentials or allocating another Run.
package/README.md CHANGED
@@ -137,7 +137,7 @@ longplay.reset();
137
137
 
138
138
  The SDK refreshes its Access/Refresh pair directly with GOP. Access lasts at most one hour, Refresh at most 24 hours per rotation, within the original 30-day session limit. Successful rotation preserves the Customer identity and pending work; a definitive refresh refusal or expired Refresh Token clears the credentials and requires a new verified login. Business requests do not extend expiry or automatically replay after refresh. Revocation and issuer expiry still apply. See [Customer credentials](../../docs/customer-credentials.md).
139
139
 
140
- Customer updates are partial patches and do not use a Customer revision. When a Guest signs in to an existing Customer, the response reports `switched: true`. Resources and history keep their original owner; create a new Session/Funnel for the target Customer. Guest financial facts are not merged.
140
+ Customer updates are partial patches and do not use a Customer revision. Direct Guest claim reports `switched: true` when the account already has a Customer; legacy Runs keep their original Customer. Use the [managed process](#guest-entry-and-same-run-login) API when login must continue the current Funnel. Guest financial facts are not merged.
141
141
 
142
142
  ## Optional stable fingerprint
143
143
 
@@ -173,6 +173,40 @@ In a browser, use `createFunnelRunController` and `showFunnelRun`. The controlle
173
173
 
174
174
  Each Funnel chooses local or remote evaluation. `createFunnelDecisionClient` supports `configuration()`, `features()`, submission, and result reads. `createFeatureClient` identifies configuration by `generation`. Downloaded local rules are visible to clients; use remote evaluation and verified business facts for sensitive decisions.
175
175
 
176
+ ### Guest entry and same-Run login
177
+
178
+ Publish a Version with `executionContract: "funnel-process/1"` and use the managed process entry points. Existing Versions and `/funnels` retain their execution contract. This addition uses wire protocol `0.10` and requires the matching runtime and SQL deployment.
179
+
180
+ On the merchant backend, create `createFunnelProcessAdapter` from the `/server` entry. Supply the scoped Server Key, encrypted durable `store.read/compareAndSwap`, `resolveContext(request)` and `resolveUser(request)`. The context resolver validates an acknowledged HttpOnly/native handle and returns `{processKey, guestKey, confirmed: true}`. The user resolver verifies the merchant's live session and returns `{externalUserId}` or an explicit `null`; authentication failures must throw. Never take the account ID from an untrusted request field.
181
+
182
+ Expose the adapter's operation-specific calls through your backend. Keep Guest proofs, Customer sessions and the Server Key there. A shared `guestKey` reuses an eligible Guest across process handles; one `processKey` retains its original start, bind and recovery intents.
183
+
184
+ ```ts
185
+ import { createConfigurationSync, createFunnelProcess } from "@tinkerlandai/longplay-sdk";
186
+
187
+ const configuration = createConfigurationSync({
188
+ origin: baseUrl,
189
+ scope: { ...scope, environmentId },
190
+ });
191
+ const process = createFunnelProcess({
192
+ scope,
193
+ configuration,
194
+ adapter: merchantBridge,
195
+ onAuthenticationRequired: () => showMerchantSignIn(),
196
+ });
197
+ const { controller } = await process.open({
198
+ operation: "start", funnelId, locale: "en", parameters: {},
199
+ });
200
+ // After verified merchant login, retain this instance and controller.
201
+ await process.syncIdentity();
202
+ // Before merchant logout, revoke this process's session and clear its private view.
203
+ await process.detach();
204
+ ```
205
+
206
+ Local execution needs the shared public configuration manager and a published configuration. Login binds the current Run to the account's existing Customer without replacing the Run, answers, history, pinned Version or deadlines. A new account can claim the Guest Customer in place. Another account cannot take over a bound Run; use a new process handle. Commercial assets and historical Customer ownership are preserved.
207
+
208
+ Web IAM hosts opt in with `createIamFunnelProcessEntries`. React Native exports `createFunnelProcess`; Swift and Kotlin expose `LongplayFunnelProcess` and `LongplayFunnelProcessBridge` over the same merchant backend. Native hosts retain their command-storage adapter and presentation session across login. See the [identity contract](../../docs/funnel-customer-get-or-create.md#宿主接入) for storage, attribution and recovery details.
209
+
176
210
  ### Bucketing identity across independent consumers
177
211
 
178
212
  Funnel, standalone Features and page experiments evaluate independently. Matching App/environment, experiment definition, attributes, hash identity and Sticky state produce matching results; different refresh times or inputs may produce different variations. A Remote Funnel still evaluates on Longplay when its referenced code Experiment allows Local definition delivery. Accepted Funnel decisions retain their original results. There is no cross-feature result synchronization.
@@ -271,6 +305,8 @@ The server implements Customer/Guest identity, Entitlement checks, holdings and
271
305
 
272
306
  In Stripe environments, Longplay executes `longplay` mode; `record_only` returns instructions for the merchant backend to execute. Both record financial and Entitlement facts from verified Stripe evidence. Collecting a payment method does not itself charge, create an Invoice, or grant extra Entitlements. Quotes, confirmations, and reads retain their durable operation IDs; a request ID cannot be reused with different input.
273
307
 
308
+ Customer `claimCoupon`, `redeemCoupon`, `redeemReward` and `createReferralCode` retain their optional request-ID arguments. If a dispatched call fails, `LongplayError.commandRequestId` exposes the original command ID, including an automatically generated ID; `LongplayError.requestId` remains the HTTP trace ID. Retry the same method with that command ID and unchanged input, for example `longplay.claimCoupon(couponId, error.commandRequestId)`. For recovery across app crashes, generate and persist the command ID and input before the first call. The error does not establish whether the command was accepted.
309
+
274
310
  This beta does not certify complete commercial or production operation. Remaining service gaps include:
275
311
 
276
312
  - Subscription batch processing. Conflict queries and retries have services but still require a matching deployment and business prerequisites.
@@ -288,7 +324,7 @@ The server entry provides AI SDK usage middleware; the OpenRouter entry provides
288
324
 
289
325
  Publishing to npm does not deploy Web services, apply database migrations, or release Swift/Kotlin packages. Package installation, types, offline unit tests, and builds are recorded separately from real Auth/RLS, Stripe, native stores, browser checks, and hosted deployment acceptance.
290
326
 
291
- See the [SDK release ledger](https://github.com/tinkerlandai/Indiana/blob/main/docs/sdk-releases.md) for versions and immutable publication evidence, and the [developer documentation](https://longplayai.com/docs?lang=en) for integration guides.
327
+ See the [SDK release ledger](https://github.com/tinkerlandai/Indiana/blob/main/docs/sdk-releases.md) for versions and immutable publication evidence, and the [developer documentation](https://www.longplayai.com/docs) for integration guides.
292
328
 
293
329
  ## Shared public configuration
294
330
 
@@ -394,13 +430,13 @@ await entries.retry();
394
430
  entries.destroy();
395
431
  ```
396
432
 
397
- The host observes original button behavior, matches unique render/element guards and attempts automatic entries once per pathname visit. GOP selects the Funnel, checks entry publication, suppresses an existing Customer/Funnel Run and enforces the automatic-entry cooldown. With a full Customer Session, the host retains the original entry request and verified source target in tab-scoped `sessionStorage`. On reload it replays that exact request under the current Customer credential to recover the same Run, including background Waits and unresolved starts, without another Split allocation. Records are bound to API origin, App, environment, Customer and IAM release, and contain no Customer or Run credentials. Recovery waits for the original scene and also works when the accepted publication is paused or superseded. A bare-token session has no stable Customer binding and remains memory-only. Set `recoveryStorage: false` to disable persistence, or supply a `Storage` adapter; unavailable storage reports `recovery_unavailable`. When the page unloads, the host is destroyed or the Customer changes while a screen is shown, the host closes that Run (with `keepalive` on unload), so a later entry is not suppressed until the Run expires; Paywall, in-flight and background steps continue. When a Run is stopped from Console or expires, the host removes its UI and reports `run_ended`, whether the Run reads `closed` or its next command is refused with `FORBIDDEN`; a later trigger can then start again. An IAM binding supplies no Customer credential or business permission.
433
+ The host observes original button behavior, matches unique render/element guards and attempts automatic entries once per pathname visit. GOP selects the Funnel, checks entry publication, suppresses an existing Customer/Funnel Run and enforces the automatic-entry cooldown. With a full Customer Session, the host retains the original entry request and verified source target in tab-scoped `sessionStorage`. On reload it replays that exact request under the same logical Customer Session to recover the same Run, including background Waits and unresolved starts, without another Split allocation. The merchant must restore that session before installing the host, renew it with its Refresh Token, and isolate its credential storage by native account and App/environment. SDK credentials are memory-only by default; use `session.snapshot()` to retain the latest rotated pair and clear it on account/workspace changes or sign-out. Issuing a new session changes the Run credential derived for a replayed start. Records are bound to API origin, App, environment, Customer and IAM release, and contain no Customer or Run credentials. Recovery waits for the original scene and also works when the accepted publication is paused or superseded. A bare-token session has no stable Customer binding and remains memory-only. Set `recoveryStorage: false` to disable persistence, or supply a `Storage` adapter; unavailable storage reports `recovery_unavailable`. When the page unloads, the host is destroyed or the Customer changes while a screen is shown, the host closes that Run (with `keepalive` on unload), so a later entry is not suppressed until the Run expires; Paywall, in-flight and background steps continue. When a Run is stopped from Console or expires, the host removes its UI and reports `run_ended`, whether the Run reads `closed` or its next command is refused with `FORBIDDEN`; a later trigger can then start again. An IAM binding supplies no Customer credential or business permission.
398
434
 
399
435
  The entry scope is the route template plus render, covering every matching dynamic URL instance. Query/hash changes do not create a new visit. Supported anchor and inline-display changes recheck delayed scenes; hidden retained pages do not block the single active button. The clicked control itself must still be the unique active target; a replacement with the same selector cannot authorize an obsolete click. Multiple active targets remain refused. Configuration fetch/body reads default to a five-second deadline (`timeoutMs` overrides it), recover on the next 15-second poll, and discard late responses. Inspect `onStatus` for `identity_required`, `configuration_unavailable`, `incompatible` and `start_failed`. Definitively refused entries and accepted Runs whose first read is refused with a revoked credential allow the next matching entry in delivered order; transient read failures and pending unknown starts retain the original request for `retry()`. Automatic entries present at most once per pathname visit: entries matched while a Run is shown, or after it ends, wait for the next visit, so dismissal or completion never chains another Funnel. Explicit button clicks still start. A Run that is paused or waiting on a timer/event step stays hidden, reports `run_background` and no longer blocks other entries; it shows again when it has a screen and yields its slot when another Run mounts. Original button navigation continues, so full-page navigation can prevent presentation.
400
436
 
401
437
  An opted-in Split (`applyPageExperiment: true`) uses its accepted experiment variation for the merchant page. The entry host automatically shares `appManifestRelease` with `showFunnelRun`; manual hosts pass that option explicitly. `createFunnelPageExperiments({client, appManifestRelease})` is available for hosts without the standard UI. The consumer never rebuckets, reports use against the accepted receipt, and reverts on stop, completion or destruction. A separately installed visual consumer yields ownership of that experiment during the Run. This Web source feature requires matching GOP contracts and the IAM/Funnel database migration; installation alone does not promote runtime support.
402
438
 
403
- All eligible changesets are delivered within the visual payload's existing 100-item/2 MiB budget, with one assignment per accepted Split receipt and up to 100 assignments. More than 20 distinct assignments require the matching GOP response contract and SDK before the SQL is activated. Used-receipt requests keep their existing 20-ID limit. After a source upgrade, check **Version applicability** in the App page map: invalid published Funnel entries link to the affected Funnel for reselection and publication. Missing current versions, read failures and incomplete inventories remain explicit. The immutable release descriptor has a separate two-second deadline covering fetch headers and body, including fetch wrappers that ignore abort. It requires ordinary AbortController support. Follow the [two-layer integration guide](https://longplayai.com/docs/iam?lang=en#funnel-entries) for build binding and host lifecycle.
439
+ All eligible changesets are delivered within the visual payload's existing 100-item/2 MiB budget, with one assignment per accepted Split receipt and up to 100 assignments. More than 20 distinct assignments require the matching GOP response contract and SDK before the SQL is activated. Used-receipt requests keep their existing 20-ID limit. After a source upgrade, check **Version applicability** in the App page map: invalid published Funnel entries link to the affected Funnel for reselection and publication. Missing current versions, read failures and incomplete inventories remain explicit. The immutable release descriptor has a separate two-second deadline covering fetch headers and body, including fetch wrappers that ignore abort. It requires ordinary AbortController support. Follow the [two-layer integration guide](https://www.longplayai.com/docs/iam#funnel-entries) for build binding and host lifecycle.
404
440
 
405
441
  ## Funnel-scoped resource requests
406
442
 
package/README.zh-CN.md CHANGED
@@ -273,6 +273,8 @@ Stripe 环境的 `longplay` 模式由 Longplay 执行;`record_only` 返回交
273
273
 
274
274
  已实现商业能力在 Sandbox 与 Live 均沿用原凭据、权限、作用域和真实 Provider 配置检查。未实现操作返回 501;缺少配置或业务前置条件不等于迁移期白名单。
275
275
 
276
+ Customer 的 `claimCoupon`、`redeemCoupon`、`redeemReward` 和 `createReferralCode` 保留可选 requestId 参数。请求发出后失败时,`LongplayError.commandRequestId` 提供原命令 ID,包含 SDK 自动生成的 ID;原有 `LongplayError.requestId` 仍是 HTTP 追踪 ID。用该命令 ID 和不变的输入调用同一方法重试,例如 `longplay.claimCoupon(couponId, error.commandRequestId)`。需要跨崩溃恢复时,应在首次调用前生成并持久保存 ID 与输入。错误本身不能证明命令是否已被接受。
277
+
276
278
  ## AI 用量
277
279
 
278
280
  `/server` 提供 AI SDK 用量中间件;`/openrouter` 提供 OpenRouter 包装器。宿主必须提供每次调用的持久幂等键、usage/quote 存储及恢复回调。恢复时重放原报价的扣款,不重新运行模型。密钥始终留在可信后端。
@@ -374,4 +376,4 @@ export async function showBanner(
374
376
 
375
377
  Server 入口导出 `createMerchantBridgeHandler`、`createMerchantBridgeAuthorityResolver`、`signMerchantBridgeMessage` 和 `verifyMerchantBridgeMessage`。配置后端签名密钥、原生授权/CSRF、实际已实现的能力与 profiles,并设置 `resolveOperationAuthority: createMerchantBridgeAuthorityResolver(server)`,每次从 Longplay 原操作 API 读取最新权限。服务签名仍需原确认事实和准确范围、Customer 归属,不能据此签发用户会话。
376
378
 
377
- 业务处理器必须在调用外部渠道前持久预留原 operationId,并使用稳定渠道幂等键;SDK 的先查询不能代替并发锁。`operation.read` 返回 `found` 或 `not_received`,严格只读。`RESULT_UNKNOWN` 只恢复原操作,不能根据浏览器报价或 pending 状态自行推断执行权限。Console 能力检查不证明商业完成。精确字段和恢复规则见[商户接入规范](https://longplayai.com/zh-CN/docs/merchant-execution)。
379
+ 业务处理器必须在调用外部渠道前持久预留原 operationId,并使用稳定渠道幂等键;SDK 的先查询不能代替并发锁。`operation.read` 返回 `found` 或 `not_received`,严格只读。`RESULT_UNKNOWN` 只恢复原操作,不能根据浏览器报价或 pending 状态自行推断执行权限。Console 能力检查不证明商业完成。精确字段和恢复规则见[商户接入规范](https://longplayai.com/zh-hans/docs/merchant-execution)。
@@ -1,5 +1,5 @@
1
1
  import { LanguageModelV4Usage, LanguageModelV4Middleware } from '@ai-sdk/provider';
2
- import { F as FoundationApi, A as ApiInput } from './api-5gAz4-Sb.js';
2
+ import { F as FoundationApi, A as ApiInput } from './api-Bf_aRlXs.js';
3
3
  import { z } from 'zod';
4
4
 
5
5
  declare const tokenCounts: z.ZodObject<{
@@ -5485,6 +5485,9 @@ declare const apiOperations: {
5485
5485
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
5486
5486
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
5487
5487
  STATE_CHANGED: "STATE_CHANGED";
5488
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
5489
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
5490
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
5488
5491
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
5489
5492
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
5490
5493
  }>>;
@@ -5565,6 +5568,9 @@ declare const apiOperations: {
5565
5568
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
5566
5569
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
5567
5570
  STATE_CHANGED: "STATE_CHANGED";
5571
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
5572
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
5573
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
5568
5574
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
5569
5575
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
5570
5576
  }>>;
@@ -5643,6 +5649,9 @@ declare const apiOperations: {
5643
5649
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
5644
5650
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
5645
5651
  STATE_CHANGED: "STATE_CHANGED";
5652
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
5653
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
5654
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
5646
5655
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
5647
5656
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
5648
5657
  }>>;
@@ -5696,6 +5705,9 @@ declare const apiOperations: {
5696
5705
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
5697
5706
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
5698
5707
  STATE_CHANGED: "STATE_CHANGED";
5708
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
5709
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
5710
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
5699
5711
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
5700
5712
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
5701
5713
  }>>;
@@ -6664,6 +6676,9 @@ declare const apiOperations: {
6664
6676
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
6665
6677
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
6666
6678
  STATE_CHANGED: "STATE_CHANGED";
6679
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
6680
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
6681
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
6667
6682
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
6668
6683
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
6669
6684
  }>>;
@@ -6744,6 +6759,9 @@ declare const apiOperations: {
6744
6759
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
6745
6760
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
6746
6761
  STATE_CHANGED: "STATE_CHANGED";
6762
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
6763
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
6764
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
6747
6765
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
6748
6766
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
6749
6767
  }>>;
@@ -6822,6 +6840,9 @@ declare const apiOperations: {
6822
6840
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
6823
6841
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
6824
6842
  STATE_CHANGED: "STATE_CHANGED";
6843
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
6844
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
6845
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
6825
6846
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
6826
6847
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
6827
6848
  }>>;
@@ -6875,6 +6896,9 @@ declare const apiOperations: {
6875
6896
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
6876
6897
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
6877
6898
  STATE_CHANGED: "STATE_CHANGED";
6899
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
6900
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
6901
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
6878
6902
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
6879
6903
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
6880
6904
  }>>;
@@ -7698,6 +7722,9 @@ declare const apiOperations: {
7698
7722
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
7699
7723
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
7700
7724
  STATE_CHANGED: "STATE_CHANGED";
7725
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
7726
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
7727
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
7701
7728
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
7702
7729
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
7703
7730
  }>>;
@@ -7778,6 +7805,9 @@ declare const apiOperations: {
7778
7805
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
7779
7806
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
7780
7807
  STATE_CHANGED: "STATE_CHANGED";
7808
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
7809
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
7810
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
7781
7811
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
7782
7812
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
7783
7813
  }>>;
@@ -7856,6 +7886,9 @@ declare const apiOperations: {
7856
7886
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
7857
7887
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
7858
7888
  STATE_CHANGED: "STATE_CHANGED";
7889
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
7890
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
7891
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
7859
7892
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
7860
7893
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
7861
7894
  }>>;
@@ -7909,6 +7942,9 @@ declare const apiOperations: {
7909
7942
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
7910
7943
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
7911
7944
  STATE_CHANGED: "STATE_CHANGED";
7945
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
7946
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
7947
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
7912
7948
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
7913
7949
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
7914
7950
  }>>;
@@ -8706,6 +8742,9 @@ declare const apiOperations: {
8706
8742
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
8707
8743
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
8708
8744
  STATE_CHANGED: "STATE_CHANGED";
8745
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
8746
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
8747
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
8709
8748
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
8710
8749
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
8711
8750
  }>>;
@@ -8786,6 +8825,9 @@ declare const apiOperations: {
8786
8825
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
8787
8826
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
8788
8827
  STATE_CHANGED: "STATE_CHANGED";
8828
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
8829
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
8830
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
8789
8831
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
8790
8832
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
8791
8833
  }>>;
@@ -8864,6 +8906,9 @@ declare const apiOperations: {
8864
8906
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
8865
8907
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
8866
8908
  STATE_CHANGED: "STATE_CHANGED";
8909
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
8910
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
8911
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
8867
8912
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
8868
8913
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
8869
8914
  }>>;
@@ -8917,6 +8962,9 @@ declare const apiOperations: {
8917
8962
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
8918
8963
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
8919
8964
  STATE_CHANGED: "STATE_CHANGED";
8965
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
8966
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
8967
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
8920
8968
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
8921
8969
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
8922
8970
  }>>;
@@ -9848,6 +9896,9 @@ declare const apiOperations: {
9848
9896
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
9849
9897
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
9850
9898
  STATE_CHANGED: "STATE_CHANGED";
9899
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
9900
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
9901
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
9851
9902
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
9852
9903
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
9853
9904
  }>>;
@@ -9928,6 +9979,9 @@ declare const apiOperations: {
9928
9979
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
9929
9980
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
9930
9981
  STATE_CHANGED: "STATE_CHANGED";
9982
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
9983
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
9984
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
9931
9985
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
9932
9986
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
9933
9987
  }>>;
@@ -10006,6 +10060,9 @@ declare const apiOperations: {
10006
10060
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
10007
10061
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
10008
10062
  STATE_CHANGED: "STATE_CHANGED";
10063
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
10064
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
10065
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
10009
10066
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
10010
10067
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
10011
10068
  }>>;
@@ -10059,6 +10116,9 @@ declare const apiOperations: {
10059
10116
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
10060
10117
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
10061
10118
  STATE_CHANGED: "STATE_CHANGED";
10119
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
10120
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
10121
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
10062
10122
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
10063
10123
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
10064
10124
  }>>;
@@ -10551,6 +10611,9 @@ declare const apiOperations: {
10551
10611
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
10552
10612
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
10553
10613
  STATE_CHANGED: "STATE_CHANGED";
10614
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
10615
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
10616
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
10554
10617
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
10555
10618
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
10556
10619
  }>>;
@@ -10631,6 +10694,9 @@ declare const apiOperations: {
10631
10694
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
10632
10695
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
10633
10696
  STATE_CHANGED: "STATE_CHANGED";
10697
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
10698
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
10699
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
10634
10700
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
10635
10701
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
10636
10702
  }>>;
@@ -10709,6 +10775,9 @@ declare const apiOperations: {
10709
10775
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
10710
10776
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
10711
10777
  STATE_CHANGED: "STATE_CHANGED";
10778
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
10779
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
10780
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
10712
10781
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
10713
10782
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
10714
10783
  }>>;
@@ -10762,6 +10831,9 @@ declare const apiOperations: {
10762
10831
  IDEMPOTENCY_CONFLICT: "IDEMPOTENCY_CONFLICT";
10763
10832
  RESULT_UNKNOWN: "RESULT_UNKNOWN";
10764
10833
  STATE_CHANGED: "STATE_CHANGED";
10834
+ IDENTITY_CONTEXT_CHANGED: "IDENTITY_CONTEXT_CHANGED";
10835
+ CUSTOMER_BINDING_CONFLICT: "CUSTOMER_BINDING_CONFLICT";
10836
+ RUN_CONTRACT_MISMATCH: "RUN_CONTRACT_MISMATCH";
10765
10837
  OPERATION_IN_PROGRESS: "OPERATION_IN_PROGRESS";
10766
10838
  FUNNEL_VERSION_RETIRED: "FUNNEL_VERSION_RETIRED";
10767
10839
  }>>;
@@ -13565,6 +13637,11 @@ declare const apiOperations: {
13565
13637
  }, z$1.core.$strict>>;
13566
13638
  funnelId: z$1.ZodOptional<z$1.ZodUUID>;
13567
13639
  funnelVersionId: z$1.ZodOptional<z$1.ZodUUID>;
13640
+ processContext: z$1.ZodOptional<z$1.ZodObject<{
13641
+ runId: z$1.ZodUUID;
13642
+ bindingId: z$1.ZodUUID;
13643
+ receiptId: z$1.ZodUUID;
13644
+ }, z$1.core.$strict>>;
13568
13645
  }, z$1.core.$strict>;
13569
13646
  readonly response: z$1.ZodObject<{
13570
13647
  requestId: z$1.ZodUUID;
@@ -14092,6 +14169,11 @@ declare const apiOperations: {
14092
14169
  }, z$1.core.$strict>>;
14093
14170
  funnelId: z$1.ZodOptional<z$1.ZodUUID>;
14094
14171
  funnelVersionId: z$1.ZodOptional<z$1.ZodUUID>;
14172
+ processContext: z$1.ZodOptional<z$1.ZodObject<{
14173
+ runId: z$1.ZodUUID;
14174
+ bindingId: z$1.ZodUUID;
14175
+ receiptId: z$1.ZodUUID;
14176
+ }, z$1.core.$strict>>;
14095
14177
  }, z$1.core.$strict>;
14096
14178
  readonly response: z$1.ZodObject<{
14097
14179
  requestId: z$1.ZodUUID;