@vibes.diy/api-svc 4.5.4 → 5.0.1

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 (74) hide show
  1. package/autumn.config.d.ts +4 -2
  2. package/autumn.config.js +12 -7
  3. package/autumn.config.js.map +1 -1
  4. package/billing.d.ts +77 -1
  5. package/billing.js +264 -3
  6. package/billing.js.map +1 -1
  7. package/evento-handler-manifest.js +11 -0
  8. package/evento-handler-manifest.js.map +1 -1
  9. package/index.d.ts +9 -0
  10. package/index.js +9 -0
  11. package/index.js.map +1 -1
  12. package/intern/components/vibe-page.js +5 -1
  13. package/intern/components/vibe-page.js.map +1 -1
  14. package/intern/emit-notification.d.ts +20 -0
  15. package/intern/emit-notification.js +42 -0
  16. package/intern/emit-notification.js.map +1 -0
  17. package/intern/notify-comment-posted.d.ts +8 -0
  18. package/intern/notify-comment-posted.js +24 -0
  19. package/intern/notify-comment-posted.js.map +1 -0
  20. package/intern/notify-dm-received.d.ts +9 -0
  21. package/intern/notify-dm-received.js +25 -0
  22. package/intern/notify-dm-received.js.map +1 -0
  23. package/intern/notify-member-joined.d.ts +11 -0
  24. package/intern/notify-member-joined.js +16 -0
  25. package/intern/notify-member-joined.js.map +1 -0
  26. package/intern/notify-remix-clone.d.ts +6 -0
  27. package/intern/notify-remix-clone.js +21 -0
  28. package/intern/notify-remix-clone.js.map +1 -0
  29. package/intern/notify-remix.d.ts +8 -0
  30. package/intern/notify-remix.js +23 -0
  31. package/intern/notify-remix.js.map +1 -0
  32. package/intern/notify-request-grant.d.ts +9 -0
  33. package/intern/notify-request-grant.js +18 -0
  34. package/intern/notify-request-grant.js.map +1 -0
  35. package/intern/notify-vibe-published.d.ts +7 -0
  36. package/intern/notify-vibe-published.js +22 -0
  37. package/intern/notify-vibe-published.js.map +1 -0
  38. package/intern/vibe-curation-decision.d.ts +18 -0
  39. package/intern/vibe-curation-decision.js +46 -0
  40. package/intern/vibe-curation-decision.js.map +1 -0
  41. package/package.json +11 -11
  42. package/public/access-helpers.js +5 -1
  43. package/public/access-helpers.js.map +1 -1
  44. package/public/app-documents-read-eventos.js +1 -1
  45. package/public/app-documents-read-eventos.js.map +1 -1
  46. package/public/app-documents-write-eventos.js +4 -3
  47. package/public/app-documents-write-eventos.js.map +1 -1
  48. package/public/billing-msg.d.ts +5 -0
  49. package/public/billing-msg.js +143 -0
  50. package/public/billing-msg.js.map +1 -0
  51. package/public/curated-new-vibes.d.ts +3 -0
  52. package/public/curated-new-vibes.js +64 -0
  53. package/public/curated-new-vibes.js.map +1 -0
  54. package/public/email-unsubscribe.d.ts +7 -0
  55. package/public/email-unsubscribe.js +41 -0
  56. package/public/email-unsubscribe.js.map +1 -0
  57. package/public/ensure-user-settings.js +9 -1
  58. package/public/ensure-user-settings.js.map +1 -1
  59. package/public/fork-app.js +24 -1
  60. package/public/fork-app.js.map +1 -1
  61. package/public/home-feed-common.d.ts +18 -0
  62. package/public/home-feed-common.js +46 -0
  63. package/public/home-feed-common.js.map +1 -0
  64. package/public/home-leaderboard.d.ts +3 -0
  65. package/public/home-leaderboard.js +64 -0
  66. package/public/home-leaderboard.js.map +1 -0
  67. package/public/image-gen.js +9 -0
  68. package/public/image-gen.js.map +1 -1
  69. package/public/list-notifications.d.ts +4 -0
  70. package/public/list-notifications.js +157 -0
  71. package/public/list-notifications.js.map +1 -0
  72. package/usage-report/billing-reconcile-util.d.ts +7 -5
  73. package/usage-report/billing-reconcile-util.js +32 -17
  74. package/usage-report/billing-reconcile-util.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fork-app.js","sourceRoot":"","sources":["../../jsr/public/fork-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fork-app.js","sourceRoot":"","sources":["../../jsr/public/fork-app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { VibesApiSQLCtx } from "../types.js";
