@vibes.diy/api-svc 14.3.65 → 14.3.67

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 (181) hide show
  1. package/cf-serve.js +1 -0
  2. package/cf-serve.js.map +1 -1
  3. package/check-auth.js +6 -1
  4. package/check-auth.js.map +1 -1
  5. package/create-handler.d.ts +2 -1
  6. package/create-handler.js +28 -17
  7. package/create-handler.js.map +1 -1
  8. package/evento-handler-manifest.js +2 -3
  9. package/evento-handler-manifest.js.map +1 -1
  10. package/guest-principal-token.d.ts +17 -0
  11. package/guest-principal-token.js +52 -0
  12. package/guest-principal-token.js.map +1 -0
  13. package/intern/admin-allowlist.d.ts +8 -0
  14. package/intern/admin-allowlist.js +10 -0
  15. package/intern/admin-allowlist.js.map +1 -0
  16. package/intern/agent-assembly.d.ts +7 -1
  17. package/intern/agent-assembly.js +15 -10
  18. package/intern/agent-assembly.js.map +1 -1
  19. package/intern/agent-belt.d.ts +1 -1
  20. package/intern/agent-belt.js +37 -8
  21. package/intern/agent-belt.js.map +1 -1
  22. package/intern/agent-build-tools.d.ts +3 -0
  23. package/intern/agent-build-tools.js +2 -2
  24. package/intern/agent-build-tools.js.map +1 -1
  25. package/intern/agent-image-survey-start.js +1 -1
  26. package/intern/agent-image-survey-start.js.map +1 -1
  27. package/intern/agent-session.d.ts +25 -24
  28. package/intern/agent-session.js +6 -2
  29. package/intern/agent-session.js.map +1 -1
  30. package/intern/automatic-draft-attachment.js +1 -8
  31. package/intern/automatic-draft-attachment.js.map +1 -1
  32. package/intern/client-message-dedupe.d.ts +27 -0
  33. package/intern/client-message-dedupe.js +89 -0
  34. package/intern/client-message-dedupe.js.map +1 -0
  35. package/intern/draft-runtime-store.d.ts +0 -2
  36. package/intern/draft-runtime-store.js +0 -15
  37. package/intern/draft-runtime-store.js.map +1 -1
  38. package/intern/ensure-chat-id.js +2 -2
  39. package/intern/ensure-chat-id.js.map +1 -1
  40. package/intern/guest-credit-meter.d.ts +13 -0
  41. package/intern/guest-credit-meter.js +82 -0
  42. package/intern/guest-credit-meter.js.map +1 -0
  43. package/intern/guest-mask.d.ts +8 -0
  44. package/intern/guest-mask.js +18 -0
  45. package/intern/guest-mask.js.map +1 -0
  46. package/intern/guest-principal-claim.d.ts +24 -0
  47. package/intern/guest-principal-claim.js +208 -0
  48. package/intern/guest-principal-claim.js.map +1 -0
  49. package/intern/guest-principal-store.d.ts +31 -0
  50. package/intern/guest-principal-store.js +159 -0
  51. package/intern/guest-principal-store.js.map +1 -0
  52. package/intern/inflate-file-attachments.d.ts +4 -1
  53. package/intern/inflate-file-attachments.js +86 -13
  54. package/intern/inflate-file-attachments.js.map +1 -1
  55. package/intern/instruction-variant.d.ts +1 -1
  56. package/intern/instruction-variant.js +2 -2
  57. package/intern/instruction-variant.js.map +1 -1
  58. package/intern/llm-tool-loop.d.ts +1 -0
  59. package/intern/llm-tool-loop.js +16 -6
  60. package/intern/llm-tool-loop.js.map +1 -1
  61. package/intern/load-selected-backend.js +3 -0
  62. package/intern/load-selected-backend.js.map +1 -1
  63. package/intern/mint-job-store.d.ts +4 -0
  64. package/intern/mint-job-store.js +19 -0
  65. package/intern/mint-job-store.js.map +1 -1
  66. package/intern/mint-style.d.ts +2 -2
  67. package/intern/mint-style.js +5 -5
  68. package/intern/mint-style.js.map +1 -1
  69. package/intern/open-turn-store.d.ts +17 -0
  70. package/intern/open-turn-store.js +8 -8
  71. package/intern/open-turn-store.js.map +1 -1
  72. package/intern/pouf-look-flag.d.ts +1 -0
  73. package/intern/pouf-look-flag.js +6 -0
  74. package/intern/pouf-look-flag.js.map +1 -1
  75. package/intern/prompt-assembly.d.ts +3 -2
  76. package/intern/prompt-assembly.js +7 -3
  77. package/intern/prompt-assembly.js.map +1 -1
  78. package/intern/unlimited-account.js +1 -1
  79. package/intern/unlimited-account.js.map +1 -1
  80. package/intern/webp-rendition.d.ts +14 -0
  81. package/intern/webp-rendition.js +46 -0
  82. package/intern/webp-rendition.js.map +1 -0
  83. package/package.json +13 -13
  84. package/public/agent-turn-action.js +24 -5
  85. package/public/agent-turn-action.js.map +1 -1
  86. package/public/agent-turn-assembly.js +1 -0
  87. package/public/agent-turn-assembly.js.map +1 -1
  88. package/public/app-settings-snapshot.js +13 -2
  89. package/public/app-settings-snapshot.js.map +1 -1
  90. package/public/app-settings-suggestion-bless.d.ts +1 -1
  91. package/public/app-settings-suggestion-bless.js +1 -9
  92. package/public/app-settings-suggestion-bless.js.map +1 -1
  93. package/public/append-block-event.d.ts +3 -3
  94. package/public/append-block-event.js +5 -2
  95. package/public/append-block-event.js.map +1 -1
  96. package/public/attach-draft-handle.js +0 -4
  97. package/public/attach-draft-handle.js.map +1 -1
  98. package/public/claim-guest-principal.d.ts +3 -0
  99. package/public/claim-guest-principal.js +40 -0
  100. package/public/claim-guest-principal.js.map +1 -0
  101. package/public/codegen-turn-route.js +15 -2
  102. package/public/codegen-turn-route.js.map +1 -1
  103. package/public/developer-grants-flow.js +3 -0
  104. package/public/developer-grants-flow.js.map +1 -1
  105. package/public/dm-read-eventos.d.ts +5 -5
  106. package/public/dm-sync-eventos.d.ts +1 -1
  107. package/public/dm-write-eventos.d.ts +3 -3
  108. package/public/draft-runtime.d.ts +2 -2
  109. package/public/draft-runtime.js +8 -19
  110. package/public/draft-runtime.js.map +1 -1
  111. package/public/ensure-app-slug-item.js +4 -0
  112. package/public/ensure-app-slug-item.js.map +1 -1
  113. package/public/get-app-by-fsid.js +4 -5
  114. package/public/get-app-by-fsid.js.map +1 -1
  115. package/public/get-chat-details.js +4 -11
  116. package/public/get-chat-details.js.map +1 -1
  117. package/public/get-chat-response.js +3 -9
  118. package/public/get-chat-response.js.map +1 -1
  119. package/public/handle-prompt-context.d.ts +2 -2
  120. package/public/handle-prompt-context.js +5 -14
  121. package/public/handle-prompt-context.js.map +1 -1
  122. package/public/handler-llm-request.js +17 -11
  123. package/public/handler-llm-request.js.map +1 -1
  124. package/public/invite-flow.js +3 -0
  125. package/public/invite-flow.js.map +1 -1
  126. package/public/open-chat.d.ts +11 -4
  127. package/public/open-chat.js +13 -13
  128. package/public/open-chat.js.map +1 -1
  129. package/public/prompt-chat-section.d.ts +1 -2
  130. package/public/prompt-chat-section.js +252 -232
  131. package/public/prompt-chat-section.js.map +1 -1
  132. package/public/publish-app.js +6 -0
  133. package/public/publish-app.js.map +1 -1
  134. package/public/request-flow.js +3 -0
  135. package/public/request-flow.js.map +1 -1
  136. package/public/set-mode-fsid.js +4 -0
  137. package/public/set-mode-fsid.js.map +1 -1
  138. package/public/set-version-lock.js +3 -0
  139. package/public/set-version-lock.js.map +1 -1
  140. package/public/social-invite-flow.js +4 -1
  141. package/public/social-invite-flow.js.map +1 -1
  142. package/public/stream-assembly.d.ts +5 -5
  143. package/public/stream-assembly.js +1 -4
  144. package/public/stream-assembly.js.map +1 -1
  145. package/shard-gate.js +11 -1
  146. package/shard-gate.js.map +1 -1
  147. package/types.d.ts +4 -3
  148. package/types.js.map +1 -1
  149. package/usage-report/draft-output-alert.js +3 -4
  150. package/usage-report/draft-output-alert.js.map +1 -1
  151. package/usage-report/gold-drip-sweep-util.js +2 -1
  152. package/usage-report/gold-drip-sweep-util.js.map +1 -1
  153. package/usage-report/new-user-alert-util.js +1 -1
  154. package/usage-report/new-user-alert-util.js.map +1 -1
  155. package/check-build-auth.d.ts +0 -18
  156. package/check-build-auth.js +0 -73
  157. package/check-build-auth.js.map +0 -1
  158. package/guest-build-token.d.ts +0 -16
  159. package/guest-build-token.js +0 -44
  160. package/guest-build-token.js.map +0 -1
  161. package/intern/draft-continuation.d.ts +0 -6
  162. package/intern/draft-continuation.js +0 -86
  163. package/intern/draft-continuation.js.map +0 -1
  164. package/intern/guest-build-issuance.d.ts +0 -9
  165. package/intern/guest-build-issuance.js +0 -83
  166. package/intern/guest-build-issuance.js.map +0 -1
  167. package/intern/guest-build-start.d.ts +0 -8
  168. package/intern/guest-build-start.js +0 -66
  169. package/intern/guest-build-start.js.map +0 -1
  170. package/intern/guest-build-store.d.ts +0 -50
  171. package/intern/guest-build-store.js +0 -232
  172. package/intern/guest-build-store.js.map +0 -1
  173. package/intern/guest-build-usage.d.ts +0 -7
  174. package/intern/guest-build-usage.js +0 -18
  175. package/intern/guest-build-usage.js.map +0 -1
  176. package/public/guest-build-generation.d.ts +0 -8
  177. package/public/guest-build-generation.js +0 -221
  178. package/public/guest-build-generation.js.map +0 -1
  179. package/public/guest-build.d.ts +0 -7
  180. package/public/guest-build.js +0 -127
  181. package/public/guest-build.js.map +0 -1
