@vibes.diy/api-types 14.0.14 → 14.0.15

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 (80) hide show
  1. package/agent-tools.js +14 -13
  2. package/agent-tools.js.map +1 -1
  3. package/app-documents.js +71 -70
  4. package/app-documents.js.map +1 -1
  5. package/app.d.ts +88 -88
  6. package/app.js +142 -141
  7. package/app.js.map +1 -1
  8. package/asset.js +9 -8
  9. package/asset.js.map +1 -1
  10. package/audience-arms-msg.js +24 -23
  11. package/audience-arms-msg.js.map +1 -1
  12. package/billing-msg.js +19 -18
  13. package/billing-msg.js.map +1 -1
  14. package/cached-suggestion.js +9 -8
  15. package/cached-suggestion.js.map +1 -1
  16. package/chat.js +66 -67
  17. package/chat.js.map +1 -1
  18. package/common.js +52 -51
  19. package/common.js.map +1 -1
  20. package/db-acls.js +9 -8
  21. package/db-acls.js.map +1 -1
  22. package/developer-grant.js +18 -17
  23. package/developer-grant.js.map +1 -1
  24. package/draft-chat.js +6 -5
  25. package/draft-chat.js.map +1 -1
  26. package/home-feed.js +23 -22
  27. package/home-feed.js.map +1 -1
  28. package/invite-flow.js +55 -56
  29. package/invite-flow.js.map +1 -1
  30. package/invite.js +118 -117
  31. package/invite.js.map +1 -1
  32. package/lazy-type.d.ts +8 -0
  33. package/lazy-type.js +39 -0
  34. package/lazy-type.js.map +1 -0
  35. package/members.js +7 -6
  36. package/members.js.map +1 -1
  37. package/memberships.js +7 -6
  38. package/memberships.js.map +1 -1
  39. package/mint-fire.js +5 -4
  40. package/mint-fire.js.map +1 -1
  41. package/notifications.js +24 -23
  42. package/notifications.js.map +1 -1
  43. package/package.json +7 -6
  44. package/prompt.js +31 -30
  45. package/prompt.js.map +1 -1
  46. package/related-vibes.js +21 -20
  47. package/related-vibes.js.map +1 -1
  48. package/report.js +87 -86
  49. package/report.js.map +1 -1
  50. package/request-access.js +53 -54
  51. package/request-access.js.map +1 -1
  52. package/research.js +13 -12
  53. package/research.js.map +1 -1
  54. package/retention-msg.js +3 -2
  55. package/retention-msg.js.map +1 -1
  56. package/screen-shotter.js +3 -2
  57. package/screen-shotter.js.map +1 -1
  58. package/settings.js +131 -130
  59. package/settings.js.map +1 -1
  60. package/shared-mint.js +5 -4
  61. package/shared-mint.js.map +1 -1
  62. package/signin-ticket.js +5 -4
  63. package/signin-ticket.js.map +1 -1
  64. package/social-msg.js +62 -61
  65. package/social-msg.js.map +1 -1
  66. package/style.js +16 -15
  67. package/style.js.map +1 -1
  68. package/turn-variant.d.ts +1 -0
  69. package/turn-variant.js +5 -1
  70. package/turn-variant.js.map +1 -1
  71. package/types.js +18 -17
  72. package/types.js.map +1 -1
  73. package/vibes-diy-api.js +3 -2
  74. package/vibes-diy-api.js.map +1 -1
  75. package/vibes-diy-serv-ctx.js +9 -8
  76. package/vibes-diy-serv-ctx.js.map +1 -1
  77. package/vibes-types.js +3 -2
  78. package/vibes-types.js.map +1 -1
  79. package/welcome-msg.js +3 -2
  80. package/welcome-msg.js.map +1 -1
package/app.js CHANGED
@@ -5,7 +5,8 @@ import { dashAuthType, vibeUserEnv, vibeFile, FSMode, NeedOneAppSlugUserSlug } f
5
5
  import { PromptAndBlockMsgs } from "./chat.js";
6
6
  import { notificationRow, notificationTypeEnum } from "./notifications.js";
7
7
  import { anonWriteMode, dbPosture, postureIntent } from "./db-acls.js";
