@oxy.so/contracts 4.15.0 → 4.17.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 (136) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/accountEmail.js +12 -34
  3. package/dist/cjs/accountGraph.js +22 -320
  4. package/dist/cjs/agentKeys.js +11 -13
  5. package/dist/cjs/client/accountEmail.js +48 -0
  6. package/dist/cjs/client/accountGraph.js +323 -0
  7. package/dist/cjs/client/agentKeys.js +77 -0
  8. package/dist/cjs/client/check.js +466 -0
  9. package/dist/cjs/client/deviceBoot.js +22 -0
  10. package/dist/cjs/client/deviceDirectory.js +51 -0
  11. package/dist/cjs/client/deviceSession.js +63 -0
  12. package/dist/cjs/client/externalIdentity.js +19 -0
  13. package/dist/cjs/client/identity.js +45 -0
  14. package/dist/cjs/client/identityLink.js +55 -0
  15. package/dist/cjs/client/identityProof.js +109 -0
  16. package/dist/cjs/client/index.js +190 -0
  17. package/dist/cjs/client/organizations.js +114 -0
  18. package/dist/cjs/client/products.js +153 -0
  19. package/dist/cjs/client/recommendations.js +33 -0
  20. package/dist/cjs/client/reputation.js +41 -0
  21. package/dist/cjs/client/safety.js +15 -0
  22. package/dist/cjs/client/sessionStatus.js +23 -0
  23. package/dist/cjs/client/signIn.js +157 -0
  24. package/dist/cjs/client/userResponse.js +15 -0
  25. package/dist/cjs/client/username.js +173 -0
  26. package/dist/cjs/deviceSession.js +3 -16
  27. package/dist/cjs/identityLink.js +13 -34
  28. package/dist/cjs/identityProof.js +18 -106
  29. package/dist/cjs/index.js +15 -10
  30. package/dist/cjs/inference/money.js +10 -0
  31. package/dist/cjs/inference/version.js +1 -1
  32. package/dist/cjs/organizations.js +21 -41
  33. package/dist/cjs/products/billing.js +0 -1
  34. package/dist/cjs/products/checkout.js +1 -14
  35. package/dist/cjs/products/plans.js +2 -18
  36. package/dist/cjs/reputation.js +3 -34
  37. package/dist/cjs/signIn.js +57 -96
  38. package/dist/cjs/userResponse.js +1 -8
  39. package/dist/cjs/username.js +23 -158
  40. package/dist/esm/.tsbuildinfo +1 -1
  41. package/dist/esm/accountEmail.js +4 -32
  42. package/dist/esm/accountGraph.js +4 -309
  43. package/dist/esm/agentKeys.js +4 -10
  44. package/dist/esm/client/accountEmail.js +45 -0
  45. package/dist/esm/client/accountGraph.js +314 -0
  46. package/dist/esm/client/agentKeys.js +74 -0
  47. package/dist/esm/client/check.js +428 -0
  48. package/dist/esm/client/deviceBoot.js +19 -0
  49. package/dist/esm/client/deviceDirectory.js +48 -0
  50. package/dist/esm/client/deviceSession.js +60 -0
  51. package/dist/esm/client/externalIdentity.js +16 -0
  52. package/dist/esm/client/identity.js +42 -0
  53. package/dist/esm/client/identityLink.js +50 -0
  54. package/dist/esm/client/identityProof.js +104 -0
  55. package/dist/esm/client/index.js +37 -0
  56. package/dist/esm/client/organizations.js +111 -0
  57. package/dist/esm/client/products.js +150 -0
  58. package/dist/esm/client/recommendations.js +30 -0
  59. package/dist/esm/client/reputation.js +37 -0
  60. package/dist/esm/client/safety.js +12 -0
  61. package/dist/esm/client/sessionStatus.js +20 -0
  62. package/dist/esm/client/signIn.js +151 -0
  63. package/dist/esm/client/userResponse.js +12 -0
  64. package/dist/esm/client/username.js +167 -0
  65. package/dist/esm/deviceSession.js +1 -15
  66. package/dist/esm/identityLink.js +4 -27
  67. package/dist/esm/identityProof.js +4 -99
  68. package/dist/esm/index.js +2 -2
  69. package/dist/esm/inference/money.js +10 -0
  70. package/dist/esm/inference/version.js +1 -1
  71. package/dist/esm/organizations.js +4 -31
  72. package/dist/esm/products/billing.js +0 -1
  73. package/dist/esm/products/checkout.js +0 -13
  74. package/dist/esm/products/plans.js +1 -17
  75. package/dist/esm/reputation.js +1 -32
  76. package/dist/esm/signIn.js +29 -83
  77. package/dist/esm/userResponse.js +1 -8
  78. package/dist/esm/username.js +4 -148
  79. package/dist/types/.tsbuildinfo +1 -1
  80. package/dist/types/accountEmail.d.ts +2 -34
  81. package/dist/types/accountGraph.d.ts +12 -208
  82. package/dist/types/agency.d.ts +24 -24
  83. package/dist/types/agentKeys.d.ts +8 -6
  84. package/dist/types/client/accountEmail.d.ts +44 -0
  85. package/dist/types/client/accountGraph.d.ts +203 -0
  86. package/dist/types/client/agentKeys.d.ts +113 -0
  87. package/dist/types/client/check.d.ts +184 -0
  88. package/dist/types/client/deviceBoot.d.ts +6 -0
  89. package/dist/types/client/deviceDirectory.d.ts +134 -0
  90. package/dist/types/client/deviceSession.d.ts +91 -0
  91. package/dist/types/client/externalIdentity.d.ts +14 -0
  92. package/dist/types/client/identity.d.ts +8 -0
  93. package/dist/types/client/identityLink.d.ts +21 -0
  94. package/dist/types/client/identityProof.d.ts +73 -0
  95. package/dist/types/client/index.d.ts +37 -0
  96. package/dist/types/client/organizations.d.ts +167 -0
  97. package/dist/types/client/products.d.ts +145 -0
  98. package/dist/types/client/recommendations.d.ts +27 -0
  99. package/dist/types/client/reputation.d.ts +28 -0
  100. package/dist/types/client/safety.d.ts +13 -0
  101. package/dist/types/client/sessionStatus.d.ts +19 -0
  102. package/dist/types/client/signIn.d.ts +107 -0
  103. package/dist/types/client/userResponse.d.ts +7 -0
  104. package/dist/types/client/username.d.ts +126 -0
  105. package/dist/types/deviceDirectory.d.ts +28 -28
  106. package/dist/types/deviceSession.d.ts +1 -12
  107. package/dist/types/externalIdentity.d.ts +11 -44
  108. package/dist/types/identityLink.d.ts +3 -11
  109. package/dist/types/identityProof.d.ts +2 -65
  110. package/dist/types/index.d.ts +3 -3
  111. package/dist/types/inference/catalogue.d.ts +7 -7
  112. package/dist/types/inference/decisions.d.ts +41 -41
  113. package/dist/types/inference/economics.d.ts +5 -5
  114. package/dist/types/inference/embeddings.d.ts +16 -16
  115. package/dist/types/inference/errors.d.ts +8 -8
  116. package/dist/types/inference/inbox.d.ts +8 -8
  117. package/dist/types/inference/money.d.ts +17 -8
  118. package/dist/types/inference/priceVersion.d.ts +12 -12
  119. package/dist/types/inference/privateAutoExecution.d.ts +6 -6
  120. package/dist/types/inference/realtime.d.ts +54 -54
  121. package/dist/types/inference/request.d.ts +28 -28
  122. package/dist/types/inference/routingPolicy.d.ts +7 -7
  123. package/dist/types/inference/streamEvents.d.ts +26 -26
  124. package/dist/types/inference/usage.d.ts +32 -32
  125. package/dist/types/inference/version.d.ts +1 -1
  126. package/dist/types/oauth.d.ts +2 -2
  127. package/dist/types/organizations.d.ts +8 -10
  128. package/dist/types/products/billing.d.ts +3 -8
  129. package/dist/types/products/checkout.d.ts +0 -36
  130. package/dist/types/products/plans.d.ts +5 -102
  131. package/dist/types/reputation.d.ts +1 -11
  132. package/dist/types/sessionStatus.d.ts +2 -2
  133. package/dist/types/signIn.d.ts +74 -76
  134. package/dist/types/userResponse.d.ts +23 -159
  135. package/dist/types/username.d.ts +1 -96
  136. package/package.json +20 -1
