@vibes.diy/api-svc 14.3.203 → 14.3.205

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 (70) hide show
  1. package/billing.d.ts +2 -0
  2. package/billing.js +44 -10
  3. package/billing.js.map +1 -1
  4. package/evento-handler-manifest.js +0 -2
  5. package/evento-handler-manifest.js.map +1 -1
  6. package/intern/agent-assembly.d.ts +0 -1
  7. package/intern/agent-assembly.js +1 -3
  8. package/intern/agent-assembly.js.map +1 -1
  9. package/intern/agent-belt.js +1 -1
  10. package/intern/agent-belt.js.map +1 -1
  11. package/intern/agent-seed-tools.js +17 -0
  12. package/intern/agent-seed-tools.js.map +1 -1
  13. package/intern/agent-session-instruction.d.ts +2 -2
  14. package/intern/agent-session-instruction.js +3 -3
  15. package/intern/agent-session-instruction.js.map +1 -1
  16. package/intern/agent-wake.d.ts +1 -0
  17. package/intern/agent-wake.js +3 -0
  18. package/intern/agent-wake.js.map +1 -1
  19. package/intern/app-inventory.d.ts +42 -0
  20. package/intern/app-inventory.js +128 -0
  21. package/intern/app-inventory.js.map +1 -0
  22. package/intern/apply-seed.js +8 -1
  23. package/intern/apply-seed.js.map +1 -1
  24. package/intern/backend-db-callback.d.ts +1 -0
  25. package/intern/backend-db-callback.js +4 -0
  26. package/intern/backend-db-callback.js.map +1 -1
  27. package/intern/backend-github-callback.js +37 -4
  28. package/intern/backend-github-callback.js.map +1 -1
  29. package/intern/components/vibe-page.d.ts +1 -0
  30. package/intern/components/vibe-page.js +3 -2
  31. package/intern/components/vibe-page.js.map +1 -1
  32. package/intern/first-build-race.d.ts +2 -0
  33. package/intern/first-build-race.js +12 -4
  34. package/intern/first-build-race.js.map +1 -1
  35. package/intern/grouped-vibe-import-map.d.ts +3 -0
  36. package/intern/grouped-vibe-import-map.js +3 -0
  37. package/intern/grouped-vibe-import-map.js.map +1 -1
  38. package/intern/import-synth.js +24 -15
  39. package/intern/import-synth.js.map +1 -1
  40. package/intern/instruction-variant.d.ts +1 -1
  41. package/intern/instruction-variant.js +1 -2
  42. package/intern/instruction-variant.js.map +1 -1
  43. package/intern/look-lint-engine.js +5 -4
  44. package/intern/look-lint-engine.js.map +1 -1
  45. package/intern/looks.js +1 -1
  46. package/intern/looks.js.map +1 -1
  47. package/intern/openrouter-image.js.map +1 -1
  48. package/intern/opens-check.js +2 -2
  49. package/intern/opens-check.js.map +1 -1
  50. package/package.json +18 -18
  51. package/public/agent-turn-action.js +10 -7
  52. package/public/agent-turn-action.js.map +1 -1
  53. package/public/agent-turn-assembly.js +0 -5
  54. package/public/agent-turn-assembly.js.map +1 -1
  55. package/public/app-inventory-dispatch.d.ts +10 -0
  56. package/public/app-inventory-dispatch.js +38 -0
  57. package/public/app-inventory-dispatch.js.map +1 -0
  58. package/public/prompt-turn-settled.js +22 -0
  59. package/public/prompt-turn-settled.js.map +1 -1
  60. package/public/stripe-connect.js +12 -1
  61. package/public/stripe-connect.js.map +1 -1
  62. package/intern/look-restyle-pick.d.ts +0 -1
  63. package/intern/look-restyle-pick.js +0 -14
  64. package/intern/look-restyle-pick.js.map +0 -1
  65. package/intern/look-restyle.d.ts +0 -87
  66. package/intern/look-restyle.js +0 -385
  67. package/intern/look-restyle.js.map +0 -1
  68. package/public/look-restyle.d.ts +0 -14
  69. package/public/look-restyle.js +0 -153
  70. package/public/look-restyle.js.map +0 -1
