@capxul/observability 4.20.0-beta.27 → 4.20.0-beta.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/engineering.mjs +1 -1
- package/dist/index.d.mts +750 -585
- package/dist/index.mjs +2 -2
- package/dist/{src-BBVEFkzq.mjs → src-CAQEATmQ.mjs} +356 -272
- package/package.json +3 -3
|
@@ -2047,7 +2047,9 @@ const OrganizationPaymentExecutionItemSchema = Schema.Struct({
|
|
|
2047
2047
|
"invoice",
|
|
2048
2048
|
"payroll",
|
|
2049
2049
|
"reimbursement"
|
|
2050
|
-
]))
|
|
2050
|
+
])),
|
|
2051
|
+
/** When the recipient gets it: instant (the default), or held until a date or over a period. */
|
|
2052
|
+
timing: Schema.optional(PaymentTiming)
|
|
2051
2053
|
}).check(Schema.makeFilter((value) => Schema.is(PaymentDocumentOptionsSchema)(value)));
|
|
2052
2054
|
const PrepareOrganizationPaymentExecutionInputSchema = Schema.Struct({
|
|
2053
2055
|
orgId: nonEmpty("orgId"),
|
|
@@ -2157,11 +2159,20 @@ const PreparedPaymentCommandExecutionSchema = Schema.Struct({
|
|
|
2157
2159
|
//#region ../protocol/src/accounts/approval-schema.ts
|
|
2158
2160
|
const APPROVAL_ID_RE = /^approval_[0-9A-HJKMNP-TV-Z]{26}$/u;
|
|
2159
2161
|
const ApprovalIdSchema = Schema.String.pipe(Schema.refine((value) => APPROVAL_ID_RE.test(value), { message: "must be approval_ plus a ULID" }));
|
|
2160
|
-
/**
|
|
2162
|
+
/**
|
|
2163
|
+
* What is being approved. A `permission_change` creates, changes, assigns,
|
|
2164
|
+
* revokes or replaces an Organization's Permissions; an `invitation` sets up
|
|
2165
|
+
* the rights an invitation offers. Neither moves money. A `payment_cancel`
|
|
2166
|
+
* returns a held Payment to whoever funded it; a `payment_redirect` sends it
|
|
2167
|
+
* to someone else.
|
|
2168
|
+
*/
|
|
2161
2169
|
const APPROVAL_KINDS = [
|
|
2162
2170
|
"payment",
|
|
2163
2171
|
"payroll_run",
|
|
2172
|
+
"payment_cancel",
|
|
2173
|
+
"payment_redirect",
|
|
2164
2174
|
"permission_change",
|
|
2175
|
+
"invitation",
|
|
2165
2176
|
"bank_payout"
|
|
2166
2177
|
];
|
|
2167
2178
|
/**
|
|
@@ -2385,8 +2396,7 @@ const approvals = {
|
|
|
2385
2396
|
errors: [
|
|
2386
2397
|
...CALL$10,
|
|
2387
2398
|
...DEFECTS,
|
|
2388
|
-
"WRONG_STATE"
|
|
2389
|
-
"NOT_IMPLEMENTED"
|
|
2399
|
+
"WRONG_STATE"
|
|
2390
2400
|
]
|
|
2391
2401
|
}),
|
|
2392
2402
|
/** The approval as the person reads it, with its state judged against its expiry. */
|
|
@@ -2887,6 +2897,15 @@ const probes = {
|
|
|
2887
2897
|
})
|
|
2888
2898
|
};
|
|
2889
2899
|
//#endregion
|
|
2900
|
+
//#region ../protocol/src/evm/role-dsl.ts
|
|
2901
|
+
/**
|
|
2902
|
+
* How a capped Budget's allowance refills (#2298). `monthly` refills the
|
|
2903
|
+
* allowance to its cap every 30 days. Roles v2 counts fixed periods from the
|
|
2904
|
+
* moment the allowance is set; it has no calendar month. Absent means `none`:
|
|
2905
|
+
* the cap is one pot that spending drains for good.
|
|
2906
|
+
*/
|
|
2907
|
+
const ORG_BUDGET_REFILLS = ["monthly", "none"];
|
|
2908
|
+
//#endregion
|
|
2890
2909
|
//#region ../protocol/src/permissions/permission-schema.ts
|
|
2891
2910
|
/**
|
|
2892
2911
|
* One stored `setAllowance` call inside a command's expected authority set.
|
|
@@ -2925,12 +2944,19 @@ const BudgetScopeSchema = Schema.Struct({
|
|
|
2925
2944
|
})]),
|
|
2926
2945
|
actions: Schema.NonEmptyArray(Schema.Literals(["pay", "commitments"]))
|
|
2927
2946
|
}).pipe(Schema.refine((scope) => new Set(scope.actions).size === scope.actions.length && (scope.recipients.type === "anyone" || scope.recipients.accounts.length >= 1 && scope.recipients.accounts.length <= 32 && new Set(scope.recipients.accounts).size === scope.recipients.accounts.length), { message: "Budget scope requires unique actions and one to 32 unique allowed Accounts" }));
|
|
2947
|
+
/**
|
|
2948
|
+
* How a capped Budget refills (#2298): `monthly` tops the cap back up every 30
|
|
2949
|
+
* days (a fixed Roles v2 period, not a calendar month); `none` never refills.
|
|
2950
|
+
* Absent means `none`, and writers store only `monthly`.
|
|
2951
|
+
*/
|
|
2952
|
+
const BudgetRefillSchema = Schema.Literals(ORG_BUDGET_REFILLS);
|
|
2928
2953
|
/** The accepted product policy stored with one Permission revision. */
|
|
2929
2954
|
const CurrentPolicySchema = Schema.Union([Schema.Struct({
|
|
2930
2955
|
type: Schema.Literal("budget"),
|
|
2931
2956
|
asset: AssetIdSchema,
|
|
2932
2957
|
limit: Schema.NullOr(Schema.String),
|
|
2933
|
-
scope: BudgetScopeSchema
|
|
2958
|
+
scope: BudgetScopeSchema,
|
|
2959
|
+
refill: Schema.optional(BudgetRefillSchema)
|
|
2934
2960
|
}), Schema.Struct({ type: Schema.Literal("managePeople") })]);
|
|
2935
2961
|
const BudgetIntentSchema = CurrentPolicySchema.pipe(Schema.refine((value) => {
|
|
2936
2962
|
if (value.type !== "budget") return false;
|
|
@@ -2952,6 +2978,15 @@ const PermissionSchema = Schema.Struct({
|
|
|
2952
2978
|
limitRaw: Schema.optional(WeiAmountSchema$1),
|
|
2953
2979
|
allowanceKey: Schema.optional(AllowanceKeySchema)
|
|
2954
2980
|
});
|
|
2981
|
+
/**
|
|
2982
|
+
* A refilling Budget's refill (#2439): how much each one adds, every how many
|
|
2983
|
+
* days, and when the next one is due.
|
|
2984
|
+
*/
|
|
2985
|
+
const BudgetNextRefillSchema = Schema.Struct({
|
|
2986
|
+
amount: AssetAmountSchema,
|
|
2987
|
+
everyDays: Schema.Finite,
|
|
2988
|
+
nextAt: EpochMsSchema$1
|
|
2989
|
+
});
|
|
2955
2990
|
const PermissionAssignmentSchema = Schema.Struct({
|
|
2956
2991
|
permissionAssignmentId: PermissionAssignmentIdSchema,
|
|
2957
2992
|
permissionId: PermissionIdSchema,
|
|
@@ -2995,7 +3030,8 @@ const ResolvedPermissionBudgetPolicySchema = Schema.Struct({
|
|
|
2995
3030
|
"send",
|
|
2996
3031
|
"sendBatch",
|
|
2997
3032
|
"createCommitment"
|
|
2998
|
-
]))
|
|
3033
|
+
])),
|
|
3034
|
+
refill: Schema.optional(BudgetRefillSchema)
|
|
2999
3035
|
});
|
|
3000
3036
|
const PermissionRecipientBindingSchema = Schema.Struct({
|
|
3001
3037
|
accountId: AccountIdSchema$1,
|
|
@@ -3007,14 +3043,16 @@ const StoredPermissionIntentSchema = Schema.Union([Schema.Struct({
|
|
|
3007
3043
|
type: Schema.Literal("budget"),
|
|
3008
3044
|
asset: AssetIdSchema,
|
|
3009
3045
|
limit: Schema.NullOr(AssetAmountSchema),
|
|
3010
|
-
scope: Schema.optional(BudgetScopeSchema)
|
|
3046
|
+
scope: Schema.optional(BudgetScopeSchema),
|
|
3047
|
+
refill: Schema.optional(BudgetRefillSchema)
|
|
3011
3048
|
}).pipe(Schema.refine((intent) => intent.limit === null || intent.limit.asset === intent.asset, { message: "Budget limit must use the Budget asset" })), Schema.Struct({ type: Schema.Literal("managePeople") })]);
|
|
3012
3049
|
/** Writes state every granted right and use a finite positive AssetAmount cap. */
|
|
3013
3050
|
const PermissionIntentSchema = Schema.Union([Schema.Struct({
|
|
3014
3051
|
type: Schema.Literal("budget"),
|
|
3015
3052
|
asset: AssetIdSchema,
|
|
3016
3053
|
limit: AssetAmountSchema,
|
|
3017
|
-
scope: BudgetScopeSchema
|
|
3054
|
+
scope: BudgetScopeSchema,
|
|
3055
|
+
refill: Schema.optional(BudgetRefillSchema)
|
|
3018
3056
|
}).pipe(Schema.refine((intent) => intent.limit.asset === intent.asset && /[1-9]/u.test(intent.limit.value), { message: "Budget cap must be positive and use the Budget asset" })), Schema.Struct({ type: Schema.Literal("managePeople") })]);
|
|
3019
3057
|
//#endregion
|
|
3020
3058
|
//#region ../protocol/src/permissions/replacement-schema.ts
|
|
@@ -3216,7 +3254,7 @@ const InviteGrantsSchema = Schema.Array(Schema.Union([
|
|
|
3216
3254
|
Schema.Struct({
|
|
3217
3255
|
type: Schema.Literal("new_budget"),
|
|
3218
3256
|
label: Schema.String.pipe(Schema.refine((value) => value.trim().length >= 1 && value.trim().length <= 128)),
|
|
3219
|
-
intent: BudgetIntentSchema
|
|
3257
|
+
intent: BudgetIntentSchema.pipe(Schema.refine((intent) => intent.refill !== "monthly", { message: "An invitation's new Budget cannot refill; change it once granted" }))
|
|
3220
3258
|
})
|
|
3221
3259
|
])).pipe(Schema.refine((grants) => {
|
|
3222
3260
|
if (grants.length < 1 || grants.length > 16) return false;
|
|
@@ -5638,6 +5676,30 @@ const authorities = {
|
|
|
5638
5676
|
"ROLE_PERMISSION_DENIED"
|
|
5639
5677
|
]
|
|
5640
5678
|
}),
|
|
5679
|
+
/**
|
|
5680
|
+
* What one active Budget can still spend now: its Roles allowance, read on
|
|
5681
|
+
* chain at the latest block as the payment gate reads it. `left` is null for
|
|
5682
|
+
* a Budget with no allowance (no cap). `refill` names a refilling Budget's
|
|
5683
|
+
* refill and when the next one is due; null for a one-off or uncapped Budget
|
|
5684
|
+
* (#2439). For a participant of the Organization.
|
|
5685
|
+
*/
|
|
5686
|
+
budgetLeft: Operation.action("permissions.authorities.budgetLeft", {
|
|
5687
|
+
input: Schema.Struct({
|
|
5688
|
+
orgId: OrgId,
|
|
5689
|
+
budgetId: PermissionIdSchema
|
|
5690
|
+
}),
|
|
5691
|
+
output: Schema.Struct({
|
|
5692
|
+
budgetId: PermissionIdSchema,
|
|
5693
|
+
left: Schema.NullOr(AssetAmountSchema),
|
|
5694
|
+
refill: Schema.optionalKey(Schema.NullOr(BudgetNextRefillSchema))
|
|
5695
|
+
}),
|
|
5696
|
+
errors: [
|
|
5697
|
+
...CALL$2,
|
|
5698
|
+
...DEFECTS,
|
|
5699
|
+
...CHAIN$1,
|
|
5700
|
+
"ROLE_PERMISSION_DENIED"
|
|
5701
|
+
]
|
|
5702
|
+
}),
|
|
5641
5703
|
/** Whether the caller's Account may spend this amount from this Budget right now. */
|
|
5642
5704
|
authorize: Operation.query("permissions.authorities.authorize", {
|
|
5643
5705
|
input: MoneyAuthorizationRequestSchema,
|
|
@@ -6412,7 +6474,9 @@ const PEOPLE_OPERATIONS = {
|
|
|
6412
6474
|
emitSafeConfirmed: "accounts.safes.emitSafeConfirmed",
|
|
6413
6475
|
readSafe: "accounts.safes.readSafe",
|
|
6414
6476
|
recordDeployment: "accounts.safes.recordDeployment"
|
|
6415
|
-
}
|
|
6477
|
+
},
|
|
6478
|
+
/** The home's requests to pay and Payments to retry, read in one query. */
|
|
6479
|
+
summaries: { loadNeedsYou: "accounts.summaries.loadNeedsYou" }
|
|
6416
6480
|
},
|
|
6417
6481
|
/** The host observer's names for `client.approvals.*`. */
|
|
6418
6482
|
approvals: {
|
|
@@ -6526,6 +6590,7 @@ const ORGANIZATION_OPERATIONS = {
|
|
|
6526
6590
|
payment: "org.payment",
|
|
6527
6591
|
permissions: {
|
|
6528
6592
|
assign: "org.permissions.assign",
|
|
6593
|
+
budgetLeft: "org.permissions.budgetLeft",
|
|
6529
6594
|
change: "org.permissions.change",
|
|
6530
6595
|
create: "org.permissions.create",
|
|
6531
6596
|
get: "org.permissions.get",
|
|
@@ -6671,7 +6736,9 @@ emitSaved: "activity.annotations.emitSaved" },
|
|
|
6671
6736
|
pay: "organizationPayments.pay",
|
|
6672
6737
|
payBatch: "organizationPayments.payBatch",
|
|
6673
6738
|
prepareExecution: "organizationPayments.prepareExecution",
|
|
6674
|
-
retry: "organizationPayments.retry"
|
|
6739
|
+
retry: "organizationPayments.retry",
|
|
6740
|
+
cancel: "organizationPayments.cancel",
|
|
6741
|
+
redirect: "organizationPayments.redirect"
|
|
6675
6742
|
},
|
|
6676
6743
|
/**
|
|
6677
6744
|
* Payments' internal functions and the client's own method names; its public
|
|
@@ -6693,7 +6760,9 @@ emitSaved: "activity.annotations.emitSaved" },
|
|
|
6693
6760
|
loadContext: "payments.commands.loadContext",
|
|
6694
6761
|
loadExecutionContext: "payments.commands.loadExecutionContext",
|
|
6695
6762
|
/** The capped Budget a prepared Organization command spends from, before its allowance is read on chain. */
|
|
6696
|
-
loadBudgetAllowance: "payments.commands.loadBudgetAllowance"
|
|
6763
|
+
loadBudgetAllowance: "payments.commands.loadBudgetAllowance",
|
|
6764
|
+
/** What a new Payment command would spend and from which Safe, read before it is born. */
|
|
6765
|
+
loadBirthFunding: "payments.commands.loadBirthFunding"
|
|
6697
6766
|
},
|
|
6698
6767
|
lifecycles: { prepareIntent: "payments.lifecycles.prepareIntent" },
|
|
6699
6768
|
/** The stored UserOperation of every money command: Payment, Permission and configuration. */
|
|
@@ -6768,6 +6837,9 @@ emitChanged: "payroll.groups.emitChanged" }
|
|
|
6768
6837
|
},
|
|
6769
6838
|
/** Permissions' internal functions; its public rows join from `OPERATIONS`. */
|
|
6770
6839
|
permissions: {
|
|
6840
|
+
authorities: {
|
|
6841
|
+
/** The Budget-left read's participant check and the Budget's stored allowance. */
|
|
6842
|
+
loadBudgetLeft: "permissions.authorities.loadBudgetLeft" },
|
|
6771
6843
|
commands: {
|
|
6772
6844
|
/** The prepare action's transaction: authorize, plan and save the command. */
|
|
6773
6845
|
prepareIntent: "permissions.commands.prepareIntent",
|
|
@@ -7031,12 +7103,6 @@ const TELEMETRY_EVENT_NAMES = [
|
|
|
7031
7103
|
"faucet_requested",
|
|
7032
7104
|
"faucet_confirmed",
|
|
7033
7105
|
"faucet_failed",
|
|
7034
|
-
"org_create_started",
|
|
7035
|
-
"org_safe_created",
|
|
7036
|
-
"org_safe_confirmed",
|
|
7037
|
-
"org_roles_seeded",
|
|
7038
|
-
"org_created",
|
|
7039
|
-
"org_create_failed",
|
|
7040
7106
|
"org_invite_sent",
|
|
7041
7107
|
"org_invite_accepted",
|
|
7042
7108
|
"org_invite_expired",
|
|
@@ -7068,187 +7134,13 @@ const TELEMETRY_EVENT_NAMES = [
|
|
|
7068
7134
|
"payroll_group_changed",
|
|
7069
7135
|
"payroll_run_transitioned",
|
|
7070
7136
|
"ui_payroll_action_completed",
|
|
7137
|
+
"ui_approval_sign_in_required",
|
|
7071
7138
|
"cli_diagnostic_completed",
|
|
7072
7139
|
"cli_first_used",
|
|
7073
7140
|
"cli_command_started",
|
|
7074
7141
|
"cli_command_completed"
|
|
7075
7142
|
];
|
|
7076
7143
|
//#endregion
|
|
7077
|
-
//#region src/catalog/journeys.ts
|
|
7078
|
-
const TELEMETRY_JOURNEYS = {
|
|
7079
|
-
returning_user_login: {
|
|
7080
|
-
type: "funnel",
|
|
7081
|
-
steps: [
|
|
7082
|
-
"auth_otp_requested",
|
|
7083
|
-
"auth_otp_delivered",
|
|
7084
|
-
"auth_verified"
|
|
7085
|
-
],
|
|
7086
|
-
drops_on: ["auth_otp_expired", "auth_failed"]
|
|
7087
|
-
},
|
|
7088
|
-
new_user_first_signin: {
|
|
7089
|
-
type: "funnel",
|
|
7090
|
-
steps: [
|
|
7091
|
-
"auth_otp_requested",
|
|
7092
|
-
"auth_otp_delivered",
|
|
7093
|
-
"auth_verified",
|
|
7094
|
-
"provisioning_safe_created",
|
|
7095
|
-
"provisioning_safe_confirmed"
|
|
7096
|
-
],
|
|
7097
|
-
drops_on: ["auth_otp_expired", "auth_failed"]
|
|
7098
|
-
},
|
|
7099
|
-
sign_out_session_close: {
|
|
7100
|
-
type: "point_event",
|
|
7101
|
-
point_event: "auth_signed_out"
|
|
7102
|
-
},
|
|
7103
|
-
member_activation: {
|
|
7104
|
-
type: "funnel",
|
|
7105
|
-
steps: ["member_activation_started", "member_activation_ready"],
|
|
7106
|
-
drops_on: ["member_activation_failed"]
|
|
7107
|
-
},
|
|
7108
|
-
organization_creation_lifecycle: {
|
|
7109
|
-
type: "funnel",
|
|
7110
|
-
steps: ["organization_creation_started", "organization_creation_ready"],
|
|
7111
|
-
drops_on: ["organization_creation_failed"]
|
|
7112
|
-
},
|
|
7113
|
-
new_member_personal_dashboard: {
|
|
7114
|
-
type: "funnel",
|
|
7115
|
-
steps: [
|
|
7116
|
-
"auth_verified",
|
|
7117
|
-
"onboarding_intent_selected",
|
|
7118
|
-
"onboarding_profile_submitted",
|
|
7119
|
-
"member_activation_ready",
|
|
7120
|
-
"onboarding_dashboard_reached"
|
|
7121
|
-
],
|
|
7122
|
-
step_filters: {
|
|
7123
|
-
onboarding_intent_selected: [{
|
|
7124
|
-
key: "intent",
|
|
7125
|
-
value: ["personal"],
|
|
7126
|
-
operator: "exact",
|
|
7127
|
-
type: "event"
|
|
7128
|
-
}, {
|
|
7129
|
-
key: "entry_point",
|
|
7130
|
-
value: ["signup"],
|
|
7131
|
-
operator: "exact",
|
|
7132
|
-
type: "event"
|
|
7133
|
-
}],
|
|
7134
|
-
onboarding_profile_submitted: [{
|
|
7135
|
-
key: "intent",
|
|
7136
|
-
value: ["personal"],
|
|
7137
|
-
operator: "exact",
|
|
7138
|
-
type: "event"
|
|
7139
|
-
}],
|
|
7140
|
-
onboarding_dashboard_reached: [{
|
|
7141
|
-
key: "intent",
|
|
7142
|
-
value: ["personal"],
|
|
7143
|
-
operator: "exact",
|
|
7144
|
-
type: "event"
|
|
7145
|
-
}]
|
|
7146
|
-
}
|
|
7147
|
-
},
|
|
7148
|
-
new_member_organization_dashboard: {
|
|
7149
|
-
type: "funnel",
|
|
7150
|
-
steps: [
|
|
7151
|
-
"auth_verified",
|
|
7152
|
-
"onboarding_intent_selected",
|
|
7153
|
-
"onboarding_profile_submitted",
|
|
7154
|
-
"onboarding_organization_submitted",
|
|
7155
|
-
"member_activation_started",
|
|
7156
|
-
"member_activation_ready",
|
|
7157
|
-
"organization_creation_started",
|
|
7158
|
-
"organization_creation_ready",
|
|
7159
|
-
"onboarding_dashboard_reached"
|
|
7160
|
-
],
|
|
7161
|
-
step_filters: {
|
|
7162
|
-
onboarding_intent_selected: [{
|
|
7163
|
-
key: "intent",
|
|
7164
|
-
value: ["organization"],
|
|
7165
|
-
operator: "exact",
|
|
7166
|
-
type: "event"
|
|
7167
|
-
}, {
|
|
7168
|
-
key: "entry_point",
|
|
7169
|
-
value: ["signup"],
|
|
7170
|
-
operator: "exact",
|
|
7171
|
-
type: "event"
|
|
7172
|
-
}],
|
|
7173
|
-
onboarding_profile_submitted: [{
|
|
7174
|
-
key: "intent",
|
|
7175
|
-
value: ["organization"],
|
|
7176
|
-
operator: "exact",
|
|
7177
|
-
type: "event"
|
|
7178
|
-
}],
|
|
7179
|
-
onboarding_dashboard_reached: [{
|
|
7180
|
-
key: "intent",
|
|
7181
|
-
value: ["organization"],
|
|
7182
|
-
operator: "exact",
|
|
7183
|
-
type: "event"
|
|
7184
|
-
}]
|
|
7185
|
-
}
|
|
7186
|
-
},
|
|
7187
|
-
existing_member_organization_dashboard: {
|
|
7188
|
-
type: "funnel",
|
|
7189
|
-
steps: [
|
|
7190
|
-
"onboarding_intent_selected",
|
|
7191
|
-
"onboarding_organization_submitted",
|
|
7192
|
-
"organization_creation_started",
|
|
7193
|
-
"organization_creation_ready",
|
|
7194
|
-
"onboarding_dashboard_reached"
|
|
7195
|
-
],
|
|
7196
|
-
step_filters: {
|
|
7197
|
-
onboarding_intent_selected: [{
|
|
7198
|
-
key: "intent",
|
|
7199
|
-
value: ["organization"],
|
|
7200
|
-
operator: "exact",
|
|
7201
|
-
type: "event"
|
|
7202
|
-
}, {
|
|
7203
|
-
key: "entry_point",
|
|
7204
|
-
value: ["dashboard"],
|
|
7205
|
-
operator: "exact",
|
|
7206
|
-
type: "event"
|
|
7207
|
-
}],
|
|
7208
|
-
onboarding_dashboard_reached: [{
|
|
7209
|
-
key: "intent",
|
|
7210
|
-
value: ["organization"],
|
|
7211
|
-
operator: "exact",
|
|
7212
|
-
type: "event"
|
|
7213
|
-
}]
|
|
7214
|
-
}
|
|
7215
|
-
},
|
|
7216
|
-
money_on_screen: {
|
|
7217
|
-
type: "point_event",
|
|
7218
|
-
point_event: "account_balance_read"
|
|
7219
|
-
},
|
|
7220
|
-
fund_account: {
|
|
7221
|
-
type: "funnel",
|
|
7222
|
-
steps: ["faucet_requested", "faucet_confirmed"],
|
|
7223
|
-
drops_on: ["faucet_failed"]
|
|
7224
|
-
},
|
|
7225
|
-
org_creation: {
|
|
7226
|
-
type: "funnel",
|
|
7227
|
-
steps: [
|
|
7228
|
-
"org_create_started",
|
|
7229
|
-
"org_safe_created",
|
|
7230
|
-
"org_safe_confirmed",
|
|
7231
|
-
"org_roles_seeded",
|
|
7232
|
-
"org_created"
|
|
7233
|
-
],
|
|
7234
|
-
drops_on: ["org_create_failed"]
|
|
7235
|
-
},
|
|
7236
|
-
org_member_onboarding: {
|
|
7237
|
-
type: "funnel",
|
|
7238
|
-
steps: ["org_invite_sent", "org_invite_accepted"],
|
|
7239
|
-
drops_on: ["org_invite_expired"]
|
|
7240
|
-
},
|
|
7241
|
-
direct_payment: {
|
|
7242
|
-
type: "funnel",
|
|
7243
|
-
steps: ["payment_initiated", "payment_settled"],
|
|
7244
|
-
drops_on: ["payment_failed"]
|
|
7245
|
-
},
|
|
7246
|
-
deposit: {
|
|
7247
|
-
type: "funnel",
|
|
7248
|
-
steps: ["deposit_initiated", "deposit_settled"]
|
|
7249
|
-
}
|
|
7250
|
-
};
|
|
7251
|
-
//#endregion
|
|
7252
7144
|
//#region src/catalog/values.ts
|
|
7253
7145
|
const OptionalString = Schema.optional(Schema.String);
|
|
7254
7146
|
const AddressSchema = Schema.String.pipe(Schema.decodeTo(Schema.String, {
|
|
@@ -7317,6 +7209,13 @@ const EXCEPTION_EVENT_NAME = "$exception";
|
|
|
7317
7209
|
* and classes only, not this evidence.
|
|
7318
7210
|
*/
|
|
7319
7211
|
const EXPECTED_OUTCOME_EVENT_NAME = "capxul_backend_expected_outcome";
|
|
7212
|
+
/**
|
|
7213
|
+
* The SDK's twin of `capxul_backend_expected_outcome`: an expected outcome the
|
|
7214
|
+
* SDK's failure projection captures through the host's PostHog client. Like
|
|
7215
|
+
* the backend's, its properties are the error evidence, so no catalog schema
|
|
7216
|
+
* validates it.
|
|
7217
|
+
*/
|
|
7218
|
+
const SDK_EXPECTED_OUTCOME_EVENT_NAME = "capxul_sdk_expected_outcome";
|
|
7320
7219
|
const PII = Schema.String.pipe(Schema.brand("PII"));
|
|
7321
7220
|
/**
|
|
7322
7221
|
* Environment discriminator (ADR-0020 A1 amendment, 2026-08-07). PostHog
|
|
@@ -7444,6 +7343,239 @@ const UiStepProps = {
|
|
|
7444
7343
|
organization_id: OptionalOrgId,
|
|
7445
7344
|
reason_code: OptionalReasonCode
|
|
7446
7345
|
};
|
|
7346
|
+
/**
|
|
7347
|
+
* A journey's variants (`JOURNEYS`): the way a person came into a journey, or
|
|
7348
|
+
* the way they took through it. A variant is a property of the journey's step
|
|
7349
|
+
* events, never a journey of its own, so each journey funnel breaks down by
|
|
7350
|
+
* it. A step event takes only the variants that a journey contract names on
|
|
7351
|
+
* it, picked one by one; the analytics plan test checks both directions.
|
|
7352
|
+
* `pay_path` and `funding_source` have no carrier until their Phase 2 events.
|
|
7353
|
+
* `payment_*` events already carry `recipient_is_capxul_account`, and
|
|
7354
|
+
* `invoice_issued` carries `issuer_scope_kind`; neither is repeated here.
|
|
7355
|
+
*/
|
|
7356
|
+
const JourneyVariantProps = {
|
|
7357
|
+
/** How a person came to Get started: by themselves, an invite, money that waited, or an invoice. */
|
|
7358
|
+
entry_path: Schema.optional(Schema.Literals([
|
|
7359
|
+
"signup",
|
|
7360
|
+
"invite",
|
|
7361
|
+
"claim",
|
|
7362
|
+
"invoice"
|
|
7363
|
+
])),
|
|
7364
|
+
/** Where the person acted. `agent` is an AI agent driving the CLI. */
|
|
7365
|
+
surface: Schema.optional(Schema.Literals([
|
|
7366
|
+
"web",
|
|
7367
|
+
"cli",
|
|
7368
|
+
"agent"
|
|
7369
|
+
])),
|
|
7370
|
+
/** Who pays: a person from their own account, or an Organization from a Budget. */
|
|
7371
|
+
payer_kind: Schema.optional(Schema.Literals(["person", "organization"])),
|
|
7372
|
+
/** How a request was paid: from the payer's inbox, or by its link at checkout. */
|
|
7373
|
+
pay_path: Schema.optional(Schema.Literals(["inbox", "link"])),
|
|
7374
|
+
/** Where an account's first money came from. `bank` is the planned on-ramp. */
|
|
7375
|
+
funding_source: Schema.optional(Schema.Literals([
|
|
7376
|
+
"deposit",
|
|
7377
|
+
"payment",
|
|
7378
|
+
"claim",
|
|
7379
|
+
"bank"
|
|
7380
|
+
]))
|
|
7381
|
+
};
|
|
7382
|
+
//#endregion
|
|
7383
|
+
//#region src/catalog/journeys.ts
|
|
7384
|
+
/**
|
|
7385
|
+
* The launch journeys (decision pack P0, 2026-10-07). Sign-in, approvals,
|
|
7386
|
+
* Budgets and contacts are steps or properties inside them, and a planned
|
|
7387
|
+
* feature joins one as a variant or a step when it is built. Every key needs a
|
|
7388
|
+
* journey contract in `packages/tools` `analytics`, or that package fails to
|
|
7389
|
+
* compile.
|
|
7390
|
+
*/
|
|
7391
|
+
const JOURNEYS = {
|
|
7392
|
+
get_started: {
|
|
7393
|
+
title: "Get started",
|
|
7394
|
+
finish: "The account is ready: the person's Safe is live",
|
|
7395
|
+
variants: ["entry_path", "surface"]
|
|
7396
|
+
},
|
|
7397
|
+
money_in: {
|
|
7398
|
+
title: "Money in",
|
|
7399
|
+
finish: "The first balance above 0",
|
|
7400
|
+
variants: ["funding_source"]
|
|
7401
|
+
},
|
|
7402
|
+
pay_someone: {
|
|
7403
|
+
title: "Pay someone",
|
|
7404
|
+
finish: "The payment settles, or the recipient claims it when they had no account",
|
|
7405
|
+
variants: [
|
|
7406
|
+
"recipient_is_capxul_account",
|
|
7407
|
+
"payer_kind",
|
|
7408
|
+
"surface"
|
|
7409
|
+
]
|
|
7410
|
+
},
|
|
7411
|
+
get_paid: {
|
|
7412
|
+
title: "Get paid",
|
|
7413
|
+
finish: "The invoice or request is paid",
|
|
7414
|
+
variants: ["issuer_scope_kind", "pay_path"]
|
|
7415
|
+
},
|
|
7416
|
+
run_company: {
|
|
7417
|
+
title: "Run a company",
|
|
7418
|
+
finish: "A payroll run settles",
|
|
7419
|
+
variants: ["surface"]
|
|
7420
|
+
}
|
|
7421
|
+
};
|
|
7422
|
+
const TELEMETRY_JOURNEYS = {
|
|
7423
|
+
returning_user_login: {
|
|
7424
|
+
type: "funnel",
|
|
7425
|
+
steps: [
|
|
7426
|
+
"auth_otp_requested",
|
|
7427
|
+
"auth_otp_delivered",
|
|
7428
|
+
"auth_verified"
|
|
7429
|
+
],
|
|
7430
|
+
drops_on: ["auth_otp_expired", "auth_failed"]
|
|
7431
|
+
},
|
|
7432
|
+
new_user_first_signin: {
|
|
7433
|
+
type: "funnel",
|
|
7434
|
+
steps: [
|
|
7435
|
+
"auth_otp_requested",
|
|
7436
|
+
"auth_otp_delivered",
|
|
7437
|
+
"auth_verified",
|
|
7438
|
+
"provisioning_safe_created",
|
|
7439
|
+
"provisioning_safe_confirmed"
|
|
7440
|
+
],
|
|
7441
|
+
drops_on: ["auth_otp_expired", "auth_failed"]
|
|
7442
|
+
},
|
|
7443
|
+
sign_out_session_close: {
|
|
7444
|
+
type: "point_event",
|
|
7445
|
+
point_event: "auth_signed_out"
|
|
7446
|
+
},
|
|
7447
|
+
member_activation: {
|
|
7448
|
+
type: "funnel",
|
|
7449
|
+
steps: ["member_activation_started", "member_activation_ready"],
|
|
7450
|
+
drops_on: ["member_activation_failed"]
|
|
7451
|
+
},
|
|
7452
|
+
organization_creation_lifecycle: {
|
|
7453
|
+
type: "funnel",
|
|
7454
|
+
steps: ["organization_creation_started", "organization_creation_ready"],
|
|
7455
|
+
drops_on: ["organization_creation_failed"]
|
|
7456
|
+
},
|
|
7457
|
+
new_member_personal_dashboard: {
|
|
7458
|
+
type: "funnel",
|
|
7459
|
+
steps: [
|
|
7460
|
+
"auth_verified",
|
|
7461
|
+
"onboarding_intent_selected",
|
|
7462
|
+
"onboarding_profile_submitted",
|
|
7463
|
+
"member_activation_ready",
|
|
7464
|
+
"onboarding_dashboard_reached"
|
|
7465
|
+
],
|
|
7466
|
+
step_filters: {
|
|
7467
|
+
onboarding_intent_selected: [{
|
|
7468
|
+
key: "intent",
|
|
7469
|
+
value: ["personal"],
|
|
7470
|
+
operator: "exact",
|
|
7471
|
+
type: "event"
|
|
7472
|
+
}, {
|
|
7473
|
+
key: "entry_point",
|
|
7474
|
+
value: ["signup"],
|
|
7475
|
+
operator: "exact",
|
|
7476
|
+
type: "event"
|
|
7477
|
+
}],
|
|
7478
|
+
onboarding_profile_submitted: [{
|
|
7479
|
+
key: "intent",
|
|
7480
|
+
value: ["personal"],
|
|
7481
|
+
operator: "exact",
|
|
7482
|
+
type: "event"
|
|
7483
|
+
}],
|
|
7484
|
+
onboarding_dashboard_reached: [{
|
|
7485
|
+
key: "intent",
|
|
7486
|
+
value: ["personal"],
|
|
7487
|
+
operator: "exact",
|
|
7488
|
+
type: "event"
|
|
7489
|
+
}]
|
|
7490
|
+
}
|
|
7491
|
+
},
|
|
7492
|
+
new_member_organization_dashboard: {
|
|
7493
|
+
type: "funnel",
|
|
7494
|
+
steps: [
|
|
7495
|
+
"auth_verified",
|
|
7496
|
+
"onboarding_intent_selected",
|
|
7497
|
+
"onboarding_profile_submitted",
|
|
7498
|
+
"onboarding_organization_submitted",
|
|
7499
|
+
"member_activation_started",
|
|
7500
|
+
"member_activation_ready",
|
|
7501
|
+
"organization_creation_started",
|
|
7502
|
+
"organization_creation_ready",
|
|
7503
|
+
"onboarding_dashboard_reached"
|
|
7504
|
+
],
|
|
7505
|
+
step_filters: {
|
|
7506
|
+
onboarding_intent_selected: [{
|
|
7507
|
+
key: "intent",
|
|
7508
|
+
value: ["organization"],
|
|
7509
|
+
operator: "exact",
|
|
7510
|
+
type: "event"
|
|
7511
|
+
}, {
|
|
7512
|
+
key: "entry_point",
|
|
7513
|
+
value: ["signup"],
|
|
7514
|
+
operator: "exact",
|
|
7515
|
+
type: "event"
|
|
7516
|
+
}],
|
|
7517
|
+
onboarding_profile_submitted: [{
|
|
7518
|
+
key: "intent",
|
|
7519
|
+
value: ["organization"],
|
|
7520
|
+
operator: "exact",
|
|
7521
|
+
type: "event"
|
|
7522
|
+
}],
|
|
7523
|
+
onboarding_dashboard_reached: [{
|
|
7524
|
+
key: "intent",
|
|
7525
|
+
value: ["organization"],
|
|
7526
|
+
operator: "exact",
|
|
7527
|
+
type: "event"
|
|
7528
|
+
}]
|
|
7529
|
+
}
|
|
7530
|
+
},
|
|
7531
|
+
existing_member_organization_dashboard: {
|
|
7532
|
+
type: "funnel",
|
|
7533
|
+
steps: [
|
|
7534
|
+
"onboarding_intent_selected",
|
|
7535
|
+
"onboarding_organization_submitted",
|
|
7536
|
+
"organization_creation_started",
|
|
7537
|
+
"organization_creation_ready",
|
|
7538
|
+
"onboarding_dashboard_reached"
|
|
7539
|
+
],
|
|
7540
|
+
step_filters: {
|
|
7541
|
+
onboarding_intent_selected: [{
|
|
7542
|
+
key: "intent",
|
|
7543
|
+
value: ["organization"],
|
|
7544
|
+
operator: "exact",
|
|
7545
|
+
type: "event"
|
|
7546
|
+
}, {
|
|
7547
|
+
key: "entry_point",
|
|
7548
|
+
value: ["dashboard"],
|
|
7549
|
+
operator: "exact",
|
|
7550
|
+
type: "event"
|
|
7551
|
+
}],
|
|
7552
|
+
onboarding_dashboard_reached: [{
|
|
7553
|
+
key: "intent",
|
|
7554
|
+
value: ["organization"],
|
|
7555
|
+
operator: "exact",
|
|
7556
|
+
type: "event"
|
|
7557
|
+
}]
|
|
7558
|
+
}
|
|
7559
|
+
},
|
|
7560
|
+
money_on_screen: {
|
|
7561
|
+
type: "point_event",
|
|
7562
|
+
point_event: "account_balance_read"
|
|
7563
|
+
},
|
|
7564
|
+
fund_account: {
|
|
7565
|
+
type: "point_event",
|
|
7566
|
+
point_event: "faucet_confirmed"
|
|
7567
|
+
},
|
|
7568
|
+
org_member_onboarding: {
|
|
7569
|
+
type: "funnel",
|
|
7570
|
+
steps: ["org_invite_sent", "org_invite_accepted"],
|
|
7571
|
+
drops_on: ["org_invite_expired"]
|
|
7572
|
+
},
|
|
7573
|
+
direct_payment: {
|
|
7574
|
+
type: "funnel",
|
|
7575
|
+
steps: ["payment_initiated", "payment_settled"],
|
|
7576
|
+
drops_on: ["payment_failed"]
|
|
7577
|
+
}
|
|
7578
|
+
};
|
|
7447
7579
|
//#endregion
|
|
7448
7580
|
//#region src/events/money.ts
|
|
7449
7581
|
/**
|
|
@@ -7533,6 +7665,8 @@ const PaymentInitiatedProps = Schema.Struct({
|
|
|
7533
7665
|
execution_id: OptionalString,
|
|
7534
7666
|
payment_lifecycle_id: OptionalString,
|
|
7535
7667
|
...TelemetryEnvelopeProps,
|
|
7668
|
+
payer_kind: JourneyVariantProps.payer_kind,
|
|
7669
|
+
surface: JourneyVariantProps.surface,
|
|
7536
7670
|
...RecipientTelemetryProps,
|
|
7537
7671
|
kind: Schema.String,
|
|
7538
7672
|
payment_id: Schema.String
|
|
@@ -7548,6 +7682,8 @@ const PaymentLifecycleProps = {
|
|
|
7548
7682
|
const PaymentSettledL2Props = Schema.Struct({
|
|
7549
7683
|
...PaymentLifecycleProps,
|
|
7550
7684
|
...TelemetryEnvelopeProps,
|
|
7685
|
+
payer_kind: JourneyVariantProps.payer_kind,
|
|
7686
|
+
surface: JourneyVariantProps.surface,
|
|
7551
7687
|
...RecipientTelemetryProps,
|
|
7552
7688
|
kind: Schema.String,
|
|
7553
7689
|
chain_id: Schema.Finite,
|
|
@@ -7755,6 +7891,7 @@ const OrganizationCreationStartedProps = Schema.Struct({
|
|
|
7755
7891
|
});
|
|
7756
7892
|
const OrganizationCreationReadyProps = Schema.Struct({
|
|
7757
7893
|
...TelemetryEnvelopeProps,
|
|
7894
|
+
surface: JourneyVariantProps.surface,
|
|
7758
7895
|
$insert_id: Schema.String,
|
|
7759
7896
|
organization_id: OrgIdTelemetrySchema,
|
|
7760
7897
|
attempt_number: AttemptNumberSchema,
|
|
@@ -7779,45 +7916,6 @@ const OrganizationCreationFailedProps = Schema.Struct({
|
|
|
7779
7916
|
...ORGANIZATION_SETUP_REASONS
|
|
7780
7917
|
]))
|
|
7781
7918
|
});
|
|
7782
|
-
const OrgCreateStartedProps = Schema.Struct({
|
|
7783
|
-
...TelemetryEnvelopeProps,
|
|
7784
|
-
org_id: OptionalOrgId,
|
|
7785
|
-
email_domain: OptionalString,
|
|
7786
|
-
template: OptionalString
|
|
7787
|
-
});
|
|
7788
|
-
const OrgSafeCreatedProps = Schema.Struct({
|
|
7789
|
-
...TelemetryEnvelopeProps,
|
|
7790
|
-
org_id: OptionalOrgId,
|
|
7791
|
-
chainId: OptionalChainId,
|
|
7792
|
-
safe_address: OptionalAddress
|
|
7793
|
-
});
|
|
7794
|
-
const OrgSafeConfirmedProps = Schema.Struct({
|
|
7795
|
-
...TelemetryEnvelopeProps,
|
|
7796
|
-
org_id: OptionalOrgId,
|
|
7797
|
-
chainId: OptionalChainId,
|
|
7798
|
-
safe_address: OptionalAddress,
|
|
7799
|
-
durationMs: OptionalDurationMs
|
|
7800
|
-
});
|
|
7801
|
-
const OrgRolesSeededProps = Schema.Struct({
|
|
7802
|
-
...TelemetryEnvelopeProps,
|
|
7803
|
-
org_id: OptionalOrgId,
|
|
7804
|
-
chainId: OptionalChainId,
|
|
7805
|
-
role: OptionalString,
|
|
7806
|
-
txHash: OptionalTxHash
|
|
7807
|
-
});
|
|
7808
|
-
const OrgCreatedProps = Schema.Struct({
|
|
7809
|
-
...TelemetryEnvelopeProps,
|
|
7810
|
-
org_id: OptionalOrgId,
|
|
7811
|
-
chainId: OptionalChainId,
|
|
7812
|
-
safe_address: OptionalAddress,
|
|
7813
|
-
durationMs: OptionalDurationMs
|
|
7814
|
-
});
|
|
7815
|
-
const OrgCreateFailedProps = Schema.Struct({
|
|
7816
|
-
...TelemetryEnvelopeProps,
|
|
7817
|
-
...ChainCauseTelemetryProps,
|
|
7818
|
-
org_id: OptionalOrgId,
|
|
7819
|
-
reason: OptionalString
|
|
7820
|
-
});
|
|
7821
7919
|
const OrgInviteSentProps = Schema.Struct({
|
|
7822
7920
|
...TelemetryEnvelopeProps,
|
|
7823
7921
|
org_id: OptionalOrgId,
|
|
@@ -7862,30 +7960,6 @@ const OrganizationCreationFailedTelemetryEventSchema = Schema.Struct({
|
|
|
7862
7960
|
name: Schema.Literal("organization_creation_failed"),
|
|
7863
7961
|
props: OrganizationCreationFailedProps
|
|
7864
7962
|
});
|
|
7865
|
-
const OrgCreateStartedTelemetryEventSchema = Schema.Struct({
|
|
7866
|
-
name: Schema.Literal("org_create_started"),
|
|
7867
|
-
props: OrgCreateStartedProps
|
|
7868
|
-
});
|
|
7869
|
-
const OrgSafeCreatedTelemetryEventSchema = Schema.Struct({
|
|
7870
|
-
name: Schema.Literal("org_safe_created"),
|
|
7871
|
-
props: OrgSafeCreatedProps
|
|
7872
|
-
});
|
|
7873
|
-
const OrgSafeConfirmedTelemetryEventSchema = Schema.Struct({
|
|
7874
|
-
name: Schema.Literal("org_safe_confirmed"),
|
|
7875
|
-
props: OrgSafeConfirmedProps
|
|
7876
|
-
});
|
|
7877
|
-
const OrgRolesSeededTelemetryEventSchema = Schema.Struct({
|
|
7878
|
-
name: Schema.Literal("org_roles_seeded"),
|
|
7879
|
-
props: OrgRolesSeededProps
|
|
7880
|
-
});
|
|
7881
|
-
const OrgCreatedTelemetryEventSchema = Schema.Struct({
|
|
7882
|
-
name: Schema.Literal("org_created"),
|
|
7883
|
-
props: OrgCreatedProps
|
|
7884
|
-
});
|
|
7885
|
-
const OrgCreateFailedTelemetryEventSchema = Schema.Struct({
|
|
7886
|
-
name: Schema.Literal("org_create_failed"),
|
|
7887
|
-
props: OrgCreateFailedProps
|
|
7888
|
-
});
|
|
7889
7963
|
const OrgInviteSentTelemetryEventSchema = Schema.Struct({
|
|
7890
7964
|
name: Schema.Literal("org_invite_sent"),
|
|
7891
7965
|
props: OrgInviteSentProps
|
|
@@ -8284,6 +8358,21 @@ const UiReceiveStepCompletedTelemetryEventSchema = Schema.Struct({
|
|
|
8284
8358
|
account_kind: Schema.optional(AccountKindSchema)
|
|
8285
8359
|
})
|
|
8286
8360
|
});
|
|
8361
|
+
/**
|
|
8362
|
+
* The approval page (`/approve/<id>`) had to ask for sign-in before the person
|
|
8363
|
+
* could review: the browser had no session (`signed_out`), or held a different
|
|
8364
|
+
* account than the one that must sign (`wrong_account`). The browser's session
|
|
8365
|
+
* is separate from the CLI's, so this is the cost of the hand-off. It carries no
|
|
8366
|
+
* email or account of either side.
|
|
8367
|
+
*/
|
|
8368
|
+
const UiApprovalSignInRequiredTelemetryEventSchema = Schema.Struct({
|
|
8369
|
+
name: Schema.Literal("ui_approval_sign_in_required"),
|
|
8370
|
+
props: Schema.Struct({
|
|
8371
|
+
...TelemetryEnvelopeProps,
|
|
8372
|
+
approval_id: Schema.String,
|
|
8373
|
+
reason: Schema.Literals(["signed_out", "wrong_account"])
|
|
8374
|
+
})
|
|
8375
|
+
});
|
|
8287
8376
|
const PayrollGroupChangedTelemetryEventSchema = Schema.Struct({
|
|
8288
8377
|
name: Schema.Literal("payroll_group_changed"),
|
|
8289
8378
|
props: Schema.Struct({
|
|
@@ -8551,6 +8640,8 @@ const CLI_COMMAND_NAMES = [
|
|
|
8551
8640
|
"payment.get",
|
|
8552
8641
|
"payment.wait",
|
|
8553
8642
|
"payment.retry",
|
|
8643
|
+
"payment.cancel",
|
|
8644
|
+
"payment.redirect",
|
|
8554
8645
|
"inbox",
|
|
8555
8646
|
CAPXUL_OPERATIONS.inbox.list,
|
|
8556
8647
|
"inbox.get",
|
|
@@ -8784,10 +8875,14 @@ const BootstrapFailedProps = Schema.Struct({
|
|
|
8784
8875
|
});
|
|
8785
8876
|
const MemberActivationStartedProps = Schema.Struct({
|
|
8786
8877
|
...TelemetryEnvelopeProps,
|
|
8878
|
+
entry_path: JourneyVariantProps.entry_path,
|
|
8879
|
+
surface: JourneyVariantProps.surface,
|
|
8787
8880
|
$insert_id: Schema.String
|
|
8788
8881
|
});
|
|
8789
8882
|
const MemberActivationReadyProps = Schema.Struct({
|
|
8790
8883
|
...TelemetryEnvelopeProps,
|
|
8884
|
+
entry_path: JourneyVariantProps.entry_path,
|
|
8885
|
+
surface: JourneyVariantProps.surface,
|
|
8791
8886
|
$insert_id: Schema.String,
|
|
8792
8887
|
duration_ms: DurationMsSchema
|
|
8793
8888
|
});
|
|
@@ -8880,6 +8975,7 @@ const TELEMETRY_EVENT_SCHEMAS = {
|
|
|
8880
8975
|
payroll_group_changed: PayrollGroupChangedTelemetryEventSchema,
|
|
8881
8976
|
payroll_run_transitioned: PayrollRunTransitionedTelemetryEventSchema,
|
|
8882
8977
|
ui_payroll_action_completed: UiPayrollActionCompletedTelemetryEventSchema,
|
|
8978
|
+
ui_approval_sign_in_required: UiApprovalSignInRequiredTelemetryEventSchema,
|
|
8883
8979
|
ui_contact_action_completed: UiContactActionCompletedTelemetryEventSchema,
|
|
8884
8980
|
cli_diagnostic_completed: CliDiagnosticCompletedTelemetryEventSchema,
|
|
8885
8981
|
cli_first_used: CliFirstUsedTelemetryEventSchema,
|
|
@@ -8923,12 +9019,6 @@ const TELEMETRY_EVENT_SCHEMAS = {
|
|
|
8923
9019
|
bundler_error: BundlerErrorTelemetryEventSchema,
|
|
8924
9020
|
receipt_pending: ReceiptPendingTelemetryEventSchema,
|
|
8925
9021
|
operation_retried: OperationRetriedTelemetryEventSchema,
|
|
8926
|
-
org_create_started: OrgCreateStartedTelemetryEventSchema,
|
|
8927
|
-
org_safe_created: OrgSafeCreatedTelemetryEventSchema,
|
|
8928
|
-
org_safe_confirmed: OrgSafeConfirmedTelemetryEventSchema,
|
|
8929
|
-
org_roles_seeded: OrgRolesSeededTelemetryEventSchema,
|
|
8930
|
-
org_created: OrgCreatedTelemetryEventSchema,
|
|
8931
|
-
org_create_failed: OrgCreateFailedTelemetryEventSchema,
|
|
8932
9022
|
org_invite_sent: OrgInviteSentTelemetryEventSchema,
|
|
8933
9023
|
org_invite_accepted: OrgInviteAcceptedTelemetryEventSchema,
|
|
8934
9024
|
org_invite_expired: OrgInviteExpiredTelemetryEventSchema,
|
|
@@ -8953,14 +9043,7 @@ const FINANCIAL_OPS_TARGET_TELEMETRY_PRODUCERS = [];
|
|
|
8953
9043
|
* A domain node removes its entry when it adds the producer. The telemetry
|
|
8954
9044
|
* gate rejects an entry that has a producer.
|
|
8955
9045
|
*/
|
|
8956
|
-
const CONTRACT_FIRST_TELEMETRY_EVENTS = [
|
|
8957
|
-
"org_create_started",
|
|
8958
|
-
"org_safe_created",
|
|
8959
|
-
"org_safe_confirmed",
|
|
8960
|
-
"org_roles_seeded",
|
|
8961
|
-
"org_created",
|
|
8962
|
-
"org_create_failed"
|
|
8963
|
-
];
|
|
9046
|
+
const CONTRACT_FIRST_TELEMETRY_EVENTS = [];
|
|
8964
9047
|
/**
|
|
8965
9048
|
* Catalog events whose product mapper remains gated on the #1150 frontend
|
|
8966
9049
|
* adoption. L1 S1 removes their retired SDK-flow producers without inventing
|
|
@@ -8981,7 +9064,8 @@ const BROWSER_GATED_TELEMETRY_EVENTS = [
|
|
|
8981
9064
|
"ui_invoice_step_completed",
|
|
8982
9065
|
"ui_treasury_step_completed",
|
|
8983
9066
|
"ui_receive_step_completed",
|
|
8984
|
-
"ui_payroll_action_completed"
|
|
9067
|
+
"ui_payroll_action_completed",
|
|
9068
|
+
"ui_approval_sign_in_required"
|
|
8985
9069
|
];
|
|
8986
9070
|
//#endregion
|
|
8987
9071
|
//#region src/telemetry/track.ts
|
|
@@ -9541,4 +9625,4 @@ var InMemoryTelemetryBusAdapter = class extends EventOnlyPort {
|
|
|
9541
9625
|
}
|
|
9542
9626
|
};
|
|
9543
9627
|
//#endregion
|
|
9544
|
-
export { UiAccessStepCompletedTelemetryEventSchema as $,
|
|
9628
|
+
export { UiAccessStepCompletedTelemetryEventSchema as $, SDK_EXPECTED_OUTCOME_EVENT_NAME as $t, ProvisioningSafeConfirmedTelemetryEventSchema as A, AccountBalanceReadTelemetryEventSchema as At, AuthFailedTelemetryEventSchema as B, PaymentVerificationRetryTelemetryEventSchema as Bt, MemberActivationFailedTelemetryEventSchema as C, OrganizationCreationStartedTelemetryEventSchema as Ct, OnboardingIntentSelectedTelemetryEventSchema as D, OperationRetriedTelemetryEventSchema as Dt, OnboardingDashboardReachedTelemetryEventSchema as E, ChainUpstreamFallbackTelemetryEventSchema as Et, CliFirstUsedTelemetryEventSchema as F, FaucetRequestedTelemetryEventSchema as Ft, AuthVerifiedTelemetryEventSchema as G, ChainAttemptSchema as Gt, AuthOtpExpiredTelemetryEventSchema as H, JOURNEYS as Ht, CLI_CAPABILITIES as I, PaymentFailedTelemetryEventSchema as It, NativeAuthorizationConnectedTelemetryEventSchema as J, EXPECTED_OUTCOME_EVENT_NAME as Jt, IdentityRefusedTelemetryEventSchema as K, ChainUpstreamSchema as Kt, CLI_COMMAND_NAMES as L, PaymentInitiatedTelemetryEventSchema as Lt, CliCommandCompletedTelemetryEventSchema as M, DepositSettledTelemetryEventSchema as Mt, CliCommandStartedTelemetryEventSchema as N, FaucetConfirmedTelemetryEventSchema as Nt, OnboardingOrganizationSubmittedTelemetryEventSchema as O, ReceiptPendingTelemetryEventSchema as Ot, CliDiagnosticCompletedTelemetryEventSchema as P, FaucetFailedTelemetryEventSchema as Pt, NativeAuthorizationStartedTelemetryEventSchema as Q, ResponseHeadersSchema as Qt, CLI_INVOCATION_KINDS as R, PaymentLifecycleTransitionTelemetryEventSchema as Rt, BootstrapResolvedTelemetryEventSchema as S, OrganizationCreationReadyTelemetryEventSchema as St, MemberActivationStartedTelemetryEventSchema as T, BundlerErrorTelemetryEventSchema as Tt, AuthOtpRequestedTelemetryEventSchema as U, TELEMETRY_JOURNEYS as Ut, AuthOtpDeliveredTelemetryEventSchema as V, QuickPayExternalAddressAcknowledgedTelemetryEventSchema as Vt, AuthSignedOutTelemetryEventSchema as W, CAPXUL_ENVS as Wt, NativeAuthorizationFailedTelemetryEventSchema as X, JourneyVariantProps as Xt, NativeAuthorizationDeniedTelemetryEventSchema as Y, FailureModeSchema as Yt, NativeAuthorizationReviewedTelemetryEventSchema as Z, PII as Zt, CONTRACT_FIRST_TELEMETRY_EVENTS as _, OrgInviteAcceptedTelemetryEventSchema as _t, initializeCapxulBrowserAnalytics as a, isCapxulOperation as an, UiInvoiceStepCompletedTelemetryEventSchema as at, TELEMETRY_EVENT_SCHEMAS as b, OrgInviteSentTelemetryEventSchema as bt, utilityAppAnalytics as c, ORGANIZATION_SETUP_STATUSES as cn, UiTreasuryStepCompletedTelemetryEventSchema as ct, redactTelemetryEvent as d, isCredentialField as dn, IndexerDriftCorrectedTelemetryEventSchema as dt, SYNCABLE_CAPXUL_ENVS as en, InvoiceIssuedTelemetryEventSchema as et, redactTelemetryProps as f, CAPXUL_ERROR_CODES as fn, MovementScanCheckpointTelemetryEventSchema as ft, BROWSER_GATED_TELEMETRY_EVENTS as g, ContactRelationshipChangedTelemetryEventSchema as gt, track as h, PermissionMirrorVerificationTelemetryEventSchema as ht, createPostHogBrowserPageviewTracker as i, CAPXUL_OPERATIONS as in, UiApprovalSignInRequiredTelemetryEventSchema as it, ProvisioningSafeCreatedTelemetryEventSchema as j, DepositInitiatedTelemetryEventSchema as jt, OnboardingProfileSubmittedTelemetryEventSchema as k, AccountBalanceFailedTelemetryEventSchema as kt, sanitizePostHogBrowserEvent as l, redactSecrets as ln, ActivityAnnotationSavedTelemetryEventSchema as lt, setTrackHandler as m, MovementScanWindowTelemetryEventSchema as mt, RecordingTelemetryAdapter as n, stampTelemetryEnvelope as nn, PayrollGroupChangedTelemetryEventSchema as nt, initializePostHogBrowserAnalytics as o, normalizeCapxulOperation as on, UiPayrollActionCompletedTelemetryEventSchema as ot, getTrackHandler as p, FAILURE_MODES as pn, MovementScanIncidentTelemetryEventSchema as pt, NativeAuthorizationAcceptedTelemetryEventSchema as q, EXCEPTION_EVENT_NAME as qt, createCapxulBeforeSend as r, TELEMETRY_EVENT_NAMES as rn, PayrollRunTransitionedTelemetryEventSchema as rt, productAppAnalytics as s, ORGANIZATION_SETUP_REASONS as sn, UiReceiveStepCompletedTelemetryEventSchema as st, InMemoryTelemetryBusAdapter as t, TELEMETRY_PRODUCERS as tn, InvoiceRequestTransitionedTelemetryEventSchema as tt, maskCapturedNetworkRequest as u, redactUrlSecrets as un, UiActivityActionCompletedTelemetryEventSchema as ut, FINANCIAL_OPS_TARGET_TELEMETRY_PRODUCERS as v, OrgInviteExpiredTelemetryEventSchema as vt, MemberActivationReadyTelemetryEventSchema as w, UiContactActionCompletedTelemetryEventSchema as wt, BootstrapFailedTelemetryEventSchema as x, OrganizationCreationFailedTelemetryEventSchema as xt, PRODUCT_MAPPER_GATED_TELEMETRY_EVENTS as y, OrgInviteProgressedTelemetryEventSchema as yt, AccessRecoveryCompletedTelemetryEventSchema as z, PaymentSettledTelemetryEventSchema as zt };
|