@@ -100,56 +100,7 @@
100
100
  */
101
101
  import { z } from 'zod';
102
102
  import type { AccountKind } from './accountGraph';
103
- /** Shortest storable handle. `oxy` sets the floor. */
104
- export declare const USERNAME_MIN_LENGTH = 3;
105
- /** Longest storable handle, and the `maxLength` an input field should carry. */
106
- export declare const USERNAME_MAX_LENGTH = 30;
107
- /** The 400 / inline-validation copy for every path that rejects a handle. */
108
- export declare const USERNAME_INVALID_MESSAGE: string;
109
- /**
110
- * Exact-match handles nobody may newly claim, regardless of account kind.
111
- *
112
- * This is NOT a namespace tightening like the bot suffix — it is a list of
113
- * names withheld from `users_lower_username_key` before anybody asks for
114
- * them. Compared against the same normalization the unique index applies
115
- * (`lower(btrim(username))`), so `Admin`, ` ADMIN ` and `admin` are the one
116
- * name this list means.
117
- *
118
- * `oxy`, `mention`, `homiio`, `clarity`, `faircoin`, `astro` and `mercaria`
119
- * are deliberately NOT here: each already has an `organization`/`project`
120
- * row, so the unique index already refuses a second one, and `oxy` is the
121
- * name `USERNAME_MIN_LENGTH` is pinned against in
122
- * `__tests__/username.test.ts` — listing it would make
123
- * `usernameSchema.safeParse('oxy')` fail and falsify that comment. A brand
124
- * with no account of its own yet (measured 2026-09-18: Alia, Allo, TNP,
125
- * Kaana, Bloom) has no row to protect it, so it is listed until one exists.
126
- */
127
- export declare const RESERVED_USERNAMES: ReadonlySet<string>;
128
- /** The 400 / inline-validation copy for a handle on {@link RESERVED_USERNAMES}. */
129
- export declare const RESERVED_USERNAME_MESSAGE = "This username is reserved and cannot be registered";
130
- /** The 400 / inline-validation copy for a handle that is only digits. */
131
- export declare const NUMERIC_USERNAME_MESSAGE = "Username cannot be only numbers";
132
- /**
133
- * Alphanumeric runs joined by single separators, as a SOURCE string.
134
- *
135
- * A string rather than a literal because the OpenAPI docblocks that publish this
136
- * rule (`POST /auth/register`, `PUT /users/:userId`) must quote it verbatim, and
137
- * `usernamePolicySingleSource.test.ts` compares them against THIS constant. A
138
- * published `pattern:` that drifts from the enforced rule is a lie told to every
139
- * client that generates from the spec, and it is exactly the kind of copy nobody
140
- * notices going stale.
141
- *
142
- * Deliberately NOT re-exported from the package barrel: it exists for the
143
- * schema below and for that one gate. Anything validating a username uses
144
- * {@link usernameSchema}, so there is no second way to ask the question.
145
- *
146
- * Written as an unambiguous alternation rather than a lookahead: every character
147
- * belongs to exactly one branch, so matching is linear and there is no
148
- * backtracking to bound. It also carries no `\p{…}` property escape, which
149
- * mobile Hermes throws on at runtime — this module is reachable from every React
150
- * Native consumer.
151
- */
152
- export declare const USERNAME_PATTERN_SOURCE = "^[A-Za-z0-9]+(?:[-_][A-Za-z0-9]+)*$";
103
+ export { USERNAME_MIN_LENGTH, USERNAME_MAX_LENGTH, USERNAME_INVALID_MESSAGE, RESERVED_USERNAMES, RESERVED_USERNAME_MESSAGE, NUMERIC_USERNAME_MESSAGE, USERNAME_PATTERN_SOURCE, stripDisallowedUsernameCharacters, BOT_USERNAME_SUFFIX, BOT_USERNAME_INVALID_MESSAGE, applyBotUsernameSuffix, } from './client/username';
153
104
  /**
154
105
  * The one username policy, as a schema.
155
106
  *
@@ -168,34 +119,6 @@ export declare const usernameSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.Zo
168
119
  * server's 400 cannot disagree.
169
120
  */
