@strimz/shared-types 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +69 -0
  3. package/dist/agents.cjs +148 -0
  4. package/dist/agents.cjs.map +1 -0
  5. package/dist/agents.d.cts +317 -0
  6. package/dist/agents.d.ts +317 -0
  7. package/dist/agents.js +137 -0
  8. package/dist/agents.js.map +1 -0
  9. package/dist/api-keys.cjs +91 -0
  10. package/dist/api-keys.cjs.map +1 -0
  11. package/dist/api-keys.d.cts +155 -0
  12. package/dist/api-keys.d.ts +155 -0
  13. package/dist/api-keys.js +84 -0
  14. package/dist/api-keys.js.map +1 -0
  15. package/dist/common.cjs +56 -0
  16. package/dist/common.cjs.map +1 -0
  17. package/dist/common.d.cts +82 -0
  18. package/dist/common.d.ts +82 -0
  19. package/dist/common.js +37 -0
  20. package/dist/common.js.map +1 -0
  21. package/dist/compliance.cjs +61 -0
  22. package/dist/compliance.cjs.map +1 -0
  23. package/dist/compliance.d.cts +59 -0
  24. package/dist/compliance.d.ts +59 -0
  25. package/dist/compliance.js +56 -0
  26. package/dist/compliance.js.map +1 -0
  27. package/dist/customers.cjs +56 -0
  28. package/dist/customers.cjs.map +1 -0
  29. package/dist/customers.d.cts +64 -0
  30. package/dist/customers.d.ts +64 -0
  31. package/dist/customers.js +53 -0
  32. package/dist/customers.js.map +1 -0
  33. package/dist/events.cjs +675 -0
  34. package/dist/events.cjs.map +1 -0
  35. package/dist/events.d.cts +7907 -0
  36. package/dist/events.d.ts +7907 -0
  37. package/dist/events.js +650 -0
  38. package/dist/events.js.map +1 -0
  39. package/dist/index.cjs +976 -0
  40. package/dist/index.cjs.map +1 -0
  41. package/dist/index.d.cts +113 -0
  42. package/dist/index.d.ts +113 -0
  43. package/dist/index.js +858 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/invoices.cjs +72 -0
  46. package/dist/invoices.cjs.map +1 -0
  47. package/dist/invoices.d.cts +159 -0
  48. package/dist/invoices.d.ts +159 -0
  49. package/dist/invoices.js +67 -0
  50. package/dist/invoices.js.map +1 -0
  51. package/dist/merchants.cjs +104 -0
  52. package/dist/merchants.cjs.map +1 -0
  53. package/dist/merchants.d.cts +259 -0
  54. package/dist/merchants.d.ts +259 -0
  55. package/dist/merchants.js +93 -0
  56. package/dist/merchants.js.map +1 -0
  57. package/dist/payment-sessions.cjs +125 -0
  58. package/dist/payment-sessions.cjs.map +1 -0
  59. package/dist/payment-sessions.d.cts +180 -0
  60. package/dist/payment-sessions.d.ts +180 -0
  61. package/dist/payment-sessions.js +120 -0
  62. package/dist/payment-sessions.js.map +1 -0
  63. package/dist/refunds.cjs +81 -0
  64. package/dist/refunds.cjs.map +1 -0
  65. package/dist/refunds.d.cts +91 -0
  66. package/dist/refunds.d.ts +91 -0
  67. package/dist/refunds.js +75 -0
  68. package/dist/refunds.js.map +1 -0
  69. package/dist/storefronts.cjs +223 -0
  70. package/dist/storefronts.cjs.map +1 -0
  71. package/dist/storefronts.d.cts +177 -0
  72. package/dist/storefronts.d.ts +177 -0
  73. package/dist/storefronts.js +216 -0
  74. package/dist/storefronts.js.map +1 -0
  75. package/dist/subscriptions.cjs +175 -0
  76. package/dist/subscriptions.cjs.map +1 -0
  77. package/dist/subscriptions.d.cts +290 -0
  78. package/dist/subscriptions.d.ts +290 -0
  79. package/dist/subscriptions.js +163 -0
  80. package/dist/subscriptions.js.map +1 -0
  81. package/dist/transactions.cjs +67 -0
  82. package/dist/transactions.cjs.map +1 -0
  83. package/dist/transactions.d.cts +78 -0
  84. package/dist/transactions.d.ts +78 -0
  85. package/dist/transactions.js +63 -0
  86. package/dist/transactions.js.map +1 -0
  87. package/dist/webhooks.cjs +116 -0
  88. package/dist/webhooks.cjs.map +1 -0
  89. package/dist/webhooks.d.cts +201 -0
  90. package/dist/webhooks.d.ts +201 -0
  91. package/dist/webhooks.js +107 -0
  92. package/dist/webhooks.js.map +1 -0
  93. package/package.json +134 -0
  94. package/src/agents.ts +149 -0
  95. package/src/api-keys.ts +78 -0
  96. package/src/common.ts +113 -0
  97. package/src/compliance.ts +40 -0
  98. package/src/customers.ts +40 -0
  99. package/src/events.ts +176 -0
  100. package/src/index.ts +23 -0
  101. package/src/invoices.ts +53 -0
  102. package/src/merchants.ts +104 -0
  103. package/src/payment-sessions.ts +131 -0
  104. package/src/refunds.ts +68 -0
  105. package/src/storefronts.ts +89 -0
  106. package/src/subscriptions.ts +180 -0
  107. package/src/tokens.ts +60 -0
  108. package/src/transactions.ts +52 -0
  109. package/src/webhooks.ts +109 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Strimz
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,69 @@
1
+ # @strimz/shared-types
2
+
3
+ Zod schemas and inferred TypeScript types for every entity, API input, and webhook event in the Strimz platform. The schema is the source of truth; types are inferred via `z.infer<>` so wire format and compile-time shape never diverge.
4
+
5
+ ## Who uses what
6
+
7
+ | Consumer | Why |
8
+ | ------------------- | ---------------------------------------------------------------------- |
9
+ | `apps/api` | Runtime validation of every request body, query string, and path param |
10
+ | `apps/scheduler` | Validation of queued job payloads |
11
+ | `apps/web` | React Hook Form resolvers, typed API client responses |
12
+ | `@strimz/sdk` | Typed request builders and typed response objects |
13
+ | `@strimz/sdk-react` | Typed props for `<StrimzPayButton />` and hooks |
14
+
15
+ ## Module map
16
+
17
+ | Subpath | Contains |
18
+ | ------------------- | ------------------------------------------------------------------------------------------------------- |
19
+ | `/common` | Primitives: ids, EVM address, tx hash, email, URL, money, pagination, metadata, mode, tier, environment |
20
+ | `/merchants` | Merchant entity, login, member invites, tier changes |
21
+ | `/api-keys` | Secret/publishable keys, scopes, rotation |
22
+ | `/customers` | Payer identity |
23
+ | `/payment-sessions` | One-shot session entity + state machine + `createPaymentSessionInputSchema` |
24
+ | `/transactions` | Confirmed on-chain payment records |
25
+ | `/subscriptions` | Plans, active subscriptions, per-period charges (with `chargeAttemptId`) |
26
+ | `/refunds` | Merchant-initiated refund entity + signature flow |
27
+ | `/webhooks` | Endpoints, deliveries, replay |
28
+ | `/compliance` | Sanctions screening log |
29
+ | `/agents` | Identity, merchant config, activity log, ERC-8183 jobs |
30
+ | `/storefronts` | Storefront + product |
31
+ | `/invoices` | Invoice + line items |
32
+ | `/events` | Discriminated `StrimzWebhookEvent` union covering every webhook payload shape |
33
+
34
+ The package root re-exports every subpath.
35
+
36
+ ## Usage
37
+
38
+ ```ts
39
+ import {
40
+ createPaymentSessionInputSchema,
41
+ type CreatePaymentSessionInput,
42
+ } from '@strimz/shared-types'
43
+
44
+ const parsed: CreatePaymentSessionInput = createPaymentSessionInputSchema.parse(req.body)
45
+ ```
46
+
47
+ ```ts
48
+ // In a webhook handler. Exhaustive over every event kind.
49
+ import { webhookEventSchema, type StrimzWebhookEvent } from '@strimz/shared-types/events'
50
+
51
+ function handle(event: StrimzWebhookEvent) {
52
+ switch (event.type) {
53
+ case 'payment.completed':
54
+ // event.data is typed as { session, transaction }
55
+ break
56
+ case 'subscription.charge_failed':
57
+ // event.data is typed as { subscription, charge }
58
+ break
59
+ // TypeScript enforces exhaustiveness
60
+ }
61
+ }
62
+ ```
63
+
64
+ ## Boundaries
65
+
66
+ - Schemas describe wire format. They do not contain business logic, persistence, or side effects.
67
+ - Amounts are carried as decimal strings of the token's smallest unit (USDC has 6 decimals, so `"1000000"` is 1 USDC). This preserves precision beyond `Number.MAX_SAFE_INTEGER`.
68
+ - EVM addresses are normalised to lowercase on parse. Transaction hashes are preserved verbatim.
69
+ - Optional fields are marked `.optional()` (omission OK) and nullable fields are `.nullable()` (explicit `null` OK). These are different and not interchangeable.
@@ -0,0 +1,148 @@
1
+ 'use strict';
2
+
3
+ var zod = require('zod');
4
+
5
+ // src/agents.ts
6
+ var idSchema = zod.z.string().min(1).max(64).regex(/^[a-zA-Z0-9_-]+$/, "id must be URL-safe");
7
+ var evmAddressSchema = zod.z.string().regex(/^0x[a-fA-F0-9]{40}$/, "must be a 0x-prefixed 40-character hex EVM address").transform((v) => v.toLowerCase());
8
+ var evmTxHashSchema = zod.z.string().regex(/^0x[a-fA-F0-9]{64}$/, "must be a 0x-prefixed 64-character hex EVM transaction hash");
9
+ zod.z.string().email().trim().toLowerCase().max(320);
10
+ zod.z.string().url().refine((v) => v.startsWith("https://"), {
11
+ message: "must be an https:// URL"
12
+ });
13
+ zod.z.string().url();
14
+ var tokenAmountSchema = zod.z.string().regex(/^[0-9]+$/, "must be a non-negative integer string (base-10)").refine((v) => BigInt(v) >= 0n, "must be >= 0");
15
+ zod.z.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
16
+ var isoTimestampSchema = zod.z.string().datetime({ offset: true, message: "must be an ISO-8601 timestamp" });
17
+ zod.z.string().length(2).regex(/^[A-Z]{2}$/, "must be an ISO-3166 alpha-2 country code");
18
+ zod.z.object({
19
+ limit: zod.z.number().int().min(1).max(100).default(25),
20
+ cursor: zod.z.string().min(1).max(200).nullish()
21
+ });
22
+ var metadataSchema = zod.z.record(
23
+ zod.z.string().min(1).max(40),
24
+ zod.z.union([zod.z.string().max(500), zod.z.number(), zod.z.boolean(), zod.z.null()])
25
+ ).refine((m) => Object.keys(m).length <= 50, "at most 50 metadata keys").default({});
26
+ zod.z.enum(["test", "live"]);
27
+ zod.z.enum(["USDC", "EURC"]);
28
+ zod.z.enum(["USDC", "EURC", "USYC"]);
29
+ zod.z.enum(["free", "growth", "business", "enterprise"]);
30
+ zod.z.enum(["testnet", "mainnet"]);
31
+
32
+ // src/agents.ts
33
+ var agentIdentitySchema = zod.z.object({
34
+ id: idSchema,
35
+ /** ERC-8004 on-chain identity address. */
36
+ onchainAddress: evmAddressSchema,
37
+ /** Public key or agent credential digest, as emitted by ERC-8004. */
38
+ credentialDigest: zod.z.string().regex(/^0x[a-fA-F0-9]+$/),
39
+ name: zod.z.string().min(1).max(120),
40
+ version: zod.z.string().min(1).max(40),
41
+ reputationScore: zod.z.number().min(0).max(100).nullable(),
42
+ registeredAt: isoTimestampSchema
43
+ });
44
+ var agentCapabilitySchema = zod.z.enum([
45
+ "identity",
46
+ "recovery",
47
+ "routing",
48
+ "cashflow",
49
+ "commerce",
50
+ "pricing_intelligence"
51
+ ]);
52
+ var agentMerchantConfigSchema = zod.z.object({
53
+ merchantId: idSchema,
54
+ enabledCapabilities: zod.z.array(agentCapabilitySchema).default([]),
55
+ recovery: zod.z.object({
56
+ gracePeriodHours: zod.z.union([zod.z.literal(24), zod.z.literal(48), zod.z.literal(72)]).default(48),
57
+ strategy: zod.z.enum(["once", "twice", "until_grace_ends"]).default("twice"),
58
+ notificationTemplate: zod.z.string().max(2e3).nullable()
59
+ }),
60
+ cashflow: zod.z.object({
61
+ digestEnabled: zod.z.boolean().default(false),
62
+ anomalySensitivity: zod.z.enum(["low", "medium", "high"]).default("medium"),
63
+ autoConvertToYield: zod.z.boolean().default(false),
64
+ minimumLiquidReserveCents: zod.z.number().int().nonnegative().default(1e5)
65
+ }),
66
+ commerce: zod.z.object({
67
+ requireHumanApprovalAboveUsdCents: zod.z.number().int().nonnegative().default(1e5),
68
+ approvedVendors: zod.z.array(evmAddressSchema).default([]),
69
+ monthlySpendCapUsdCents: zod.z.number().int().nonnegative().nullable()
70
+ }),
71
+ updatedAt: isoTimestampSchema
72
+ });
73
+ var updateAgentConfigInputSchema = agentMerchantConfigSchema.omit({ merchantId: true, updatedAt: true }).partial();
74
+ var agentActionTypeSchema = zod.z.enum([
75
+ "recovery_notification_sent",
76
+ "recovery_retry_scheduled",
77
+ "recovery_retry_executed",
78
+ "recovery_abandoned",
79
+ "routing_bridge_initiated",
80
+ "routing_payment_completed",
81
+ "cashflow_digest_sent",
82
+ "cashflow_anomaly_flagged",
83
+ "cashflow_yield_converted",
84
+ "commerce_job_created",
85
+ "commerce_job_approved",
86
+ "commerce_job_completed",
87
+ "commerce_job_disputed"
88
+ ]);
89
+ var agentActionOutcomeSchema = zod.z.enum(["success", "failure", "pending", "skipped"]);
90
+ var agentActivityLogSchema = zod.z.object({
91
+ id: idSchema,
92
+ merchantId: idSchema,
93
+ capability: agentCapabilitySchema,
94
+ actionType: agentActionTypeSchema,
95
+ outcome: agentActionOutcomeSchema,
96
+ subscriptionId: idSchema.nullable(),
97
+ transactionId: idSchema.nullable(),
98
+ jobId: idSchema.nullable(),
99
+ metadata: metadataSchema,
100
+ createdAt: isoTimestampSchema
101
+ });
102
+ var agentJobStatusSchema = zod.z.enum([
103
+ "proposed",
104
+ "accepted",
105
+ "in_progress",
106
+ "delivered",
107
+ "approved",
108
+ "completed",
109
+ "disputed",
110
+ "cancelled"
111
+ ]);
112
+ var agentJobSchema = zod.z.object({
113
+ id: idSchema,
114
+ merchantId: idSchema,
115
+ /** On-chain job id from StrimzAgentEscrow. */
116
+ onchainJobId: zod.z.number().int().nonnegative().nullable(),
117
+ vendorAddress: evmAddressSchema,
118
+ description: zod.z.string().min(1).max(2e3),
119
+ amount: tokenAmountSchema,
120
+ currency: zod.z.enum(["USDC", "EURC"]),
121
+ status: agentJobStatusSchema,
122
+ assessorAddress: evmAddressSchema,
123
+ deliverableHash: zod.z.string().regex(/^0x[a-fA-F0-9]+$/).nullable(),
124
+ escrowTxHash: evmTxHashSchema.nullable(),
125
+ releaseTxHash: evmTxHashSchema.nullable(),
126
+ createdAt: isoTimestampSchema,
127
+ completedAt: isoTimestampSchema.nullable()
128
+ });
129
+ var createAgentJobInputSchema = zod.z.object({
130
+ vendorAddress: evmAddressSchema,
131
+ description: zod.z.string().min(1).max(2e3),
132
+ amount: tokenAmountSchema,
133
+ currency: zod.z.enum(["USDC", "EURC"]),
134
+ assessorAddress: evmAddressSchema.optional()
135
+ });
136
+
137
+ exports.agentActionOutcomeSchema = agentActionOutcomeSchema;
138
+ exports.agentActionTypeSchema = agentActionTypeSchema;
139
+ exports.agentActivityLogSchema = agentActivityLogSchema;
140
+ exports.agentCapabilitySchema = agentCapabilitySchema;
141
+ exports.agentIdentitySchema = agentIdentitySchema;
142
+ exports.agentJobSchema = agentJobSchema;
143
+ exports.agentJobStatusSchema = agentJobStatusSchema;
144
+ exports.agentMerchantConfigSchema = agentMerchantConfigSchema;
145
+ exports.createAgentJobInputSchema = createAgentJobInputSchema;
146
+ exports.updateAgentConfigInputSchema = updateAgentConfigInputSchema;
147
+ //# sourceMappingURL=agents.cjs.map
148
+ //# sourceMappingURL=agents.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common.ts","../src/agents.ts"],"names":["z"],"mappings":"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","file":"agents.cjs","sourcesContent":["/**\n * Primitive schemas shared across every entity.\n * Every higher-level schema builds on these so validation is consistent.\n */\n\nimport { z } from 'zod'\n\n/** CUID2 or UUID-style opaque identifier. */\nexport const idSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(/^[a-zA-Z0-9_-]+$/, 'id must be URL-safe')\n\n/** EVM address. Hex-encoded, 0x-prefixed, 20 bytes. Normalised to lowercase. */\nexport const evmAddressSchema = z\n .string()\n .regex(/^0x[a-fA-F0-9]{40}$/, 'must be a 0x-prefixed 40-character hex EVM address')\n .transform((v) => v.toLowerCase())\n\n/** EVM transaction hash. 32-byte hex. */\nexport const evmTxHashSchema = z\n .string()\n .regex(/^0x[a-fA-F0-9]{64}$/, 'must be a 0x-prefixed 64-character hex EVM transaction hash')\n\n/** Email address, trimmed and lower-cased. */\nexport const emailSchema = z.string().email().trim().toLowerCase().max(320)\n\n/** HTTPS URL. No http:// allowed outside dev. */\nexport const httpsUrlSchema = z\n .string()\n .url()\n .refine((v) => v.startsWith('https://'), {\n message: 'must be an https:// URL',\n })\n\n/** URL permitting http and https (dev + prod). */\nexport const httpUrlSchema = z.string().url()\n\n/**\n * Amount expressed in the token's smallest unit, serialised as a string to\n * preserve precision beyond `Number.MAX_SAFE_INTEGER`. For USDC (6 decimals),\n * 1 USDC is the string \"1000000\".\n */\nexport const tokenAmountSchema = z\n .string()\n .regex(/^[0-9]+$/, 'must be a non-negative integer string (base-10)')\n .refine((v) => BigInt(v) >= 0n, 'must be >= 0')\n\n/** Unsigned integer up to 2^53 - 1; validated and returned as number. */\nexport const uintSchema = z.number().int().min(0).max(Number.MAX_SAFE_INTEGER)\n\n/** ISO-8601 timestamp string (`.toISOString()`-compatible). */\nexport const isoTimestampSchema = z\n .string()\n .datetime({ offset: true, message: 'must be an ISO-8601 timestamp' })\n\n/** Two-letter ISO-3166 country code. */\nexport const countryCodeSchema = z\n .string()\n .length(2)\n .regex(/^[A-Z]{2}$/, 'must be an ISO-3166 alpha-2 country code')\n\n/** Pagination inputs used by every list endpoint. */\nexport const paginationInputSchema = z.object({\n limit: z.number().int().min(1).max(100).default(25),\n cursor: z.string().min(1).max(200).nullish(),\n})\nexport type PaginationInput = z.infer<typeof paginationInputSchema>\n\n/** Pagination envelope used by every list response. */\nexport const makePaginatedSchema = <T extends z.ZodTypeAny>(item: T) =>\n z.object({\n data: z.array(item),\n nextCursor: z.string().nullable(),\n hasMore: z.boolean(),\n })\n\n/** Free-form metadata bag the API round-trips for merchants. */\nexport const metadataSchema = z\n .record(\n z.string().min(1).max(40),\n z.union([z.string().max(500), z.number(), z.boolean(), z.null()]),\n )\n .refine((m) => Object.keys(m).length <= 50, 'at most 50 metadata keys')\n .default({})\n\n/** Environment mode carried on every mode-scoped resource. */\nexport const modeSchema = z.enum(['test', 'live'])\nexport type Mode = z.infer<typeof modeSchema>\n\n/** Payment token enum — mirrors `@strimz/shared-config`. */\nexport const paymentCurrencySchema = z.enum(['USDC', 'EURC'])\nexport type PaymentCurrency = z.infer<typeof paymentCurrencySchema>\n\n/** Every display-level currency (payment + treasury). */\nexport const tokenSymbolSchema = z.enum(['USDC', 'EURC', 'USYC'])\nexport type TokenSymbol = z.infer<typeof tokenSymbolSchema>\n\n/** Merchant tier enum — mirrors `@strimz/shared-config`. */\nexport const merchantTierSchema = z.enum(['free', 'growth', 'business', 'enterprise'])\nexport type MerchantTier = z.infer<typeof merchantTierSchema>\n\n/** Arc environment enum. */\nexport const arcEnvironmentSchema = z.enum(['testnet', 'mainnet'])\nexport type ArcEnvironment = z.infer<typeof arcEnvironmentSchema>\n\nexport type Id = z.infer<typeof idSchema>\nexport type EvmAddress = z.infer<typeof evmAddressSchema>\nexport type EvmTxHash = z.infer<typeof evmTxHashSchema>\nexport type TokenAmount = z.infer<typeof tokenAmountSchema>\nexport type IsoTimestamp = z.infer<typeof isoTimestampSchema>\nexport type Metadata = z.infer<typeof metadataSchema>\n","/**\n * AI AutoPay Agent — identity, configuration, activity log, and ERC-8183 jobs.\n */\n\nimport { z } from 'zod'\nimport {\n evmAddressSchema,\n evmTxHashSchema,\n idSchema,\n isoTimestampSchema,\n metadataSchema,\n tokenAmountSchema,\n} from './common.js'\n\n// ---------- Identity ----------\n\nexport const agentIdentitySchema = z.object({\n id: idSchema,\n /** ERC-8004 on-chain identity address. */\n onchainAddress: evmAddressSchema,\n /** Public key or agent credential digest, as emitted by ERC-8004. */\n credentialDigest: z.string().regex(/^0x[a-fA-F0-9]+$/),\n name: z.string().min(1).max(120),\n version: z.string().min(1).max(40),\n reputationScore: z.number().min(0).max(100).nullable(),\n registeredAt: isoTimestampSchema,\n})\nexport type AgentIdentity = z.infer<typeof agentIdentitySchema>\n\n// ---------- Merchant config ----------\n\nexport const agentCapabilitySchema = z.enum([\n 'identity',\n 'recovery',\n 'routing',\n 'cashflow',\n 'commerce',\n 'pricing_intelligence',\n])\nexport type AgentCapability = z.infer<typeof agentCapabilitySchema>\n\nexport const agentMerchantConfigSchema = z.object({\n merchantId: idSchema,\n enabledCapabilities: z.array(agentCapabilitySchema).default([]),\n recovery: z.object({\n gracePeriodHours: z.union([z.literal(24), z.literal(48), z.literal(72)]).default(48),\n strategy: z.enum(['once', 'twice', 'until_grace_ends']).default('twice'),\n notificationTemplate: z.string().max(2000).nullable(),\n }),\n cashflow: z.object({\n digestEnabled: z.boolean().default(false),\n anomalySensitivity: z.enum(['low', 'medium', 'high']).default('medium'),\n autoConvertToYield: z.boolean().default(false),\n minimumLiquidReserveCents: z.number().int().nonnegative().default(100_000),\n }),\n commerce: z.object({\n requireHumanApprovalAboveUsdCents: z.number().int().nonnegative().default(100_000),\n approvedVendors: z.array(evmAddressSchema).default([]),\n monthlySpendCapUsdCents: z.number().int().nonnegative().nullable(),\n }),\n updatedAt: isoTimestampSchema,\n})\nexport type AgentMerchantConfig = z.infer<typeof agentMerchantConfigSchema>\n\nexport const updateAgentConfigInputSchema = agentMerchantConfigSchema\n .omit({ merchantId: true, updatedAt: true })\n .partial()\nexport type UpdateAgentConfigInput = z.infer<typeof updateAgentConfigInputSchema>\n\n// ---------- Activity log ----------\n\nexport const agentActionTypeSchema = z.enum([\n 'recovery_notification_sent',\n 'recovery_retry_scheduled',\n 'recovery_retry_executed',\n 'recovery_abandoned',\n 'routing_bridge_initiated',\n 'routing_payment_completed',\n 'cashflow_digest_sent',\n 'cashflow_anomaly_flagged',\n 'cashflow_yield_converted',\n 'commerce_job_created',\n 'commerce_job_approved',\n 'commerce_job_completed',\n 'commerce_job_disputed',\n])\nexport type AgentActionType = z.infer<typeof agentActionTypeSchema>\n\nexport const agentActionOutcomeSchema = z.enum(['success', 'failure', 'pending', 'skipped'])\nexport type AgentActionOutcome = z.infer<typeof agentActionOutcomeSchema>\n\nexport const agentActivityLogSchema = z.object({\n id: idSchema,\n merchantId: idSchema,\n capability: agentCapabilitySchema,\n actionType: agentActionTypeSchema,\n outcome: agentActionOutcomeSchema,\n subscriptionId: idSchema.nullable(),\n transactionId: idSchema.nullable(),\n jobId: idSchema.nullable(),\n metadata: metadataSchema,\n createdAt: isoTimestampSchema,\n})\nexport type AgentActivityLog = z.infer<typeof agentActivityLogSchema>\n\n// ---------- ERC-8183 jobs ----------\n\nexport const agentJobStatusSchema = z.enum([\n 'proposed',\n 'accepted',\n 'in_progress',\n 'delivered',\n 'approved',\n 'completed',\n 'disputed',\n 'cancelled',\n])\nexport type AgentJobStatus = z.infer<typeof agentJobStatusSchema>\n\nexport const agentJobSchema = z.object({\n id: idSchema,\n merchantId: idSchema,\n /** On-chain job id from StrimzAgentEscrow. */\n onchainJobId: z.number().int().nonnegative().nullable(),\n vendorAddress: evmAddressSchema,\n description: z.string().min(1).max(2000),\n amount: tokenAmountSchema,\n currency: z.enum(['USDC', 'EURC']),\n status: agentJobStatusSchema,\n assessorAddress: evmAddressSchema,\n deliverableHash: z\n .string()\n .regex(/^0x[a-fA-F0-9]+$/)\n .nullable(),\n escrowTxHash: evmTxHashSchema.nullable(),\n releaseTxHash: evmTxHashSchema.nullable(),\n createdAt: isoTimestampSchema,\n completedAt: isoTimestampSchema.nullable(),\n})\nexport type AgentJob = z.infer<typeof agentJobSchema>\n\nexport const createAgentJobInputSchema = z.object({\n vendorAddress: evmAddressSchema,\n description: z.string().min(1).max(2000),\n amount: tokenAmountSchema,\n currency: z.enum(['USDC', 'EURC']),\n assessorAddress: evmAddressSchema.optional(),\n})\nexport type CreateAgentJobInput = z.infer<typeof createAgentJobInputSchema>\n"]}
@@ -0,0 +1,317 @@
1
+ import { z } from 'zod';
2
+
3
+ /**
4
+ * AI AutoPay Agent — identity, configuration, activity log, and ERC-8183 jobs.
5
+ */
6
+
7
+ declare const agentIdentitySchema: z.ZodObject<{
8
+ id: z.ZodString;
9
+ /** ERC-8004 on-chain identity address. */
10
+ onchainAddress: z.ZodEffects<z.ZodString, string, string>;
11
+ /** Public key or agent credential digest, as emitted by ERC-8004. */
12
+ credentialDigest: z.ZodString;
13
+ name: z.ZodString;
14
+ version: z.ZodString;
15
+ reputationScore: z.ZodNullable<z.ZodNumber>;
16
+ registeredAt: z.ZodString;
17
+ }, "strip", z.ZodTypeAny, {
18
+ id: string;
19
+ onchainAddress: string;
20
+ credentialDigest: string;
21
+ name: string;
22
+ version: string;
23
+ reputationScore: number | null;
24
+ registeredAt: string;
25
+ }, {
26
+ id: string;
27
+ onchainAddress: string;
28
+ credentialDigest: string;
29
+ name: string;
30
+ version: string;
31
+ reputationScore: number | null;
32
+ registeredAt: string;
33
+ }>;
34
+ type AgentIdentity = z.infer<typeof agentIdentitySchema>;
35
+ declare const agentCapabilitySchema: z.ZodEnum<["identity", "recovery", "routing", "cashflow", "commerce", "pricing_intelligence"]>;
36
+ type AgentCapability = z.infer<typeof agentCapabilitySchema>;
37
+ declare const agentMerchantConfigSchema: z.ZodObject<{
38
+ merchantId: z.ZodString;
39
+ enabledCapabilities: z.ZodDefault<z.ZodArray<z.ZodEnum<["identity", "recovery", "routing", "cashflow", "commerce", "pricing_intelligence"]>, "many">>;
40
+ recovery: z.ZodObject<{
41
+ gracePeriodHours: z.ZodDefault<z.ZodUnion<[z.ZodLiteral<24>, z.ZodLiteral<48>, z.ZodLiteral<72>]>>;
42
+ strategy: z.ZodDefault<z.ZodEnum<["once", "twice", "until_grace_ends"]>>;
43
+ notificationTemplate: z.ZodNullable<z.ZodString>;
44
+ }, "strip", z.ZodTypeAny, {
45
+ gracePeriodHours: 24 | 48 | 72;
46
+ strategy: "once" | "twice" | "until_grace_ends";
47
+ notificationTemplate: string | null;
48
+ }, {
49
+ notificationTemplate: string | null;
50
+ gracePeriodHours?: 24 | 48 | 72 | undefined;
51
+ strategy?: "once" | "twice" | "until_grace_ends" | undefined;
52
+ }>;
53
+ cashflow: z.ZodObject<{
54
+ digestEnabled: z.ZodDefault<z.ZodBoolean>;
55
+ anomalySensitivity: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
56
+ autoConvertToYield: z.ZodDefault<z.ZodBoolean>;
57
+ minimumLiquidReserveCents: z.ZodDefault<z.ZodNumber>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ digestEnabled: boolean;
60
+ anomalySensitivity: "low" | "medium" | "high";
61
+ autoConvertToYield: boolean;
62
+ minimumLiquidReserveCents: number;
63
+ }, {
64
+ digestEnabled?: boolean | undefined;
65
+ anomalySensitivity?: "low" | "medium" | "high" | undefined;
66
+ autoConvertToYield?: boolean | undefined;
67
+ minimumLiquidReserveCents?: number | undefined;
68
+ }>;
69
+ commerce: z.ZodObject<{
70
+ requireHumanApprovalAboveUsdCents: z.ZodDefault<z.ZodNumber>;
71
+ approvedVendors: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
72
+ monthlySpendCapUsdCents: z.ZodNullable<z.ZodNumber>;
73
+ }, "strip", z.ZodTypeAny, {
74
+ requireHumanApprovalAboveUsdCents: number;
75
+ approvedVendors: string[];
76
+ monthlySpendCapUsdCents: number | null;
77
+ }, {
78
+ monthlySpendCapUsdCents: number | null;
79
+ requireHumanApprovalAboveUsdCents?: number | undefined;
80
+ approvedVendors?: string[] | undefined;
81
+ }>;
82
+ updatedAt: z.ZodString;
83
+ }, "strip", z.ZodTypeAny, {
84
+ recovery: {
85
+ gracePeriodHours: 24 | 48 | 72;
86
+ strategy: "once" | "twice" | "until_grace_ends";
87
+ notificationTemplate: string | null;
88
+ };
89
+ cashflow: {
90
+ digestEnabled: boolean;
91
+ anomalySensitivity: "low" | "medium" | "high";
92
+ autoConvertToYield: boolean;
93
+ minimumLiquidReserveCents: number;
94
+ };
95
+ commerce: {
96
+ requireHumanApprovalAboveUsdCents: number;
97
+ approvedVendors: string[];
98
+ monthlySpendCapUsdCents: number | null;
99
+ };
100
+ merchantId: string;
101
+ enabledCapabilities: ("identity" | "recovery" | "routing" | "cashflow" | "commerce" | "pricing_intelligence")[];
102
+ updatedAt: string;
103
+ }, {
104
+ recovery: {
105
+ notificationTemplate: string | null;
106
+ gracePeriodHours?: 24 | 48 | 72 | undefined;
107
+ strategy?: "once" | "twice" | "until_grace_ends" | undefined;
108
+ };
109
+ cashflow: {
110
+ digestEnabled?: boolean | undefined;
111
+ anomalySensitivity?: "low" | "medium" | "high" | undefined;
112
+ autoConvertToYield?: boolean | undefined;
113
+ minimumLiquidReserveCents?: number | undefined;
114
+ };
115
+ commerce: {
116
+ monthlySpendCapUsdCents: number | null;
117
+ requireHumanApprovalAboveUsdCents?: number | undefined;
118
+ approvedVendors?: string[] | undefined;
119
+ };
120
+ merchantId: string;
121
+ updatedAt: string;
122
+ enabledCapabilities?: ("identity" | "recovery" | "routing" | "cashflow" | "commerce" | "pricing_intelligence")[] | undefined;
123
+ }>;
124
+ type AgentMerchantConfig = z.infer<typeof agentMerchantConfigSchema>;
125
+ declare const updateAgentConfigInputSchema: z.ZodObject<{
126
+ recovery: z.ZodOptional<z.ZodObject<{
127
+ gracePeriodHours: z.ZodDefault<z.ZodUnion<[z.ZodLiteral<24>, z.ZodLiteral<48>, z.ZodLiteral<72>]>>;
128
+ strategy: z.ZodDefault<z.ZodEnum<["once", "twice", "until_grace_ends"]>>;
129
+ notificationTemplate: z.ZodNullable<z.ZodString>;
130
+ }, "strip", z.ZodTypeAny, {
131
+ gracePeriodHours: 24 | 48 | 72;
132
+ strategy: "once" | "twice" | "until_grace_ends";
133
+ notificationTemplate: string | null;
134
+ }, {
135
+ notificationTemplate: string | null;
136
+ gracePeriodHours?: 24 | 48 | 72 | undefined;
137
+ strategy?: "once" | "twice" | "until_grace_ends" | undefined;
138
+ }>>;
139
+ cashflow: z.ZodOptional<z.ZodObject<{
140
+ digestEnabled: z.ZodDefault<z.ZodBoolean>;
141
+ anomalySensitivity: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
142
+ autoConvertToYield: z.ZodDefault<z.ZodBoolean>;
143
+ minimumLiquidReserveCents: z.ZodDefault<z.ZodNumber>;
144
+ }, "strip", z.ZodTypeAny, {
145
+ digestEnabled: boolean;
146
+ anomalySensitivity: "low" | "medium" | "high";
147
+ autoConvertToYield: boolean;
148
+ minimumLiquidReserveCents: number;
149
+ }, {
150
+ digestEnabled?: boolean | undefined;
151
+ anomalySensitivity?: "low" | "medium" | "high" | undefined;
152
+ autoConvertToYield?: boolean | undefined;
153
+ minimumLiquidReserveCents?: number | undefined;
154
+ }>>;
155
+ commerce: z.ZodOptional<z.ZodObject<{
156
+ requireHumanApprovalAboveUsdCents: z.ZodDefault<z.ZodNumber>;
157
+ approvedVendors: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
158
+ monthlySpendCapUsdCents: z.ZodNullable<z.ZodNumber>;
159
+ }, "strip", z.ZodTypeAny, {
160
+ requireHumanApprovalAboveUsdCents: number;
161
+ approvedVendors: string[];
162
+ monthlySpendCapUsdCents: number | null;
163
+ }, {
164
+ monthlySpendCapUsdCents: number | null;
165
+ requireHumanApprovalAboveUsdCents?: number | undefined;
166
+ approvedVendors?: string[] | undefined;
167
+ }>>;
168
+ enabledCapabilities: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodEnum<["identity", "recovery", "routing", "cashflow", "commerce", "pricing_intelligence"]>, "many">>>;
169
+ }, "strip", z.ZodTypeAny, {
170
+ recovery?: {
171
+ gracePeriodHours: 24 | 48 | 72;
172
+ strategy: "once" | "twice" | "until_grace_ends";
173
+ notificationTemplate: string | null;
174
+ } | undefined;
175
+ cashflow?: {
176
+ digestEnabled: boolean;
177
+ anomalySensitivity: "low" | "medium" | "high";
178
+ autoConvertToYield: boolean;
179
+ minimumLiquidReserveCents: number;
180
+ } | undefined;
181
+ commerce?: {
182
+ requireHumanApprovalAboveUsdCents: number;
183
+ approvedVendors: string[];
184
+ monthlySpendCapUsdCents: number | null;
185
+ } | undefined;
186
+ enabledCapabilities?: ("identity" | "recovery" | "routing" | "cashflow" | "commerce" | "pricing_intelligence")[] | undefined;
187
+ }, {
188
+ recovery?: {
189
+ notificationTemplate: string | null;
190
+ gracePeriodHours?: 24 | 48 | 72 | undefined;
191
+ strategy?: "once" | "twice" | "until_grace_ends" | undefined;
192
+ } | undefined;
193
+ cashflow?: {
194
+ digestEnabled?: boolean | undefined;
195
+ anomalySensitivity?: "low" | "medium" | "high" | undefined;
196
+ autoConvertToYield?: boolean | undefined;
197
+ minimumLiquidReserveCents?: number | undefined;
198
+ } | undefined;
199
+ commerce?: {
200
+ monthlySpendCapUsdCents: number | null;
201
+ requireHumanApprovalAboveUsdCents?: number | undefined;
202
+ approvedVendors?: string[] | undefined;
203
+ } | undefined;
204
+ enabledCapabilities?: ("identity" | "recovery" | "routing" | "cashflow" | "commerce" | "pricing_intelligence")[] | undefined;
205
+ }>;
206
+ type UpdateAgentConfigInput = z.infer<typeof updateAgentConfigInputSchema>;
207
+ declare const agentActionTypeSchema: z.ZodEnum<["recovery_notification_sent", "recovery_retry_scheduled", "recovery_retry_executed", "recovery_abandoned", "routing_bridge_initiated", "routing_payment_completed", "cashflow_digest_sent", "cashflow_anomaly_flagged", "cashflow_yield_converted", "commerce_job_created", "commerce_job_approved", "commerce_job_completed", "commerce_job_disputed"]>;
208
+ type AgentActionType = z.infer<typeof agentActionTypeSchema>;
209
+ declare const agentActionOutcomeSchema: z.ZodEnum<["success", "failure", "pending", "skipped"]>;
210
+ type AgentActionOutcome = z.infer<typeof agentActionOutcomeSchema>;
211
+ declare const agentActivityLogSchema: z.ZodObject<{
212
+ id: z.ZodString;
213
+ merchantId: z.ZodString;
214
+ capability: z.ZodEnum<["identity", "recovery", "routing", "cashflow", "commerce", "pricing_intelligence"]>;
215
+ actionType: z.ZodEnum<["recovery_notification_sent", "recovery_retry_scheduled", "recovery_retry_executed", "recovery_abandoned", "routing_bridge_initiated", "routing_payment_completed", "cashflow_digest_sent", "cashflow_anomaly_flagged", "cashflow_yield_converted", "commerce_job_created", "commerce_job_approved", "commerce_job_completed", "commerce_job_disputed"]>;
216
+ outcome: z.ZodEnum<["success", "failure", "pending", "skipped"]>;
217
+ subscriptionId: z.ZodNullable<z.ZodString>;
218
+ transactionId: z.ZodNullable<z.ZodString>;
219
+ jobId: z.ZodNullable<z.ZodString>;
220
+ metadata: z.ZodDefault<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>>;
221
+ createdAt: z.ZodString;
222
+ }, "strip", z.ZodTypeAny, {
223
+ id: string;
224
+ merchantId: string;
225
+ capability: "identity" | "recovery" | "routing" | "cashflow" | "commerce" | "pricing_intelligence";
226
+ actionType: "recovery_notification_sent" | "recovery_retry_scheduled" | "recovery_retry_executed" | "recovery_abandoned" | "routing_bridge_initiated" | "routing_payment_completed" | "cashflow_digest_sent" | "cashflow_anomaly_flagged" | "cashflow_yield_converted" | "commerce_job_created" | "commerce_job_approved" | "commerce_job_completed" | "commerce_job_disputed";
227
+ outcome: "success" | "failure" | "pending" | "skipped";
228
+ subscriptionId: string | null;
229
+ transactionId: string | null;
230
+ jobId: string | null;
231
+ metadata: Record<string, string | number | boolean | null>;
232
+ createdAt: string;
233
+ }, {
234
+ id: string;
235
+ merchantId: string;
236
+ capability: "identity" | "recovery" | "routing" | "cashflow" | "commerce" | "pricing_intelligence";
237
+ actionType: "recovery_notification_sent" | "recovery_retry_scheduled" | "recovery_retry_executed" | "recovery_abandoned" | "routing_bridge_initiated" | "routing_payment_completed" | "cashflow_digest_sent" | "cashflow_anomaly_flagged" | "cashflow_yield_converted" | "commerce_job_created" | "commerce_job_approved" | "commerce_job_completed" | "commerce_job_disputed";
238
+ outcome: "success" | "failure" | "pending" | "skipped";
239
+ subscriptionId: string | null;
240
+ transactionId: string | null;
241
+ jobId: string | null;
242
+ createdAt: string;
243
+ metadata?: Record<string, string | number | boolean | null> | undefined;
244
+ }>;
245
+ type AgentActivityLog = z.infer<typeof agentActivityLogSchema>;
246
+ declare const agentJobStatusSchema: z.ZodEnum<["proposed", "accepted", "in_progress", "delivered", "approved", "completed", "disputed", "cancelled"]>;
247
+ type AgentJobStatus = z.infer<typeof agentJobStatusSchema>;
248
+ declare const agentJobSchema: z.ZodObject<{
249
+ id: z.ZodString;
250
+ merchantId: z.ZodString;
251
+ /** On-chain job id from StrimzAgentEscrow. */
252
+ onchainJobId: z.ZodNullable<z.ZodNumber>;
253
+ vendorAddress: z.ZodEffects<z.ZodString, string, string>;
254
+ description: z.ZodString;
255
+ amount: z.ZodEffects<z.ZodString, string, string>;
256
+ currency: z.ZodEnum<["USDC", "EURC"]>;
257
+ status: z.ZodEnum<["proposed", "accepted", "in_progress", "delivered", "approved", "completed", "disputed", "cancelled"]>;
258
+ assessorAddress: z.ZodEffects<z.ZodString, string, string>;
259
+ deliverableHash: z.ZodNullable<z.ZodString>;
260
+ escrowTxHash: z.ZodNullable<z.ZodString>;
261
+ releaseTxHash: z.ZodNullable<z.ZodString>;
262
+ createdAt: z.ZodString;
263
+ completedAt: z.ZodNullable<z.ZodString>;
264
+ }, "strip", z.ZodTypeAny, {
265
+ id: string;
266
+ status: "proposed" | "accepted" | "in_progress" | "delivered" | "approved" | "completed" | "disputed" | "cancelled";
267
+ merchantId: string;
268
+ createdAt: string;
269
+ onchainJobId: number | null;
270
+ vendorAddress: string;
271
+ description: string;
272
+ amount: string;
273
+ currency: "USDC" | "EURC";
274
+ assessorAddress: string;
275
+ deliverableHash: string | null;
276
+ escrowTxHash: string | null;
277
+ releaseTxHash: string | null;
278
+ completedAt: string | null;
279
+ }, {
280
+ id: string;
281
+ status: "proposed" | "accepted" | "in_progress" | "delivered" | "approved" | "completed" | "disputed" | "cancelled";
282
+ merchantId: string;
283
+ createdAt: string;
284
+ onchainJobId: number | null;
285
+ vendorAddress: string;
286
+ description: string;
287
+ amount: string;
288
+ currency: "USDC" | "EURC";
289
+ assessorAddress: string;
290
+ deliverableHash: string | null;
291
+ escrowTxHash: string | null;
292
+ releaseTxHash: string | null;
293
+ completedAt: string | null;
294
+ }>;
295
+ type AgentJob = z.infer<typeof agentJobSchema>;
296
+ declare const createAgentJobInputSchema: z.ZodObject<{
297
+ vendorAddress: z.ZodEffects<z.ZodString, string, string>;
298
+ description: z.ZodString;
299
+ amount: z.ZodEffects<z.ZodString, string, string>;
300
+ currency: z.ZodEnum<["USDC", "EURC"]>;
301
+ assessorAddress: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
302
+ }, "strip", z.ZodTypeAny, {
303
+ vendorAddress: string;
304
+ description: string;
305
+ amount: string;
306
+ currency: "USDC" | "EURC";
307
+ assessorAddress?: string | undefined;
308
+ }, {
309
+ vendorAddress: string;
310
+ description: string;
311
+ amount: string;
312
+ currency: "USDC" | "EURC";
313
+ assessorAddress?: string | undefined;
314
+ }>;
315
+ type CreateAgentJobInput = z.infer<typeof createAgentJobInputSchema>;
316
+
317
+ export { type AgentActionOutcome, type AgentActionType, type AgentActivityLog, type AgentCapability, type AgentIdentity, type AgentJob, type AgentJobStatus, type AgentMerchantConfig, type CreateAgentJobInput, type UpdateAgentConfigInput, agentActionOutcomeSchema, agentActionTypeSchema, agentActivityLogSchema, agentCapabilitySchema, agentIdentitySchema, agentJobSchema, agentJobStatusSchema, agentMerchantConfigSchema, createAgentJobInputSchema, updateAgentConfigInputSchema };