2
+ export declare const HOME_FEED_DEFAULT_LIMIT = 12;
3
+ export declare const HOME_FEED_MAX_LIMIT = 50;
4
+ export declare const HOME_FEED_SCAN_FACTOR = 3;
5
+ export declare function clampHomeFeedLimit(raw: number | undefined): number;
6
+ export interface VibeDisplayInfo {
7
+ readonly title?: string;
8
+ readonly icon?: {
9
+ cid: string;
10
+ mime: string;
11
+ };
12
+ readonly worldReadable: boolean;
13
+ }
14
+ export declare function titleIconKey(ownerHandle: string, appSlug: string): string;
15
+ export declare function loadVibeDisplayInfo(vctx: VibesApiSQLCtx, pairs: readonly {
16
+ ownerHandle: string;
17
+ appSlug: string;
18
+ }[]): Promise<Map<string, VibeDisplayInfo>>;
@@ -0,0 +1,46 @@
1
+ import { isActiveIcon, isActiveTitle } from "@vibes.diy/api-types";
2
+ import { and, eq, or } from "drizzle-orm/sql/expressions";
3
+ import { deriveIsWorldReadable } from "../intern/get-vibe-route-hints.js";
4
+ export const HOME_FEED_DEFAULT_LIMIT = 12;
5
+ export const HOME_FEED_MAX_LIMIT = 50;
6
+ export const HOME_FEED_SCAN_FACTOR = 3;
7
+ export function clampHomeFeedLimit(raw) {
8
+ if (raw === undefined || !Number.isFinite(raw))
9
+ return HOME_FEED_DEFAULT_LIMIT;
10
+ const i = Math.floor(raw);
11
+ if (i < 1)
12
+ return 1;
13
+ if (i > HOME_FEED_MAX_LIMIT)
14
+ return HOME_FEED_MAX_LIMIT;
15
+ return i;
16
+ }
17
+ export function titleIconKey(ownerHandle, appSlug) {
18
+ return `${ownerHandle}\x00${appSlug}`;
19
+ }
20
+ export async function loadVibeDisplayInfo(vctx, pairs) {
21
+ const out = new Map();
22
+ if (pairs.length === 0)
23
+ return out;
24
+ const settings = vctx.sql.tables.appSettings;
25
+ const usb = vctx.sql.tables.handleBinding;
26
+ const pairPred = or(...pairs.map((p) => and(eq(settings.ownerHandle, p.ownerHandle), eq(settings.appSlug, p.appSlug))));
27
+ const rows = await vctx.sql.db
28
+ .select({ ownerHandle: settings.ownerHandle, appSlug: settings.appSlug, settings: settings.settings })
29
+ .from(settings)
30
+ .innerJoin(usb, and(eq(usb.handle, settings.ownerHandle), eq(usb.userId, settings.userId)))
31
+ .where(pairPred);
32
+ for (const row of rows) {
33
+ const entries = row.settings ?? [];
34
+ const titleEntry = entries.find(isActiveTitle);
35
+ const iconEntry = entries.find(isActiveIcon);
36
+ const head = iconEntry?.versions.find((v) => v.cid === iconEntry.currentCid);
37
+ const icon = head && head.cid.length > 0 ? { cid: head.cid, mime: head.mime } : undefined;
38
+ out.set(titleIconKey(row.ownerHandle, row.appSlug), {
39
+ ...(titleEntry ? { title: titleEntry.title } : {}),
40
+ ...(icon ? { icon } : {}),
41
+ worldReadable: deriveIsWorldReadable(row.settings),
42
+ });
43
+ }
44
+ return out;
45
+ }
46
+ //# sourceMappingURL=home-feed-common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"home-feed-common.js","sourceRoot":"","sources":["../../jsr/public/home-feed-common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { MsgBase, ReqHomeLeaderboard, ResHomeLeaderboard, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ export declare const homeLeaderboardEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqHomeLeaderboard>, ResHomeLeaderboard | VibesDiyError>;
@@ -0,0 +1,64 @@
1
+ import { Result, Option, EventoResult } from "@adviser/cement";
2
+ import { reqHomeLeaderboard, resHomeLeaderboard, } from "@vibes.diy/api-types";
3
+ import { type } from "arktype";
4
+ import { sql } from "drizzle-orm";
5
+ import { and, asc, desc, eq } from "drizzle-orm/sql/expressions";
6
+ import { unwrapMsgBase } from "../unwrap-msg-base.js";
7
+ import { optAuth } from "../check-auth.js";
8
+ import { cachedReport } from "./report-cache.js";
9
+ import { clampHomeFeedLimit, HOME_FEED_SCAN_FACTOR, loadVibeDisplayInfo, titleIconKey } from "./home-feed-common.js";
10
+ async function computeHomeLeaderboard(vctx, limit) {
11
+ const docs = vctx.sql.tables.appDocuments;
12
+ const asb = vctx.sql.tables.appSlugBinding;
13
+ const writerCount = sql `cast(count(distinct ${docs.userId}) as int)`;
14
+ const candidates = await vctx.sql.db
15
+ .select({
16
+ ownerHandle: docs.ownerHandle,
17
+ appSlug: docs.appSlug,
18
+ writerCount,
19
+ })
20
+ .from(docs)
21
+ .innerJoin(asb, and(eq(asb.ownerHandle, docs.ownerHandle), eq(asb.appSlug, docs.appSlug), eq(asb.unpublishedAt, "")))
22
+ .groupBy(docs.ownerHandle, docs.appSlug)
23
+ .orderBy(desc(writerCount), asc(docs.ownerHandle), asc(docs.appSlug))
24
+ .limit(limit * HOME_FEED_SCAN_FACTOR);
25
+ const display = await loadVibeDisplayInfo(vctx, candidates);
26
+ const items = [];
27
+ for (const row of candidates) {
28
+ if (items.length >= limit)
29
+ break;
30
+ const info = display.get(titleIconKey(row.ownerHandle, row.appSlug));
31
+ if (info?.worldReadable !== true)
32
+ continue;
33
+ items.push({
34
+ ownerHandle: row.ownerHandle,
35
+ appSlug: row.appSlug,
36
+ writerCount: Number(row.writerCount),
37
+ ...(info.title ? { title: info.title } : {}),
38
+ ...(info.icon ? { icon: info.icon } : {}),
39
+ });
40
+ }
41
+ return {
42
+ type: "vibes.diy.res-home-leaderboard",
43
+ generatedAt: new Date().toISOString(),
44
+ items,
45
+ };
46
+ }
47
+ export const homeLeaderboardEvento = {
48
+ hash: "vibes.diy.req-home-leaderboard",
49
+ validate: unwrapMsgBase(async (msg) => {
50
+ const ret = reqHomeLeaderboard(msg.payload);
51
+ if (ret instanceof type.errors)
52
+ return Result.Ok(Option.None());
53
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
54
+ }),
55
+ handle: optAuth(async (ctx) => {
56
+ const req = ctx.validated.payload;
57
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
58
+ const limit = clampHomeFeedLimit(req.limit);
59
+ const res = await cachedReport(vctx, `home-leaderboard:${limit}`, resHomeLeaderboard, () => computeHomeLeaderboard(vctx, limit));
60
+ await ctx.send.send(ctx, res);
61
+ return Result.Ok(EventoResult.Continue);
62
+ }),
63
+ };
64
+ //# sourceMappingURL=home-leaderboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"home-leaderboard.js","sourceRoot":"","sources":["../../jsr/public/home-leaderboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,EAAsC,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAQL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAUrH,KAAK,UAAU,sBAAsB,CAAC,IAAoB,EAAE,KAAa;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;IAE3C,MAAM,WAAW,GAAG,GAAG,CAAQ,uBAAuB,IAAI,CAAC,MAAM,WAAW,CAAC;IAI7E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SACjC,MAAM,CAAC;QACN,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW;KACZ,CAAC;SACD,IAAI,CAAC,IAAI,CAAC;SAEV,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;SACpH,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;SACvC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpE,KAAK,CAAC,KAAK,GAAG,qBAAqB,CAAC,CAAC;IAKxC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5D,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,IAAI,IAAI,EAAE,aAAa,KAAK,IAAI;YAAE,SAAS;QAC3C,KAAK,CAAC,IAAI,CAAC;YACT,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAI9B;IACF,IAAI,EAAE,gCAAgC;IACtC,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,GAAY,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,MAAM,EAAE,OAAO,CACb,KAAK,EACH,GAA8H,EAC3F,EAAE;QACrC,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAiB,aAAa,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,oBAAoB,KAAK,EAAE,EAAE,kBAAkB,EAAE,GAAG,EAAE,CACzF,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CACpC,CAAC;QACF,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CACF;CACF,CAAC"}
@@ -40,6 +40,15 @@ export async function handleProdiaImageRequest({ scope, ctx, vctx, req, promptId
40
40
  return r;
41
41
  })