170
121
  export declare function isValidUsername(candidate: string): boolean;
171
- /**
172
- * Drop the characters the policy forbids, for an input field that filters
173
- * keystrokes.
174
- *
175
- * This is a TYPING aid and nothing else — the result still has to pass
176
- * {@link usernameSchema}, which is what decides. It does not lower-case (case is
177
- * preserved, see the header) and it cannot repair a name: a value that is too
178
- * short, edge-separated or doubly-separated comes back unchanged and fails
179
- * validation with a message, which is the outcome the coercing rules this
180
- * replaces used to hide.
181
- */
182
- export declare function stripDisallowedUsernameCharacters(input: string): string;
183
- /**
184
- * The label a bot's handle ends in — the ONE exception the policy carries.
185
- *
186
- * Lower-case here because it is what a generator appends; the comparison that
187
- * enforces it folds case, so `MyBot` satisfies it just as `mybot` does.
188
- *
189
- * Deliberately NOT re-exported from the package barrel, for the same reason
190
- * {@link USERNAME_PATTERN_SOURCE} is not: it exists for the schema and the
191
- * generator aid below. A consumer that wants to SAY the rule uses
192
- * {@link BOT_USERNAME_INVALID_MESSAGE}, which already quotes it, and one that
193
- * wants to APPLY it uses {@link applyBotUsernameSuffix} — so there is no second
194
- * way to spell the check.
195
- */
196
- export declare const BOT_USERNAME_SUFFIX = "bot";
197
- /** The 400 / inline-validation copy for a bot handle that carries no label. */
198
- export declare const BOT_USERNAME_INVALID_MESSAGE = "A bot account's username must end in \"bot\"";
199
122
  /**
200
123
  * The username policy for an account of kind `bot`: everything above, plus a
201
124
  * handle that ends in {@link BOT_USERNAME_SUFFIX}.
@@ -268,21 +191,3 @@ export declare const botUsernameSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z
268
191
  * can act on.
269
192
  */