@@ -1,127 +0,0 @@
1
- import { EventoResult, Option, Result, exception2Result } from "@adviser/cement";
2
- import { type } from "arktype";
3
- import { and, eq } from "drizzle-orm";
4
- import { reqGuestBuildStatus, reqClaimGuestBuild, } from "@vibes.diy/api-types";
5
- import { automaticallyAttachDraft } from "../intern/automatic-draft-attachment.js";
6
- import { checkAuth } from "../check-auth.js";
7
- import { checkBuildAuth } from "../check-build-auth.js";
8
- import { unwrapMsgBase, wrapMsgBase } from "../unwrap-msg-base.js";
9
- import { readGuestBuild, recoverGuestBuild, transferGuestBuild } from "../intern/guest-build-store.js";
10
- export async function requireLiveGuestBuild(vctx, auth) {
11
- if (vctx.sthis.env.get("GUEST_FIRST_BUILD_SCHEMA_READY") !== "true")
12
- return Result.Err("guest-build-disabled");
13
- const claims = auth.verifiedAuth.claims;
14
- const loaded = await readGuestBuild(vctx, claims.chatId);
15
- if (loaded.isErr())
16
- return Result.Err(loaded.Err());
17
- const row = loaded.Ok();
18
- if (row === undefined ||
19
- row.jti !== claims.jti ||
20
- row.guestUserId !== claims.userId ||
21
- row.shardId !== claims.shardId ||
22
- row.plane !== claims.plane)
23
- return Result.Err("guest-build-unavailable");
24
- if (row.claimedUserId !== null)
25
- return Result.Err("guest-build-already-claimed");
26
- if (row.expiresAt <= new Date().toISOString())
27
- return Result.Err("guest-build-expired");
28
- return recoverGuestBuild(vctx, row);
29
- }
30
- async function sendStatus(ctx, row) {
31
- const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
32
- const t = vctx.sql.tables.chatContexts;
33
- const address = await exception2Result(() => vctx.sql.db
34
- .select({ ownerHandle: t.ownerHandle, appSlug: t.appSlug })
35
- .from(t)
36
- .where(and(eq(t.chatId, row.chatId), eq(t.userId, row.claimedUserId ?? row.guestUserId)))
37
- .limit(1));
38
- if (address.isErr())
39
- return Result.Err(address.Err());
40
- if (address.Ok().length !== 1)
41
- return Result.Err("guest-build-ownership-unavailable");
42
- const sent = await ctx.send.send(ctx, wrapMsgBase(ctx.validated, {
43
- tid: ctx.validated.tid,
44
- payload: { type: "vibes.diy.res-guest-build-status", chatId: row.chatId, status: row.status, ...address.Ok()[0] },
45
- }));
46
- return sent.isErr() ? Result.Err(sent.Err()) : Result.Ok(undefined);
47
- }
48
- export const guestBuildStatus = {
49
- hash: "guest-build-status",
50
- validate: unwrapMsgBase(async (msg) => {
51
- const parsed = reqGuestBuildStatus(msg.payload);
52
- return Result.Ok(parsed instanceof type.errors ? Option.None() : Option.Some({ ...msg, payload: parsed }));
53
- }),
54
- handle: checkBuildAuth(async (ctx) => {
55
- const req = ctx.validated.payload;
56
- const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
57
- if (vctx.sthis.env.get("GUEST_FIRST_BUILD_SCHEMA_READY") !== "true")
58
- return Result.Err("guest-build-disabled");
59
- const loaded = req._auth.type === "VerifiedGuestBuildAuth"
60
- ? await requireLiveGuestBuild(vctx, req._auth)
61
- : await readGuestBuild(vctx, req.chatId);
62
- if (loaded.isErr())
63
- return Result.Err(loaded.Err());
64
- const row = loaded.Ok();
65
- if (row === undefined ||
66
- (req._auth.type === "VerifiedAuthResult" && row.claimedUserId !== req._auth.verifiedAuth.claims.userId))
67
- return Result.Err("guest-build-unavailable");
68
- const sent = await sendStatus(ctx, row);
69
- return sent.isErr() ? Result.Err(sent.Err()) : Result.Ok(EventoResult.Continue);
70
- }),
71
- };
72
- export const claimGuestBuild = {
73
- hash: "claim-guest-build",
74
- validate: unwrapMsgBase(async (msg) => {
75
- const parsed = reqClaimGuestBuild(msg.payload);
76
- return Result.Ok(parsed instanceof type.errors ? Option.None() : Option.Some({ ...msg, payload: parsed }));
77
- }),
78
- handle: checkAuth(async (ctx) => {
79
- const req = ctx.validated.payload;
80
- const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
81
- if (vctx.sthis.env.get("GUEST_FIRST_BUILD_SCHEMA_READY") !== "true" || vctx.guestBuildSigner === undefined)
82
- return Result.Err("guest-build-disabled");
83
- const existing = await readGuestBuild(vctx, req.chatId);
84
- if (existing.isErr())
85
- return Result.Err(existing.Err());
86
- const owned = existing.Ok();
87
- const userId = req._auth.verifiedAuth.claims.userId;
88
- if (owned?.claimedUserId !== userId) {
89
- const verified = await vctx.guestBuildSigner.verify(req.guest.token);
90
- if (verified.isErr())
91
- return Result.Err(verified.Err());
92
- const claims = verified.Ok();
93
- if (claims.chatId !== req.chatId)
94
- return Result.Err("guest-build-chat-mismatch");
95
- const moved = await transferGuestBuild(vctx, { chatId: req.chatId, guestUserId: claims.userId, jti: claims.jti, userId });
96
- if (moved.isErr())
97
- return Result.Err(moved.Err());
98
- }
99
- else {
100
- const checked = await transferGuestBuild(vctx, {
101
- chatId: req.chatId,
102
- guestUserId: owned.guestUserId,
103
- jti: owned.jti,
104
- userId,
105
- });
106
- if (checked.isErr())
107
- return Result.Err(checked.Err());
108
- }
109
- const attached = await automaticallyAttachDraft(vctx, {
110
- chatId: req.chatId,
111
- userId,
112
- auth: req.auth,
113
- verifiedAuth: req._auth,
114
- });
115
- if (attached.isErr())
116
- return Result.Err(attached.Err());
117
- const reloaded = await readGuestBuild(vctx, req.chatId);
118
- if (reloaded.isErr())
119
- return Result.Err(reloaded.Err());
120
- const row = reloaded.Ok();
121
- if (row === undefined || row.claimedUserId !== userId)
122
- return Result.Err("guest-build-unavailable");
123
- const sent = await sendStatus(ctx, row);
124
- return sent.isErr() ? Result.Err(sent.Err()) : Result.Ok(EventoResult.Continue);
125
- }),
126
- };
127
- //# sourceMappingURL=guest-build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guest-build.js","sourceRoot":"","sources":["../../jsr/public/guest-build.ts"],"names":[],"mappings":"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"}