42
42
  .do();
43
+ if (vctx.billing.enforceEnabled) {
44
+ const rCheck = await vctx.billing.checkCredits({ userId: req._auth.verifiedAuth.claims.userId });
45
+ if (rCheck.isErr()) {
46
+ vctx.logger.Warn().Err(rCheck).Str("chatId", req.chatId).Msg("billing-check-failed-open");
47
+ }
48
+ else if (rCheck.Ok().allowed === false) {
49
+ return Result.Err("credits-exhausted: you have used your included AI credits — upgrade to continue");
50
+ }
51
+ }
43
52
  let prodiaRes;
44
53
  if (inputImageDataUrl) {
45
54
  const base64Data = inputImageDataUrl.split(",")[1];
@@ -1 +1 @@
1
- {"version":3,"file":"image-gen.js","sourceRoot":"","sources":["../../jsr/public/image-gen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image-gen.js","sourceRoot":"","sources":["../../jsr/public/image-gen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAWhE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,mBAAmB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC7C,KAAK,EACL,GAAG,EACH,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,OAAO,GAUR;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;IAGD,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpG,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,GAAG,CAAC,4BAA4B,aAAa,EAAE,CAAC,CAAC;IACjE,CAAC;IAGD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,aAAa,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,iBAAiB,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAG/C,MAAM,KAAK;SACR,UAAU,CAAC,KAAK,IAAI,EAAE;QACrB,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC;YAC/B,GAAG;YACH,IAAI;YACJ,GAAG;YACH,QAAQ;YACR,QAAQ;YACR,GAAG,EAAE;gBACH,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,EAAE,QAAQ;gBACb,OAAO,EAAE,GAAG,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB;SACF,CAAC,CAAC;QACH,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;SACD,EAAE,EAAE,CAAC;IAOR,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACjG,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC5F,CAAC;aAAM,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACzC,OAAO,MAAM,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IAGD,IAAI,SAAmB,CAAC;IACxB,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CACb,KAAK,EACL,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,UAAU,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE;YACzG,IAAI,EAAE,kBAAkB;SACzB,CAAC,EACF,UAAU,CACX,CAAC;QACF,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QACjF,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,qCAAqC,EAAE;YAC3E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,EAAE;gBACtC,MAAM,EAAE,WAAW;aACpB;YACD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,qCAAqC,EAAE;YAC3E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,EAAE;gBACtC,MAAM,EAAE,WAAW;gBACnB,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,aAAa,UAAU,aAAa;gBAC1C,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;aAC/B,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,GAAG,CAAC,0BAA0B,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;IACvG,CAAC;IAID,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE;QAC7C,KAAK,EAAE,SAAS,CAAC,IAAI;QACrB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;QAC5C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,GAAG,CAAC,iCAAiC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IAQD,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,EAAE,aAAa,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC/E,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAC7C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;QACxD,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;QAC5C,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ;QACR,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;QACvB,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,CAAC;QACnB,WAAW,EAAE,CAAC;QACd,GAAG,EAAE;YACH,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE;gBAIL,KAAK,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,cAAc,GAAG,GAAG,EAAc,CAAC;gBAClE,UAAU,EAAE,UAAU;aACvB;YACD,KAAK,EAAE,aAAa;SACM;QAC5B,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAClC,CAAC,CACH,CAAC;IACF,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAC1G,CAAC;IAKD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAC3C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;YAC5C,SAAS,EAAE,cAAc;YACzB,QAAQ;YACR,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAC5B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,IAAI,WAAW,CAAC;IAEpD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAGvB,MAAM,gBAAgB,CAAC;QACrB,GAAG;QACH,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,QAAQ,EAAE,QAAQ,EAAE;QACpB,GAAG,EAAE;YACH,IAAI,EAAE,aAAa;YACnB,OAAO;YACP,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,GAAG;SACf;KACF,CAAC,CAAC;IAKH,MAAM,gBAAgB,CAAC;QACrB,GAAG;QACH,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,QAAQ,EAAE,QAAQ,EAAE;QACpB,GAAG,EAAE;YACH,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG;YACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,QAAQ,EAAE,YAAY;YACtB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO;YACP,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,GAAG;YACd,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;SAChD;KACF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAG5D,MAAM,gBAAgB,CAAC;QACrB,GAAG;QACH,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,QAAQ,EAAE,QAAQ,EAAE;QACpB,GAAG,EAAE;YACH,IAAI,EAAE,WAAW;YACjB,OAAO;YACP,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,GAAG;YACd,KAAK,EAAE;gBACL,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE,UAAU;aAClB;YACD,KAAK,EAAE;gBACL,KAAK,EAAE,EAAE;gBACT,UAAU,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;aACxE;SACF;QACD,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAC;IAGH,MAAM,gBAAgB,GAAqB;QACzC,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE;YACL,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;SACxE;KACF,CAAC;IACF,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ;QACR,QAAQ,EAAE,QAAQ,EAAE;QACpB,MAAM,EAAE,CAAC,gBAAgB,CAAC;QAC1B,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE;KAC3B,CAAC,CACH,CAAC;IAGF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { MsgBase, ReqListNotifications, ResListNotifications, ReqMarkNotificationsRead, ResMarkNotificationsRead, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ export declare const listNotificationsEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqListNotifications>, ResListNotifications | VibesDiyError>;
4
+ export declare const markNotificationsReadEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqMarkNotificationsRead>, ResMarkNotificationsRead | VibesDiyError>;
@@ -0,0 +1,157 @@
1
+ import { Result, Option, EventoResult, exception2Result, JSONEnDecoderSingleton, } from "@adviser/cement";
2
+ import { reqListNotifications, reqMarkNotificationsRead, } from "@vibes.diy/api-types";
3
+ import { type } from "arktype";
4
+ import { base58btc } from "multiformats/bases/base58";
5
+ import { unwrapMsgBase } from "../unwrap-msg-base.js";
6
+ import { checkAuth } from "../check-auth.js";
7
+ import { eq, and, lt, or, desc, isNull, inArray, sql } from "drizzle-orm";
8
+ const DEFAULT_LIMIT = 30;
9
+ const MAX_LIMIT = 100;
10
+ const MIN_LIMIT = 1;
11
+ function clampLimit(raw) {
12
+ if (raw === undefined)
13
+ return DEFAULT_LIMIT;
14
+ if (!Number.isFinite(raw))
15
+ return DEFAULT_LIMIT;
16
+ const i = Math.floor(raw);
17
+ if (i < MIN_LIMIT)
18
+ return MIN_LIMIT;
19
+ if (i > MAX_LIMIT)
20
+ return MAX_LIMIT;
21
+ return i;
22
+ }
23
+ const cursorShape = type({ created: "string", id: "string" });
24
+ const jsonEnde = JSONEnDecoderSingleton();
25
+ function encodeCursor(c) {
26
+ return base58btc.encode(jsonEnde.uint8ify(c));
27
+ }
28
+ function decodeCursor(raw) {
29
+ const rBytes = exception2Result(() => base58btc.decode(raw));
30
+ if (rBytes.isErr())
31
+ return Result.Err(rBytes.Err());
32
+ const rParsed = jsonEnde.parse(rBytes.Ok());
33
+ if (rParsed.isErr())
34
+ return Result.Err(rParsed.Err());
35
+ const checked = cursorShape(rParsed.Ok());
36
+ if (checked instanceof type.errors) {
37
+ return Result.Err(`invalid cursor: ${checked.summary}`);
38
+ }
39
+ return Result.Ok(checked);
40
+ }
41
+ function toRow(r) {
42
+ return {
43
+ id: r.id,
44
+ userId: r.userId,
45
+ notificationType: r.notificationType,
46
+ ownerHandle: r.ownerHandle,
47
+ appSlug: r.appSlug,
48
+ body: r.body,
49
+ actorHandle: r.actorHandle,
50
+ actorUserId: r.actorUserId,
51
+ targetRef: r.targetRef ?? undefined,
52
+ dedupeKey: r.dedupeKey,
53
+ created: r.created,
54
+ readAt: r.readAt,
55
+ };
56
+ }
57
+ export const listNotificationsEvento = {
58
+ hash: "list-notifications",
59
+ validate: unwrapMsgBase(async (msg) => {
60
+ const ret = reqListNotifications(msg.payload);
61
+ if (ret instanceof type.errors) {
62
+ return Result.Ok(Option.None());
63
+ }
64
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
65
+ }),
66
+ handle: checkAuth(async (ctx) => {
67
+ const req = ctx.validated.payload;
68
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
69
+ const userId = req._auth.verifiedAuth.claims.userId;
70
+ const t = vctx.sql.tables.notifications;
71
+ const limit = clampLimit(req.limit);
72
+ const conditions = [eq(t.userId, userId)];
73
+ if (req.appSlug)
74
+ conditions.push(eq(t.appSlug, req.appSlug));
75
+ if (req.ownerHandle)
76
+ conditions.push(eq(t.ownerHandle, req.ownerHandle));
77
+ if (req.notificationType)
78
+ conditions.push(eq(t.notificationType, req.notificationType));
79
+ if (req.cursor) {
80
+ const rDecoded = decodeCursor(req.cursor);
81
+ if (rDecoded.isErr()) {
82
+ await ctx.send.send(ctx, {
83
+ type: "vibes.diy.res-error",
84
+ error: { message: `Invalid cursor: ${rDecoded.Err().message}`, code: "list-notifications-invalid-cursor" },
85
+ });
86
+ return Result.Ok(EventoResult.Continue);
87
+ }
88
+ const c = rDecoded.Ok();
89
+ const tuplePred = or(lt(t.created, c.created), and(eq(t.created, c.created), lt(t.id, c.id)));
90
+ if (tuplePred)
91
+ conditions.push(tuplePred);
92
+ }
93
+ const rows = await vctx.sql.db
94
+ .select()
95
+ .from(t)
96
+ .where(and(...conditions))
97
+ .orderBy(desc(t.created), desc(t.id))
98
+ .limit(limit + 1);
99
+ const hasMore = rows.length > limit;
100
+ const slice = hasMore ? rows.slice(0, limit) : rows;
101
+ const items = slice.map(toRow);
102
+ const lastRow = hasMore ? slice[slice.length - 1] : undefined;
103
+ const nextCursor = lastRow ? encodeCursor({ created: lastRow.created, id: lastRow.id }) : undefined;
104
+ const unreadRow = await vctx.sql.db
105
+ .select({ count: sql `count(*)` })
106
+ .from(t)
107
+ .where(and(eq(t.userId, userId), isNull(t.readAt)))
108
+ .then((r) => r[0]);
109
+ const unreadCount = Number(unreadRow?.count ?? 0);
110
+ await ctx.send.send(ctx, {
111
+ type: "vibes.diy.res-list-notifications",
112
+ items,
113
+ ...(nextCursor ? { nextCursor } : {}),
114
+ unreadCount,
115
+ });
116
+ return Result.Ok(EventoResult.Continue);
117
+ }),
118
+ };
119
+ export const markNotificationsReadEvento = {
120
+ hash: "mark-notifications-read",
121
+ validate: unwrapMsgBase(async (msg) => {
122
+ const ret = reqMarkNotificationsRead(msg.payload);
123
+ if (ret instanceof type.errors) {
124
+ return Result.Ok(Option.None());
125
+ }
126
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
127
+ }),
128
+ handle: checkAuth(async (ctx) => {
129
+ const req = ctx.validated.payload;
130
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
131
+ const userId = req._auth.verifiedAuth.claims.userId;
132
+ const t = vctx.sql.tables.notifications;
133
+ const now = new Date().toISOString();
134
+ const conditions = [eq(t.userId, userId), isNull(t.readAt)];
135
+ if (req.ids !== undefined) {
136
+ if (req.ids.length === 0) {
137
+ await ctx.send.send(ctx, {
138
+ type: "vibes.diy.res-mark-notifications-read",
139
+ ok: 0,
140
+ });
141
+ return Result.Ok(EventoResult.Continue);
142
+ }
143
+ conditions.push(inArray(t.id, req.ids));
144
+ }
145
+ const updated = await vctx.sql.db
146
+ .update(t)
147
+ .set({ readAt: now })
148
+ .where(and(...conditions))
149
+ .returning({ id: t.id });
150
+ await ctx.send.send(ctx, {
151
+ type: "vibes.diy.res-mark-notifications-read",
152
+ ok: updated.length,
153
+ });
154
+ return Result.Ok(EventoResult.Continue);
155
+ }),
156
+ };
157
+ //# sourceMappingURL=list-notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-notifications.js","sourceRoot":"","sources":["../../jsr/public/list-notifications.ts"],"names":[],"mappings":"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"}
@@ -9,17 +9,19 @@ export interface AutumnUsageRow {
9
9
  export interface ReconciliationRow {
10
10
  readonly userId: string;
11
11
  readonly dbCents: number;
12
- readonly autumnCents: number;
13
- readonly driftCents: number;
12
+ readonly expectedCredits: number;
13
+ readonly autumnCredits: number;
14
+ readonly driftCredits: number;
14
15
  }
15
16
  export interface ReconciliationReport {
16
17
  readonly rows: readonly ReconciliationRow[];
17
18
  readonly totalDbCents: number;
18
- readonly totalAutumnCents: number;
19
- readonly totalDriftCents: number;
19
+ readonly totalExpectedCredits: number;
20
+ readonly totalAutumnCredits: number;
21
+ readonly totalDriftCredits: number;
20
22
  readonly driftPct: number;
21
23
  }
22
24
  export declare function mergeReconciliation(db: readonly DbCostRow[], autumn: readonly AutumnUsageRow[]): ReconciliationReport;
23
- export declare function usersOverThreshold(report: ReconciliationReport, cents: number): number;
25
+ export declare function usersOverThreshold(report: ReconciliationReport, credits: number): number;
24
26
  export declare function usagePercentile(report: ReconciliationReport, p: number): number;
25
27
  export declare function renderReconciliationMarkdown(report: ReconciliationReport, thresholds: readonly number[]): string;
@@ -1,23 +1,33 @@
1
+ const DISPLAY_CREDITS_PER_CENT = 2;
1
2
  export function mergeReconciliation(db, autumn) {
2
3
  const ids = new Set([...db.map((r) => r.userId), ...autumn.map((r) => r.userId)]);
3
4
  const dbBy = new Map(db.map((r) => [r.userId, r.cents]));
4
5
  const autumnBy = new Map(autumn.map((r) => [r.userId, r.usage]));
5
6
  const rows = [...ids].sort().map((userId) => {
6
7
  const dbCents = dbBy.get(userId) ?? 0;
7
- const autumnCents = autumnBy.get(userId) ?? 0;
8
- return { userId, dbCents, autumnCents, driftCents: dbCents - autumnCents };
8
+ const expectedCredits = dbCents * DISPLAY_CREDITS_PER_CENT;
9
+ const autumnCredits = autumnBy.get(userId) ?? 0;
10
+ return { userId, dbCents, expectedCredits, autumnCredits, driftCredits: expectedCredits - autumnCredits };
9
11
  });
10
12
  const totalDbCents = rows.reduce((s, r) => s + r.dbCents, 0);
11
- const totalAutumnCents = rows.reduce((s, r) => s + r.autumnCents, 0);
12
- const totalDriftCents = totalDbCents - totalAutumnCents;
13
- const driftPct = totalDbCents === 0 ? 0 : (Math.abs(totalDriftCents) / totalDbCents) * 100;
14
- return { rows, totalDbCents, totalAutumnCents, totalDriftCents, driftPct };
13
+ const totalExpectedCredits = rows.reduce((s, r) => s + r.expectedCredits, 0);
14
+ const totalAutumnCredits = rows.reduce((s, r) => s + r.autumnCredits, 0);
15
+ const totalDriftCredits = totalExpectedCredits - totalAutumnCredits;
16
+ const driftPct = totalExpectedCredits === 0 ? 0 : (Math.abs(totalDriftCredits) / totalExpectedCredits) * 100;
17
+ return {
18
+ rows,
19
+ totalDbCents,
20
+ totalExpectedCredits,
21
+ totalAutumnCredits,
22
+ totalDriftCredits,
23
+ driftPct,
24
+ };
15
25
  }
16
- export function usersOverThreshold(report, cents) {
17
- return report.rows.filter((r) => r.autumnCents > cents).length;
26
+ export function usersOverThreshold(report, credits) {
27
+ return report.rows.filter((r) => r.autumnCredits > credits).length;
18
28
  }
19
29
  export function usagePercentile(report, p) {
20
- const usages = report.rows.map((r) => r.autumnCents).sort((a, b) => a - b);
30
+ const usages = report.rows.map((r) => r.autumnCredits).sort((a, b) => a - b);
21
31
  if (usages.length === 0)
22
32
  return 0;
23
33
  const idx = Math.min(usages.length - 1, Math.max(0, Math.ceil((p / 100) * usages.length) - 1));
@@ -27,20 +37,25 @@ export function renderReconciliationMarkdown(report, thresholds) {
27
37
  const lines = [];
28
38
  lines.push("## Shadow-ledger reconciliation");
29
39
  lines.push("");
30
- lines.push(`Total DB cents: ${report.totalDbCents}`);
31
- lines.push(`Total Autumn cents: ${report.totalAutumnCents}`);
32
- lines.push(`Total drift cents: ${report.totalDriftCents} (${report.driftPct.toFixed(2)}%)`);
40
+ lines.push(`Total DB cents (raw): ${report.totalDbCents}`);
41
+ lines.push(`Total expected credits (2x): ${report.totalExpectedCredits}`);
42
+ lines.push(`Total Autumn credits: ${report.totalAutumnCredits}`);
43
+ lines.push(`Total drift credits: ${report.totalDriftCredits} (${report.driftPct.toFixed(2)}%)`);
44
+ lines.push("");
45
+ lines.push("Carve-outs (see header): wall-crossing turns under-count in Autumn by the");
46
+ lines.push("clamped overshoot (verify via events.list values); plan changes reset the");
47
+ lines.push("aggregate — exclude users who changed plan inside the window.");
33
48
  lines.push("");
34
49
  for (const t of thresholds) {
35
- lines.push(`Users over ${t} cents: ${usersOverThreshold(report, t)}`);
50
+ lines.push(`Users over ${t} credits: ${usersOverThreshold(report, t)}`);
36
51
  }
37
52
  lines.push("");
38
- lines.push(`p50 / p90 / p99 usage cents: ${usagePercentile(report, 50)} / ${usagePercentile(report, 90)} / ${usagePercentile(report, 99)}`);
53
+ lines.push(`p50 / p90 / p99 usage credits: ${usagePercentile(report, 50)} / ${usagePercentile(report, 90)} / ${usagePercentile(report, 99)}`);
39
54
  lines.push("");
40
- lines.push("| userId | dbCents | autumnCents | driftCents |");
41
- lines.push("| --- | --- | --- | --- |");
55
+ lines.push("| userId | dbCents | expectedCredits | autumnCredits | driftCredits |");
56
+ lines.push("| --- | --- | --- | --- | --- |");
42
57
  for (const r of report.rows) {
43
- lines.push(`| ${r.userId} | ${r.dbCents} | ${r.autumnCents} | ${r.driftCents} |`);
58
+ lines.push(`| ${r.userId} | ${r.dbCents} | ${r.expectedCredits} | ${r.autumnCredits} | ${r.driftCredits} |`);
44
59
  }
45
60
  return lines.join("\n");
46
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"billing-reconcile-util.js","sourceRoot":"","sources":["../../jsr/usage-report/billing-reconcile-util.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,mBAAmB,CAAC,EAAwB,EAAE,MAAiC;IAC7F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,GAAwB,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,GAAG,WAAW,EAAE,CAAC;IAC7E,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,eAAe,GAAG,YAAY,GAAG,gBAAgB,CAAC;IACxD,MAAM,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC;IAC3F,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAA4B,EAAE,KAAa;IAC5E,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAA4B,EAAE,CAAS;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAA4B,EAAE,UAA6B;IACtG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,eAAe,KAAK,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,gCAAgC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAChI,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,WAAW,MAAM,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"billing-reconcile-util.js","sourceRoot":"","sources":["../../jsr/usage-report/billing-reconcile-util.ts"],"names":[],"mappings":"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"}