270
193
  export declare function usernameSchemaForAccountKind(kind: AccountKind | null | undefined): z.ZodType<string, z.ZodTypeDef, string>;
271
- /**
272
- * Label a proposed bot handle, so a generator PROPOSES something the server will
273
- * accept.
274
- *
275
- * Alia builds an agent's handle from its display name; without this it would
276
- * propose `garden-helper` for a bot and be 400ed on submit, which is the same
277
- * "suggest, then refuse" defect the minimum length already caused once.
278
- *
279
- * It appends and never inserts: a separator is the caller's choice, so
280
- * `garden-helper` becomes `garden-helperbot` while a caller who typed
281
- * `garden-helper-` gets `garden-helper-bot`. It truncates to leave room rather
282
- * than overflowing {@link USERNAME_MAX_LENGTH}.
283
- *
284
- * Like {@link stripDisallowedUsernameCharacters} it is an aid, not a decision: it
285
- * cannot repair a handle the base policy refuses, and the result still has to
286
- * pass {@link botUsernameSchema}.
287
- */
288
- export declare function applyBotUsernameSuffix(candidate: string): string;
package/package.json CHANGED
@@ -1,10 +1,17 @@
1
1
  {
2
2
  "name": "@oxy.so/contracts",
3
- "version": "4.15.0",
3
+ "version": "4.17.0",
4
4
  "description": "OxyHQ API contracts — single source of truth for request/response Zod schemas and inferred types, shared by the backend and the client SDKs",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
7
7
  "types": "dist/types/index.d.ts",
8
+ "typesVersions": {
9
+ "*": {
10
+ "client": [
11
+ "dist/types/client/index.d.ts"
12
+ ]
13
+ }
14
+ },
8
15
  "source": "src/index.ts",
9
16
  "sideEffects": false,
10
17
  "publishConfig": {
@@ -23,6 +30,18 @@
23
30
  },
24
31
  "default": "./dist/esm/index.js"
25
32
  },
33
+ "./client": {
34
+ "react-native": "./dist/esm/client/index.js",
35
+ "import": {
36
+ "types": "./dist/types/client/index.d.ts",
37
+ "default": "./dist/esm/client/index.js"
38
+ },
39
+ "require": {
40
+ "types": "./dist/types/client/index.d.ts",
41
+ "default": "./dist/cjs/client/index.js"
42
+ },
43
+ "default": "./dist/esm/client/index.js"
44
+ },
26
45
  "./package.json": "./package.json"
27
46
  },
28
47
  "files": [