@@ -1,153 +0,0 @@
1
- import { Result, Option, EventoResult } from "@adviser/cement";
2
- import { reqLookRestyle, } from "@vibes.diy/api-types";
3
- import { type } from "arktype";
4
- import { unwrapMsgBase } from "../unwrap-msg-base.js";
5
- import { checkAuth } from "../check-auth.js";
6
- import { authorizeSlugOwner } from "./authorize-slug-owner.js";
7
- import { LOOK_ROUND_ABANDONED_MS, LOOK_WAIT_POLL_MS, claimLookRound, directionsFor, freshLooks, launchLookRound, loadCurrentShot, lookRoundStatus, readLookRound, runningLookRound, } from "../intern/look-restyle.js";
8
- function denialError(ownerHandle, appSlug) {
9
- return {
10
- type: "vibes.diy.res-error",
11
- error: { message: `not found or not yours: ${ownerHandle}/${appSlug}`, code: "look-restyle-not-found" },
12
- };
13
- }
14
- function unavailableError(message) {
15
- return { type: "vibes.diy.res-error", error: { message, code: "look-restyle-unavailable" } };
16
- }
17
- function answer(req, status, extra = {}) {
18
- return {
19
- type: "vibes.diy.res-look-restyle",
20
- ownerHandle: req.ownerHandle,
21
- appSlug: req.appSlug,
22
- status,
23
- ...(extra.shot === undefined ? {} : { shot: extra.shot }),
24
- ...(extra.round === undefined ? {} : { round: extra.round }),
25
- };
26
- }
27
- function rowAnswer(req, row, nowMs) {
28
- return answer(req, lookRoundStatus(row, nowMs), { shot: row.shot, round: row.round });
29
- }
30
- async function creditsAllow(vctx, userId) {
31
- if (vctx.billing.enforceEnabled === false)
32
- return true;
33
- const rCheck = await vctx.billing.checkCredits({ userId });
34
- if (rCheck.isErr()) {
35
- vctx.logger.Warn().Err(rCheck).Msg("look-restyle-billing-check-failed-open");
36
- return true;
37
- }
38
- return rCheck.Ok().allowed !== false;
39
- }
40
- function sleep(ms) {
41
- return new Promise((resolve) => {
42
- setTimeout(resolve, ms);
43
- });
44
- }
45
- async function start(vctx, args) {
46
- const { req, row, shot } = args;
47
- const shotOut = { fsId: shot.fsId, cid: shot.cid, mime: shot.mime };
48
- if (row !== undefined) {
49
- const status = lookRoundStatus(row, args.nowMs);
50
- if (status !== "failed" || req.retry !== true)
51
- return rowAnswer(req, row, args.nowMs);
52
- }
53
- if ((await creditsAllow(vctx, args.userId)) === false)
54
- return answer(req, "credits-short", { shot: shotOut });
55
- const app = { ownerHandle: req.ownerHandle, appSlug: req.appSlug };
56
- const directions = await directionsFor(vctx, { ...app, userId: args.userId });
57
- const claimed = await claimLookRound(vctx, {
58
- ...app,
59
- shot: shotOut,
60
- userId: args.userId,
61
- looks: freshLooks(directions),
62
- ...(row === undefined ? {} : { replace: { roundId: row.roundId, status: row.status, updated: row.updated } }),
63
- });
64
- if (claimed.isErr()) {
65
- vctx.logger.Warn().Err(claimed.Err()).Msg("look-restyle-claim-failed");
66
- return unavailableError("The new looks could not start just now.");
67
- }
68
- const { row: now } = claimed.Ok();
69
- if (claimed.Ok().claimed) {
70
- launchLookRound(vctx, {
71
- ...app,
72
- userId: args.userId,
73
- shot,
74
- round: now.round,
75
- directions,
76
- ...(args.seams.render === undefined ? {} : { render: args.seams.render }),
77
- ...(args.seams.renderDeadlineMs === undefined ? {} : { renderDeadlineMs: args.seams.renderDeadlineMs }),
78
- ...(args.seams.prepDeadlineMs === undefined ? {} : { prepDeadlineMs: args.seams.prepDeadlineMs }),
79
- ...(args.seams.crop === undefined ? {} : { crop: args.seams.crop }),
80
- });
81
- }
82
- return rowAnswer(req, now, args.nowMs);
83
- }
84
- async function wait(vctx, args) {
85
- const clock = args.seams.nowMs ?? Date.now;
86
- const key = { ownerHandle: args.req.ownerHandle, appSlug: args.req.appSlug, shotCid: args.shot.cid };
87
- let row = args.row;
88
- if (row === undefined)
89
- return answer(args.req, "none", { shot: { fsId: args.shot.fsId, cid: args.shot.cid, mime: args.shot.mime } });
90
- const here = runningLookRound(vctx, row.roundId);
91
- if (here !== undefined)
92
- await here;
93
- for (;;) {
94
- const read = await readLookRound(vctx, key);
95
- if (read.isErr()) {
96
- vctx.logger.Warn().Err(read.Err()).Msg("look-restyle-wait-read-failed");
97
- return unavailableError("The new looks could not be read just now.");
98
- }
99
- row = read.Ok();
100
- if (row === undefined)
101
- return answer(args.req, "none");
102
- if (lookRoundStatus(row, clock()) !== "running")
103
- return rowAnswer(args.req, row, clock());
104
- await sleep(Math.min(args.seams.pollMs ?? LOOK_WAIT_POLL_MS, LOOK_ROUND_ABANDONED_MS));
105
- }
106
- }
107
- export async function lookRestyle(vctx, req, seams = {}) {
108
- const userId = req._auth.verifiedAuth.claims.userId;
109
- const auth = await authorizeSlugOwner(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug, userId });
110
- if (auth === undefined || auth.isOwner === false)
111
- return denialError(req.ownerHandle, req.appSlug);
112
- const rShot = await loadCurrentShot(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug });
113
- if (rShot.isErr()) {
114
- vctx.logger.Warn().Err(rShot.Err()).Msg("look-restyle-shot-read-failed");
115
- return unavailableError("The app's screenshot could not be read just now.");
116
- }
117
- const shot = rShot.Ok();
118
- if (shot === undefined)
119
- return answer(req, "no-screenshot");
120
- const rRow = await readLookRound(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug, shotCid: shot.cid });
121
- if (rRow.isErr()) {
122
- vctx.logger.Warn().Err(rRow.Err()).Msg("look-restyle-round-read-failed");
123
- return unavailableError("The new looks could not be read just now.");
124
- }
125
- const row = rRow.Ok();
126
- const nowMs = (seams.nowMs ?? Date.now)();
127
- const shotOut = { fsId: shot.fsId, cid: shot.cid, mime: shot.mime };
128
- switch (req.intent) {
129
- case "peek":
130
- return row === undefined ? answer(req, "none", { shot: shotOut }) : rowAnswer(req, row, nowMs);
131
- case "start":
132
- return start(vctx, { req, userId, shot, row, seams, nowMs });
133
- case "wait":
134
- return wait(vctx, { req, shot, row, seams });
135
- }
136
- }
137
- export const lookRestyleEvento = {
138
- hash: "look-restyle",
139
- validate: unwrapMsgBase(async (msg) => {
140
- const ret = reqLookRestyle(msg.payload);
141
- if (ret instanceof type.errors) {
142
- return Result.Ok(Option.None());
143
- }
144
- return Result.Ok(Option.Some({ ...msg, payload: ret }));
145
- }),
146
- handle: checkAuth(async (ctx) => {
147
- const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
148
- const r = await lookRestyle(vctx, ctx.validated.payload);
149
- await ctx.send.send(ctx, r);
150
- return Result.Ok(EventoResult.Continue);
151
- }),
152
- };
153
- //# sourceMappingURL=look-restyle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"look-restyle.js","sourceRoot":"","sources":["../../jsr/public/look-restyle.ts"],"names":[],"mappings":"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"}