8
- export const ReqEnsureAppSlug = type({
8
+ import { lazyType } from "./lazy-type.js";
9
+ export const ReqEnsureAppSlug = lazyType(() => type({
9
10
  type: "'vibes.diy.req-ensure-app-slug'",
10
11
  auth: dashAuthType,
11
12
  mode: FSMode,
@@ -16,30 +17,30 @@ export const ReqEnsureAppSlug = type({
16
17
  "anonWrite?": anonWriteMode,
17
18
  "from?": type({ ownerHandle: "string", appSlug: "string" }),
18
19
  fileSystem: [vibeFile, "[]"],
19
- }).and(NeedOneAppSlugUserSlug);
20
- export const resEnsureAppSlugOk = type({
20
+ }).and(NeedOneAppSlugUserSlug));
21
+ export const resEnsureAppSlugOk = lazyType(() => type({
21
22
  type: "'vibes.diy.res-ensure-app-slug'",
22
23
  env: vibeUserEnv,
23
24
  fileSystem: [fileSystemItem, "[]"],
24
- }).and(FileSystemRefFields);
25
- export const resEnsureAppSlugRequireLogin = type({
25
+ }).and(FileSystemRefFields));
26
+ export const resEnsureAppSlugRequireLogin = lazyType(() => type({
26
27
  type: "'vibes.diy.res-error'",
27
28
  error: type({ message: "string", code: "'require-login'" }),
28
- });
29
+ }));
29
30
  export function isResEnsureAppSlugOk(obj) {
30
31
  return !(resEnsureAppSlugOk(obj) instanceof type.errors);
31
32
  }
32
- export const resEnsureAppSlugUserSlugInvalid = type({
33
+ export const resEnsureAppSlugUserSlugInvalid = lazyType(() => type({
33
34
  type: "'vibes.diy.res-error'",
34
35
  error: type({ message: "string", code: "'user-slug-invalid'" }),
35
- });
36
+ }));
36
37
  export function isResEnsureAppSlugUserSlugInvalid(obj) {
37
38
  return !(resEnsureAppSlugUserSlugInvalid(obj) instanceof type.errors);
38
39
  }
39
- export const resEnsureAppSlugInvalid = type({
40
+ export const resEnsureAppSlugInvalid = lazyType(() => type({
40
41
  type: "'vibes.diy.res-error'",
41
42
  error: type({ message: "string", code: "'app-slug-invalid'" }),
42
- });
43
+ }));
43
44
  export const HANDLE_REQUIRED_CODE = "handle-required";
44
45
  export const HANDLE_REQUIRED_MESSAGE = "no handle bound to this account — choose a handle before creating or publishing (createHandleBinding)";
45
46
  export const FORK_DST_HANDLE_NOT_BOUND_CODE = "handle-not-bound";
@@ -51,24 +52,24 @@ export const CARRY_SRC_NOT_GRANT_CODE = "not-grant";
51
52
  export const CARRY_SRC_SETTINGS_NOT_FOUND_CODE = "app-settings-not-found";
52
53
  export const PUSH_FROM_NOT_OWNED_CODE = "from-not-owned";
53
54
  export const PUSH_FROM_CARRY_FAILED_CODE = "from-carry-failed";
54
- export const resPushFromNotOwned = type({
55
+ export const resPushFromNotOwned = lazyType(() => type({
55
56
  type: "'vibes.diy.res-error'",
56
57
  error: type({ message: "string", code: "'from-not-owned'" }),
57
- });
58
- export const resPushFromCarryFailed = type({
58
+ }));
59
+ export const resPushFromCarryFailed = lazyType(() => type({
59
60
  type: "'vibes.diy.res-error'",
60
61
  error: type({ message: "string", code: "'from-carry-failed'" }),
61
- });
62
+ }));
62
63
  export const CARRY_APP_SETTINGS_REFUSAL_CODES = [
63
64
  CARRY_DST_NOT_FOUND_CODE,
64
65
  CARRY_SRC_NOT_FOUND_CODE,
65
66
  CARRY_SRC_NOT_GRANT_CODE,
66
67
  CARRY_SRC_SETTINGS_NOT_FOUND_CODE,
67
68
  ];
68
- export const resHandleRequired = type({
69
+ export const resHandleRequired = lazyType(() => type({
69
70
  type: "'vibes.diy.res-error'",
70
71
  error: type({ message: "string", code: "'handle-required'" }),
71
- });
72
+ }));
72
73
  export function isResHandleRequired(obj) {
73
74
  return !(resHandleRequired(obj) instanceof type.errors);
74
75
  }
@@ -78,71 +79,71 @@ export function mkResHandleRequired() {
78
79
  error: { message: HANDLE_REQUIRED_MESSAGE, code: "handle-required" },
79
80
  };
80
81
  }
81
- const resEnsureAppSlugMaxAppsError = type({
82
+ const resEnsureAppSlugMaxAppsError = lazyType(() => type({
82
83
  type: "'vibes.diy.res-error'",
83
84
  error: type({ message: "string", code: "'max-app-slugs-reached'" }),
84
- });
85
+ }));
85
86
  export function isResEnsureAppSlugMaxAppsError(obj) {
86
87
  return !(resEnsureAppSlugMaxAppsError(obj) instanceof type.errors);
87
88
  }
88
89
  export function isResEnsureAppSlugInvalid(obj) {
89
90
  return !(resEnsureAppSlugInvalid(obj) instanceof type.errors);
90
91
  }
91
- export const resEnsureAppSlugError = resEnsureAppSlugRequireLogin
92
+ export const resEnsureAppSlugError = lazyType(() => resEnsureAppSlugRequireLogin
92
93
  .or(resEnsureAppSlugUserSlugInvalid)
93
94
  .or(resEnsureAppSlugInvalid)
94
95
  .or(resEnsureAppSlugMaxAppsError)
95
96
  .or(resHandleRequired)
96
97
  .or(resPushFromNotOwned)
97
- .or(resPushFromCarryFailed);
98
- export const resEnsureAppSlug = resEnsureAppSlugOk.or(resEnsureAppSlugError);
98
+ .or(resPushFromCarryFailed));
99
+ export const resEnsureAppSlug = lazyType(() => resEnsureAppSlugOk.or(resEnsureAppSlugError));
99
100
  export function isResEnsureAppSlugError(obj) {
100
101
  return !(resEnsureAppSlugError(obj) instanceof type.errors);
101
102
  }
102
103
  export function isResEnsureAppSlug(obj) {
103
104
  return !(resEnsureAppSlug(obj) instanceof type.errors);
104
105
  }
105
- export const reqGetChatDetails = type({
106
+ export const reqGetChatDetails = lazyType(() => type({
106
107
  type: "'vibes.diy.req-get-chat-details'",
107
108
  auth: dashAuthType,
108
109
  ownerHandle: "string",
109
110
  appSlug: "string",
110
111
  "chatId?": "string",
111
112
  "asHandle?": "string",
112
- });
113
- export const resChatDetailsPrompt = type({
113
+ }));
114
+ export const resChatDetailsPrompt = lazyType(() => type({
114
115
  prompt: "string",
115
116
  fsId: "string",
116
117
  created: "string",
117
- });
118
- export const resGetChatDetails = type({
118
+ }));
119
+ export const resGetChatDetails = lazyType(() => type({
119
120
  type: "'vibes.diy.res-get-chat-details'",
120
121
  "chatId?": "string",
121
122
  ownerHandle: "string",
122
123
  appSlug: "string",
123
124
  prompts: resChatDetailsPrompt.array(),
124
- });
125
+ }));
125
126
  export function isResGetChatDetails(obj) {
126
127
  return !(resGetChatDetails(obj) instanceof type.errors);
127
128
  }
128
- export const reqGetApplicationChat = type({
129
+ export const reqGetApplicationChat = lazyType(() => type({
129
130
  type: "'vibes.diy.req-get-application-chat'",
130
131
  auth: dashAuthType,
131
132
  chatId: "string",
132
133
  "appSlug?": "string",
133
134
  "ownerHandle?": "string",
134
- });
135
- export const resGetApplicationChat = type({
135
+ }));
136
+ export const resGetApplicationChat = lazyType(() => type({
136
137
  type: "'vibes.diy.res-get-application-chat'",
137
138
  "chatId?": "string",
138
139
  "appSlug?": "string",
139
140
  "ownerHandle?": "string",
140
141
  blocks: PromptAndBlockMsgs.array(),
141
- });
142
+ }));
142
143
  export function isResGetApplicationChat(obj) {
143
144
  return !(resGetApplicationChat(obj) instanceof type.errors);
144
145
  }
145
- export const reqGetAppByFsId = type({
146
+ export const reqGetAppByFsId = lazyType(() => type({
146
147
  type: "'vibes.diy.req-get-app-by-fsid'",
147
148
  "auth?": dashAuthType,
148
149
  "fsId?": "string",
@@ -151,11 +152,11 @@ export const reqGetAppByFsId = type({
151
152
  "token?": "string",
152
153
  "selectMode?": "'published'|'ownerLatest'|'ownerDraft'",
153
154
  "asHandle?": "string",
154
- });
155
+ }));
155
156
  export function isReqGetAppByFsId(obj) {
156
157
  return !(reqGetAppByFsId(obj) instanceof type.errors);
157
158
  }
158
- export const resGetAppByFsId = type({
159
+ export const resGetAppByFsId = lazyType(() => type({
159
160
  type: "'vibes.diy.res-get-app-by-fsid'",
160
161
  "error?": "string",
161
162
  appSlug: "string",
@@ -176,75 +177,75 @@ export const resGetAppByFsId = type({
176
177
  fileSystem: [fileSystemItem, "[]"],
177
178
  meta: MetaItem.array(),
178
179
  created: "string",
179
- });
180
+ }));
180
181
  export function isResGetAppByFsId(obj) {
181
182
  return !(resGetAppByFsId(obj) instanceof type.errors);
182
183
  }
183
- export const reqListVersions = type({
184
+ export const reqListVersions = lazyType(() => type({
184
185
  type: "'vibes.diy.req-list-versions'",
185
186
  "auth?": dashAuthType,
186
187
  appSlug: "string",
187
188
  ownerHandle: "string",
188
- });
189
+ }));
189
190
  export function isReqListVersions(obj) {
190
191
  return !(reqListVersions(obj) instanceof type.errors);
191
192
  }
192
- export const resListVersionsItem = type({
193
+ export const resListVersionsItem = lazyType(() => type({
193
194
  fsId: "string",
194
195
  mode: "'production'|'dev'",
195
196
  releaseSeq: "number",
196
197
  created: "string",
197
198
  published: "boolean",
198
- });
199
- export const resListVersions = type({
199
+ }));
200
+ export const resListVersions = lazyType(() => type({
200
201
  type: "'vibes.diy.res-list-versions'",
201
202
  appSlug: "string",
202
203
  ownerHandle: "string",
203
204
  items: resListVersionsItem.array(),
204
205
  "lockedFsId?": "string",
205
- });
206
+ }));
206
207
  export function isResListVersions(obj) {
207
208
  return !(resListVersions(obj) instanceof type.errors);
208
209
  }
209
- export const reqGetByUserSlugAppSlug = type({
210
+ export const reqGetByUserSlugAppSlug = lazyType(() => type({
210
211
  type: "'vibes.diy.req-get-by-user-slug-app-slug'",
211
212
  auth: dashAuthType,
212
213
  ownerHandle: "string",
213
214
  appSlug: "string",
214
- });
215
- export const reqListUserSlugAppSlug = type({
215
+ }));
216
+ export const reqListUserSlugAppSlug = lazyType(() => type({
216
217
  type: "'vibes.diy.req-list-user-slug-app-slug'",
217
218
  auth: dashAuthType,
218
219
  "ownerHandle?": "string",
219
220
  "appSlug?": "string",
220
- });
221
+ }));
221
222
  export function isReqListUserSlugAppSlug(obj) {
222
223
  return !(reqListUserSlugAppSlug(obj) instanceof type.errors);
223
224
  }
224
- export const resListUserSlugAppSlugItem = type({
225
+ export const resListUserSlugAppSlugItem = lazyType(() => type({
225
226
  userId: "string",
226
227
  ownerHandle: "string",
227
228
  appSlugs: type("string").array(),
228
- });
229
- export const resListUserSlugAppSlug = type({
229
+ }));
230
+ export const resListUserSlugAppSlug = lazyType(() => type({
230
231
  type: "'vibes.diy.res-list-user-slug-app-slug'",
231
232
  items: resListUserSlugAppSlugItem.array(),
232
- });
233
+ }));
233
234
  export function isResListUserSlugAppSlug(obj) {
234
235
  return !(resListUserSlugAppSlug(obj) instanceof type.errors);
235
236
  }
236
- export const reqListRecentVibes = type({
237
+ export const reqListRecentVibes = lazyType(() => type({
237
238
  type: "'vibes.diy.req-list-recent-vibes'",
238
239
  auth: dashAuthType,
239
240
  "limit?": "number",
240
241
  "cursor?": "string",
241
242
  "includeUnpublished?": "boolean",
242
243
  "asHandle?": "string",
243
- });
244
+ }));
244
245
  export function isReqListRecentVibes(obj) {
245
246
  return !(reqListRecentVibes(obj) instanceof type.errors);
246
247
  }
247
- export const resRecentVibesItem = type({
248
+ export const resRecentVibesItem = lazyType(() => type({
248
249
  ownerHandle: "string",
249
250
  appSlug: "string",
250
251
  updated: "string",
@@ -253,87 +254,87 @@ export const resRecentVibesItem = type({
253
254
  "pinnedAt?": "string",
254
255
  "neverPublished?": "boolean",
255
256
  "unpublishedAt?": "string",
256
- });
257
- export const resListRecentVibes = type({
257
+ }));
258
+ export const resListRecentVibes = lazyType(() => type({
258
259
  type: "'vibes.diy.res-list-recent-vibes'",
259
260
  items: resRecentVibesItem.array(),
260
261
  "nextCursor?": "string",
261
262
  "viewedAs?": "string",
262
- });
263
+ }));
263
264
  export function isResListRecentVibes(obj) {
264
265
  return !(resListRecentVibes(obj) instanceof type.errors);
265
266
  }
266
- export const reqPinRecentVibe = type({
267
+ export const reqPinRecentVibe = lazyType(() => type({
267
268
  type: "'vibes.diy.req-pin-recent-vibe'",
268
269
  auth: dashAuthType,
269
270
  ownerHandle: "string",
270
271
  appSlug: "string",
271
272
  pin: "boolean",
272
- });
273
+ }));
273
274
  export function isReqPinRecentVibe(obj) {
274
275
  return !(reqPinRecentVibe(obj) instanceof type.errors);
275
276
  }
276
- export const resPinRecentVibe = type({
277
+ export const resPinRecentVibe = lazyType(() => type({
277
278
  type: "'vibes.diy.res-pin-recent-vibe'",
278
279
  ownerHandle: "string",
279
280
  appSlug: "string",
280
281
  pinnedAt: "string",
281
- });
282
+ }));
282
283
  export function isResPinRecentVibe(obj) {
283
284
  return !(resPinRecentVibe(obj) instanceof type.errors);
284
285
  }
285
- export const reqSetUnpublish = type({
286
+ export const reqSetUnpublish = lazyType(() => type({
286
287
  type: "'vibes.diy.req-set-unpublish'",
287
288
  auth: dashAuthType,
288
289
  ownerHandle: "string",
289
290
  appSlug: "string",
290
291
  unpublish: "boolean",
291
- });
292
+ }));
292
293
  export function isReqSetUnpublish(obj) {
293
294
  return !(reqSetUnpublish(obj) instanceof type.errors);
294
295
  }
295
- export const resSetUnpublish = type({
296
+ export const resSetUnpublish = lazyType(() => type({
296
297
  type: "'vibes.diy.res-set-unpublish'",
297
298
  ownerHandle: "string",
298
299
  appSlug: "string",
299
300
  unpublishedAt: "string",
300
301
  previousUnpublishedAt: "string",
301
- });
302
+ }));
302
303
  export function isResSetUnpublish(obj) {
303
304
  return !(resSetUnpublish(obj) instanceof type.errors);
304
305
  }
305
- export const reqSetVibeChips = type({
306
+ export const reqSetVibeChips = lazyType(() => type({
306
307
  type: "'vibes.diy.req-set-vibe-chips'",
307
308
  auth: dashAuthType,
308
309
  ownerHandle: "string",
309
310
  appSlug: "string",
310
311
  chips: "string[]",
311
312
  "fsId?": "string",
312
- });
313
+ }));
313
314
  export function isReqSetVibeChips(obj) {
314
315
  return !(reqSetVibeChips(obj) instanceof type.errors);
315
316
  }
316
- export const resSetVibeChips = type({
317
+ export const resSetVibeChips = lazyType(() => type({
317
318
  type: "'vibes.diy.res-set-vibe-chips'",
318
319
  ownerHandle: "string",
319
320
  appSlug: "string",
320
321
  fsId: "string",
321
322
  releaseSeq: "number",
322
323
  chips: "string[]",
323
- });
324
+ }));
324
325
  export function isResSetVibeChips(obj) {
325
326
  return !(resSetVibeChips(obj) instanceof type.errors);
326
327
  }
327
- export const reqAppTickStatus = type({
328
+ export const reqAppTickStatus = lazyType(() => type({
328
329
  type: "'vibes.diy.req-app-tick-status'",
329
330
  auth: dashAuthType,
330
331
  ownerHandle: "string",
331
332
  appSlug: "string",
332
- });
333
+ }));
333
334
  export function isReqAppTickStatus(obj) {
334
335
  return !(reqAppTickStatus(obj) instanceof type.errors);
335
336
  }
336
- export const resAppTickStatus = type({
337
+ export const resAppTickStatus = lazyType(() => type({
337
338
  type: "'vibes.diy.res-app-tick-status'",
338
339
  ownerHandle: "string",
339
340
  appSlug: "string",
@@ -349,56 +350,56 @@ export const resAppTickStatus = type({
349
350
  graceMs: "number",
350
351
  overdueMs: "number",
351
352
  healed: "boolean",
352
- });
353
+ }));
353
354
  export function isResAppTickStatus(obj) {
354
355
  return !(resAppTickStatus(obj) instanceof type.errors);
355
356
  }
356
- export const reqAppTickRearm = type({
357
+ export const reqAppTickRearm = lazyType(() => type({
357
358
  type: "'vibes.diy.req-app-tick-rearm'",
358
359
  auth: dashAuthType,
359
360
  ownerHandle: "string",
360
361
  appSlug: "string",
361
- });
362
+ }));
362
363
  export function isReqAppTickRearm(obj) {
363
364
  return !(reqAppTickRearm(obj) instanceof type.errors);
364
365
  }
365
- export const resAppTickRearm = type({
366
+ export const resAppTickRearm = lazyType(() => type({
366
367
  type: "'vibes.diy.res-app-tick-rearm'",
367
368
  ownerHandle: "string",
368
369
  appSlug: "string",
369
370
  state: "'unscheduled'|'running'|'healthy'|'overdue'|'dead'",
370
371
  intervalMs: "number|null",
371
372
  nextAlarmAt: "string|null",
372
- });
373
+ }));
373
374
  export function isResAppTickRearm(obj) {
374
375
  return !(resAppTickRearm(obj) instanceof type.errors);
375
376
  }
376
- export const reqSetVersionLock = type({
377
+ export const reqSetVersionLock = lazyType(() => type({
377
378
  type: "'vibes.diy.req-set-version-lock'",
378
379
  auth: dashAuthType,
379
380
  appSlug: "string",
380
381
  ownerHandle: "string",
381
382
  "fsId?": "string",
382
- });
383
+ }));
383
384
  export function isReqSetVersionLock(obj) {
384
385
  return !(reqSetVersionLock(obj) instanceof type.errors);
385
386
  }
386
- export const resSetVersionLock = type({
387
+ export const resSetVersionLock = lazyType(() => type({
387
388
  type: "'vibes.diy.res-set-version-lock'",
388
389
  appSlug: "string",
389
390
  ownerHandle: "string",
390
391
  lockedFsId: "string",
391
392
  previousLockedFsId: "string",
392
- });
393
+ }));
393
394
  export function isResSetVersionLock(obj) {
394
395
  return !(resSetVersionLock(obj) instanceof type.errors);
395
396
  }
396
397
  export function isReqGetByUserSlugAppSlug(obj) {
397
398
  return !(reqGetByUserSlugAppSlug(obj) instanceof type.errors);
398
399
  }
399
- export const resGetByUserSlugAppSlug = type({
400
+ export const resGetByUserSlugAppSlug = lazyType(() => type({
400
401
  type: "'vibes.diy.res-get-by-user-slug-app-slug'",
401
- }).and(FileSystemRefFields);
402
+ }).and(FileSystemRefFields));
402
403
  export function isResGetByUserSlugAppSlug(obj) {
403
404
  const res = resGetByUserSlugAppSlug(obj);
404
405
  if (res instanceof type.errors) {
@@ -406,7 +407,7 @@ export function isResGetByUserSlugAppSlug(obj) {
406
407
  }
407
408
  return !(resGetByUserSlugAppSlug(obj) instanceof type.errors);
408
409
  }
409
- export const reqForkApp = type({
410
+ export const reqForkApp = lazyType(() => type({
410
411
  type: "'vibes.diy.req-fork-app'",
411
412
  auth: dashAuthType,
412
413
  srcUserSlug: "string",
@@ -416,11 +417,11 @@ export const reqForkApp = type({
416
417
  "dstAppSlug?": "string",
417
418
  "dstOwnerHandle?": "string",
418
419
  "cacheKey?": "string",
419
- });
420
+ }));
420
421
  export function isReqForkApp(obj) {
421
422
  return !(reqForkApp(obj) instanceof type.errors);
422
423
  }
423
- export const resForkApp = type({
424
+ export const resForkApp = lazyType(() => type({
424
425
  type: "'vibes.diy.res-fork-app'",
425
426
  ownerHandle: "string",
426
427
  appSlug: "string",
@@ -429,52 +430,52 @@ export const resForkApp = type({
429
430
  srcUserSlug: "string",
430
431
  srcAppSlug: "string",
431
432
  "seededFromCache?": "boolean",
432
- });
433
+ }));
433
434
  export function isResForkApp(obj) {
434
435
  return !(resForkApp(obj) instanceof type.errors);
435
436
  }
436
- export const reqCarryAppSettings = type({
437
+ export const reqCarryAppSettings = lazyType(() => type({
437
438
  type: "'vibes.diy.req-carry-app-settings'",
438
439
  auth: dashAuthType,
439
440
  srcUserSlug: "string",
440
441
  srcAppSlug: "string",
441
442
  dstOwnerHandle: "string",
442
443
  dstAppSlug: "string",
443
- });
444
+ }));
444
445
  export function isReqCarryAppSettings(obj) {
445
446
  return !(reqCarryAppSettings(obj) instanceof type.errors);
446
447
  }
447
- export const resCarryAppSettings = type({
448
+ export const resCarryAppSettings = lazyType(() => type({
448
449
  type: "'vibes.diy.res-carry-app-settings'",
449
450
  carried: "string[]",
450
451
  skippedPresent: "string[]",
451
- });
452
+ }));
452
453
  export function isResCarryAppSettings(obj) {
453
454
  return !(resCarryAppSettings(obj) instanceof type.errors);
454
455
  }
455
- export const ResSetModeFs = type({
456
+ export const ResSetModeFs = lazyType(() => type({
456
457
  type: "'vibes.diy.res-set-mode-fs'",
457
458
  fsId: "string",
458
459
  appSlug: "string",
459
460
  ownerHandle: "string",
460
461
  mode: FSMode,
461
- });
462
+ }));
462
463
  export function isResSetModeFs(obj) {
463
464
  return !(ResSetModeFs(obj) instanceof type.errors);
464
465
  }
465
- export const ReqSetModeFs = type({
466
+ export const ReqSetModeFs = lazyType(() => type({
466
467
  type: "'vibes.diy.req-set-mode-fs'",
467
468
  auth: dashAuthType,
468
469
  fsId: "string",
469
470
  appSlug: "string",
470
471
  ownerHandle: "string",
471
472
  mode: FSMode,
472
- });
473
+ }));
473
474
  export const reqSetModeFs = ReqSetModeFs;
474
475
  export function isReqSetModeFs(obj) {
475
476
  return !(ReqSetModeFs(obj) instanceof type.errors);
476
477
  }
477
- export const reqPublishApp = type({
478
+ export const reqPublishApp = lazyType(() => type({
478
479
  type: "'vibes.diy.req-publish-app'",
479
480
  auth: dashAuthType,
480
481
  appSlug: "string",
@@ -484,11 +485,11 @@ export const reqPublishApp = type({
484
485
  "posture?": postureIntent,
485
486
  "seedPosture?": dbPosture,
486
487
  "anonWrite?": anonWriteMode,
487
- });
488
+ }));
488
489
  export function isReqPublishApp(obj) {
489
490
  return !(reqPublishApp(obj) instanceof type.errors);
490
491
  }
491
- export const resPublishApp = type({
492
+ export const resPublishApp = lazyType(() => type({
492
493
  type: "'vibes.diy.res-publish-app'",
493
494
  appSlug: "string",
494
495
  ownerHandle: "string",
@@ -498,142 +499,142 @@ export const resPublishApp = type({
498
499
  published: "boolean",
499
500
  "envelopeError?": "string",
500
501
  "suppressed?": "boolean",
501
- });
502
+ }));
502
503
  export function isResPublishApp(obj) {
503
504
  return !(resPublishApp(obj) instanceof type.errors);
504
505
  }
505
- export const reqSeedRemove = type({
506
+ export const reqSeedRemove = lazyType(() => type({
506
507
  type: "'vibes.diy.req-seed-remove'",
507
508
  auth: dashAuthType,
508
509
  appSlug: "string",
509
510
  ownerHandle: "string",
510
- });
511
+ }));
511
512
  export function isReqSeedRemove(obj) {
512
513
  return !(reqSeedRemove(obj) instanceof type.errors);
513
514
  }
514
- export const resSeedRemove = type({
515
+ export const resSeedRemove = lazyType(() => type({
515
516
  type: "'vibes.diy.res-seed-remove'",
516
517
  appSlug: "string",
517
518
  ownerHandle: "string",
518
519
  removed: "number",
519
520
  failed: "number",
520
- });
521
+ }));
521
522
  export function isResSeedRemove(obj) {
522
523
  return !(resSeedRemove(obj) instanceof type.errors);
523
524
  }
524
- export const reqSeedRerun = type({
525
+ export const reqSeedRerun = lazyType(() => type({
525
526
  type: "'vibes.diy.req-seed-rerun'",
526
527
  auth: dashAuthType,
527
528
  appSlug: "string",
528
529
  ownerHandle: "string",
529
- });
530
+ }));
530
531
  export function isReqSeedRerun(obj) {
531
532
  return !(reqSeedRerun(obj) instanceof type.errors);
532
533
  }
533
- export const resSeedRerun = type({
534
+ export const resSeedRerun = lazyType(() => type({
534
535
  type: "'vibes.diy.res-seed-rerun'",
535
536
  appSlug: "string",
536
537
  ownerHandle: "string",
537
538
  applied: "number",
538
539
  failed: "number",
539
- });
540
+ }));
540
541
  export function isResSeedRerun(obj) {
541
542
  return !(resSeedRerun(obj) instanceof type.errors);
542
543
  }
543
- export const ReqListHandleBindings = type({
544
+ export const ReqListHandleBindings = lazyType(() => type({
544
545
  type: "'vibes.diy.req-list-user-slug-bindings'",
545
546
  auth: dashAuthType,
546
547
  "asHandle?": "string",
547
- });
548
+ }));
548
549
  export function isReqListHandleBindings(obj) {
549
550
  return !(ReqListHandleBindings(obj) instanceof type.errors);
550
551
  }
551
- export const HandleBindingItem = type({
552
+ export const HandleBindingItem = lazyType(() => type({
552
553
  ownerHandle: "string",
553
554
  tenant: "string",
554
555
  created: "string",
555
556
  appSlugCount: "number",
556
- });
557
- export const ResListHandleBindings = type({
557
+ }));
558
+ export const ResListHandleBindings = lazyType(() => type({
558
559
  type: "'vibes.diy.res-list-user-slug-bindings'",
559
560
  items: HandleBindingItem.array(),
560
561
  "viewedAs?": "string",
561
- });
562
+ }));
562
563
  export function isResListHandleBindings(obj) {
563
564
  return !(ResListHandleBindings(obj) instanceof type.errors);
564
565
  }
565
- export const ReqCreateHandleBinding = type({
566
+ export const ReqCreateHandleBinding = lazyType(() => type({
566
567
  type: "'vibes.diy.req-create-user-slug-binding'",
567
568
  auth: dashAuthType,
568
569
  "ownerHandle?": "string",
569
- });
570
+ }));
570
571
  export function isReqCreateHandleBinding(obj) {
571
572
  return !(ReqCreateHandleBinding(obj) instanceof type.errors);
572
573
  }
573
- export const ResCreateHandleBinding = type({
574
+ export const ResCreateHandleBinding = lazyType(() => type({
574
575
  type: "'vibes.diy.res-create-user-slug-binding'",
575
576
  ownerHandle: "string",
576
577
  tenant: "string",
577
578
  created: "string",
578
- });
579
+ }));
579
580
  export function isResCreateHandleBinding(obj) {
580
581
  return !(ResCreateHandleBinding(obj) instanceof type.errors);
581
582
  }
582
- export const ReqDeleteHandleBinding = type({
583
+ export const ReqDeleteHandleBinding = lazyType(() => type({
583
584
  type: "'vibes.diy.req-delete-user-slug-binding'",
584
585
  auth: dashAuthType,
585
586
  ownerHandle: "string",
586
- });
587
+ }));
587
588
  export function isReqDeleteHandleBinding(obj) {
588
589
  return !(ReqDeleteHandleBinding(obj) instanceof type.errors);
589
590
  }
590
- export const ResDeleteHandleBinding = type({
591
+ export const ResDeleteHandleBinding = lazyType(() => type({
591
592
  type: "'vibes.diy.res-delete-user-slug-binding'",
592
593
  ownerHandle: "string",
593
594
  deleted: "boolean",
594
- });
595
+ }));
595
596
  export function isResDeleteHandleBinding(obj) {
596
597
  return !(ResDeleteHandleBinding(obj) instanceof type.errors);
597
598
  }
598
- export const ReqSuggestHandleCandidates = type({
599
+ export const ReqSuggestHandleCandidates = lazyType(() => type({
599
600
  type: "'vibes.diy.req-suggest-handle-candidates'",
600
601
  auth: dashAuthType,
601
602
  "count?": "number",
602
- });
603
+ }));
603
604
  export function isReqSuggestHandleCandidates(obj) {
604
605
  return !(ReqSuggestHandleCandidates(obj) instanceof type.errors);
605
606
  }
606
- export const ResSuggestHandleCandidates = type({
607
+ export const ResSuggestHandleCandidates = lazyType(() => type({
607
608
  type: "'vibes.diy.res-suggest-handle-candidates'",
608
609
  wordSlugs: type("string").array(),
609
610
  clerkSuggestions: type("string").array(),
610
611
  "ranked?": type("string").array(),
611
- });
612
+ }));
612
613
  export function isResSuggestHandleCandidates(obj) {
613
614
  return !(ResSuggestHandleCandidates(obj) instanceof type.errors);
614
615
  }
615
- export const ReqConfirmPlaceholderHandle = type({
616
+ export const ReqConfirmPlaceholderHandle = lazyType(() => type({
616
617
  type: "'vibes.diy.req-confirm-placeholder-handle'",
617
618
  auth: dashAuthType,
618
619
  appSlug: "string",
619
620
  ownerHandle: "string",
620
621
  routeHandle: "string",
621
- });
622
+ }));
622
623
  export function isReqConfirmPlaceholderHandle(obj) {
623
624
  return !(ReqConfirmPlaceholderHandle(obj) instanceof type.errors);
624
625
  }
625
- export const ResConfirmPlaceholderHandle = type({
626
+ export const ResConfirmPlaceholderHandle = lazyType(() => type({
626
627
  type: "'vibes.diy.res-confirm-placeholder-handle'",
627
628
  ownerHandle: "string",
628
629
  appSlug: "string",
629
630
  chosenHandle: "string",
630
631
  defaultHandle: "string",
631
632
  moved: "boolean",
632
- });
633
+ }));
633
634
  export function isResConfirmPlaceholderHandle(obj) {
634
635
  return !(ResConfirmPlaceholderHandle(obj) instanceof type.errors);
635
636
  }
636
- export const reqListNotifications = type({
637
+ export const reqListNotifications = lazyType(() => type({
637
638
  type: "'vibes.diy.req-list-notifications'",
638
639
  auth: dashAuthType,
639
640
  "appSlug?": "string",
@@ -641,35 +642,35 @@ export const reqListNotifications = type({
641
642
  "notificationType?": notificationTypeEnum,
642
643
  "cursor?": "string",
643
644
  "limit?": "number",
644
- });
645
+ }));
645
646
  export function isReqListNotifications(obj) {
646
647
  return !(reqListNotifications(obj) instanceof type.errors);
647
648
  }
648
- export const resListNotifications = type({
649
+ export const resListNotifications = lazyType(() => type({
649
650
  type: "'vibes.diy.res-list-notifications'",
650
651
  items: notificationRow.array(),
651
652
  "nextCursor?": "string",
652
653
  unreadCount: "number",
653
- });
654
+ }));
654
655
  export function isResListNotifications(obj) {
655
656
  return !(resListNotifications(obj) instanceof type.errors);
656
657
  }
657
- export const reqMarkNotificationsRead = type({
658
+ export const reqMarkNotificationsRead = lazyType(() => type({
658
659
  type: "'vibes.diy.req-mark-notifications-read'",
659
660
  auth: dashAuthType,
660
661
  "ids?": "string[]",
661
- });
662
+ }));
662
663
  export function isReqMarkNotificationsRead(obj) {
663
664
  return !(reqMarkNotificationsRead(obj) instanceof type.errors);
664
665
  }
665
- export const resMarkNotificationsRead = type({
666
+ export const resMarkNotificationsRead = lazyType(() => type({
666
667
  type: "'vibes.diy.res-mark-notifications-read'",
667
668
  ok: "number",
668
- });
669
+ }));
669
670
  export function isResMarkNotificationsRead(obj) {
670
671
  return !(resMarkNotificationsRead(obj) instanceof type.errors);
671
672
  }
672
- export const vibeLogEventWire = type({
673
+ export const vibeLogEventWire = lazyType(() => type({
673
674
  id: "string",
674
675
  ts: "string",
675
676
  lane: "'backend'|'client'",
@@ -679,10 +680,10 @@ export const vibeLogEventWire = type({
679
680
  body: "string",
680
681
  sessionId: "string|null",
681
682
  viewerHandle: "string|null",
682
- });
683
+ }));
683
684
  export const APP_LOGS_LIMIT_DEFAULT = 100;
684
685
  export const APP_LOGS_LIMIT_MAX = 500;
685
- export const reqAppLogs = type({
686
+ export const reqAppLogs = lazyType(() => type({
686
687
  type: "'vibes.diy.req-app-logs'",
687
688
  auth: dashAuthType,
688
689
  ownerHandle: "string",
@@ -692,18 +693,18 @@ export const reqAppLogs = type({
692
693
  "level?": "'debug'|'info'|'warn'|'error'",
693
694
  "probeLatest?": "boolean",
694
695
  limit: "number",
695
- });
696
+ }));
696
697
  export function isReqAppLogs(obj) {
697
698
  return !(reqAppLogs(obj) instanceof type.errors);
698
699
  }
699
- export const resAppLogs = type({
700
+ export const resAppLogs = lazyType(() => type({
700
701
  type: "'vibes.diy.res-app-logs'",
701
702
  ownerHandle: "string",
702
703
  appSlug: "string",
703
704
  events: vibeLogEventWire.array(),
704
705
  nextCursor: "string|null",
705
706
  "latestTs?": "string|null",
706
- });
707
+ }));
707
708
  export function isResAppLogs(obj) {
708
709
  return !(resAppLogs(obj) instanceof type.errors);
709
710
  }