@vibes.diy/api-svc 9.2.1 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/evento-handler-manifest.js +2 -0
  2. package/evento-handler-manifest.js.map +1 -1
  3. package/intern/delete-access-gate.js +7 -7
  4. package/intern/delete-access-gate.js.map +1 -1
  5. package/intern/ensure-app-metadata.js +8 -0
  6. package/intern/ensure-app-metadata.js.map +1 -1
  7. package/intern/ensure-chat-id.js +14 -3
  8. package/intern/ensure-chat-id.js.map +1 -1
  9. package/intern/first-message-embedding.d.ts +1 -0
  10. package/intern/first-message-embedding.js +6 -3
  11. package/intern/first-message-embedding.js.map +1 -1
  12. package/intern/pre-allocate.d.ts +13 -1
  13. package/intern/pre-allocate.js +27 -9
  14. package/intern/pre-allocate.js.map +1 -1
  15. package/intern/prompt-assembly.d.ts +2 -0
  16. package/intern/prompt-assembly.js +17 -2
  17. package/intern/prompt-assembly.js.map +1 -1
  18. package/intern/render-vibe.js +6 -0
  19. package/intern/render-vibe.js.map +1 -1
  20. package/intern/research-vector-arm.d.ts +36 -0
  21. package/intern/research-vector-arm.js +102 -0
  22. package/intern/research-vector-arm.js.map +1 -0
  23. package/package.json +11 -11
  24. package/public/app-documents-head-query.d.ts +11 -0
  25. package/public/app-documents-head-query.js +14 -0
  26. package/public/app-documents-head-query.js.map +1 -0
  27. package/public/app-documents-put-persist.js +2 -6
  28. package/public/app-documents-put-persist.js.map +1 -1
  29. package/public/app-documents-read-eventos.js +12 -55
  30. package/public/app-documents-read-eventos.js.map +1 -1
  31. package/public/app-documents-write-eventos.js +16 -36
  32. package/public/app-documents-write-eventos.js.map +1 -1
  33. package/public/app-seq-allocation.d.ts +12 -0
  34. package/public/app-seq-allocation.js +47 -5
  35. package/public/app-seq-allocation.js.map +1 -1
  36. package/public/authorize-slug-owner.d.ts +16 -0
  37. package/public/authorize-slug-owner.js +26 -0
  38. package/public/authorize-slug-owner.js.map +1 -0
  39. package/public/ensure-app-slug-item.d.ts +4 -0
  40. package/public/ensure-app-slug-item.js +31 -0
  41. package/public/ensure-app-slug-item.js.map +1 -1
  42. package/public/get-app-by-fsid.js +10 -14
  43. package/public/get-app-by-fsid.js.map +1 -1
  44. package/public/home-feed-common.d.ts +6 -2
  45. package/public/home-feed-common.js +22 -0
  46. package/public/home-feed-common.js.map +1 -1
  47. package/public/list-versions.js +4 -2
  48. package/public/list-versions.js.map +1 -1
  49. package/public/llm-dispatch.js +39 -39
  50. package/public/llm-dispatch.js.map +1 -1
  51. package/public/prompt-chat-section.d.ts +2 -2
  52. package/public/prompt-chat-section.js +15 -8
  53. package/public/prompt-chat-section.js.map +1 -1
  54. package/public/publish-app.d.ts +16 -0
  55. package/public/publish-app.js +95 -56
  56. package/public/publish-app.js.map +1 -1
  57. package/public/related-vibes.js +2 -24
  58. package/public/related-vibes.js.map +1 -1
  59. package/public/seq-allocation.d.ts +11 -0
  60. package/public/seq-allocation.js +38 -44
  61. package/public/seq-allocation.js.map +1 -1
  62. package/public/set-mode-fsid.js +2 -0
  63. package/public/set-mode-fsid.js.map +1 -1
  64. package/public/set-unpublish.js +12 -29
  65. package/public/set-unpublish.js.map +1 -1
  66. package/public/set-version-lock.d.ts +3 -0
  67. package/public/set-version-lock.js +108 -0
  68. package/public/set-version-lock.js.map +1 -0
  69. package/public/sync-eventos.js +60 -91
  70. package/public/sync-eventos.js.map +1 -1
  71. package/public/sync-feed.js +11 -29
  72. package/public/sync-feed.js.map +1 -1
  73. package/public/sync-pull-core.js +3 -2
  74. package/public/sync-pull-core.js.map +1 -1
  75. package/public/unpublished-binding.d.ts +12 -0
  76. package/public/unpublished-binding.js +10 -2
  77. package/public/unpublished-binding.js.map +1 -1
  78. package/public/viewer-channel-resolver.d.ts +19 -0
  79. package/public/viewer-channel-resolver.js +54 -0
  80. package/public/viewer-channel-resolver.js.map +1 -0
  81. package/public/write-front-door.d.ts +24 -0
  82. package/public/write-front-door.js +27 -0
  83. package/public/write-front-door.js.map +1 -0
@@ -69,12 +69,31 @@ function buildAtomicInsert(p) {
69
69
  RETURNING "seq"
70
70
  `;
71
71
  }
72
- function runReturning(db, flavour, stmt) {
72
+ export function runReturning(db, flavour, stmt) {
73
73
  if (flavour === "pg") {
74
74
  return db.execute(stmt);
75
75
  }
76
76
  return db.run(stmt);
77
77
  }
78
+ export async function runLockedAllocation(args) {
79
+ if (args.flavour === "pg") {
80
+ return asTxRunner(args.db).transaction(async (tx) => {
81
+ await tx.execute(sql `SELECT pg_advisory_xact_lock(hashtextextended(${args.lockKey}, 0))`);
82
+ return args.attempt(tx);
83
+ });
84
+ }
85
+ for (let i = 0; i < args.maxAttempts; i++) {
86
+ try {
87
+ return args.needsTxnOnSqlite ? await asTxRunner(args.db).transaction((tx) => args.attempt(tx)) : await args.attempt(args.db);
88
+ }
89
+ catch (err) {
90
+ if (!isRetryableConflict(err))
91
+ throw err;
92
+ await new Promise((r) => setTimeout(r, Math.floor(Math.random() * (8 << i))));
93
+ }
94
+ }
95
+ return args.onSqliteExhausted();
96
+ }
78
97
  async function headSeqWith(exec, p) {
79
98
  const r = await exec
80
99
  .select({ maxSeq: sql `COALESCE(MAX(${p.table.seq}),0)` })
@@ -97,51 +116,26 @@ async function assertHeadSeq(exec, p) {
97
116
  function asTxRunner(db) {
98
117
  return db;
99
118
  }
100
- async function allocateSqlite(p) {
101
- const attempts = p.maxAttempts ?? 3;
102
- const needsTxn = p.skipIf !== undefined || p.ifHeadSeq !== undefined;
103
- for (let i = 0; i < attempts; i++) {
104
- try {
105
- if (needsTxn) {
106
- const skipIf = p.skipIf;
107
- return await asTxRunner(p.db).transaction(async (tx) => {
108
- await assertHeadSeq(tx, p);
109
- if (skipIf && (await skipIf(tx)))
110
- return { seq: await headSeqWith(tx, p), inserted: false };
111
- const seq = extractReturnedSeq(await runReturning(tx, p.flavour, buildAtomicInsert(p)));
112
- if (p.sidecar)
113
- await p.sidecar(seq, tx);
114
- return { seq, inserted: true };
115
- });
116
- }
117
- const seq = extractReturnedSeq(await runReturning(p.db, p.flavour, buildAtomicInsert(p)));
118
- if (p.sidecar)
119
- await p.sidecar(seq, p.db);
120
- return { seq, inserted: true };
121
- }
122
- catch (err) {
123
- if (!isRetryableConflict(err))
124
- throw err;
125
- await new Promise((r) => setTimeout(r, Math.floor(Math.random() * (8 << i))));
126
- }
127
- }
128
- throw new SeqConflictError(await currentHeadSeq(p));
129
- }
130
- async function allocatePg(p) {
131
- const key = docLockKey(p.row.ownerHandle, p.row.appSlug, p.row.dbName, p.row.docId);
132
- return asTxRunner(p.db).transaction(async (tx) => {
133
- await tx.execute(sql `SELECT pg_advisory_xact_lock(hashtextextended(${key}, 0))`);
134
- await assertHeadSeq(tx, p);
135
- if (p.skipIf && (await p.skipIf(tx))) {
136
- return { seq: await headSeqWith(tx, p), inserted: false };
137
- }
138
- const seq = extractReturnedSeq(await runReturning(tx, "pg", buildAtomicInsert(p)));
119
+ export async function allocateAndInsertRevision(p) {
120
+ const attempt = async (exec) => {
121
+ await assertHeadSeq(exec, p);
122
+ if (p.skipIf && (await p.skipIf(exec)))
123
+ return { seq: await headSeqWith(exec, p), inserted: false };
124
+ const seq = extractReturnedSeq(await runReturning(exec, p.flavour, buildAtomicInsert(p)));
139
125
  if (p.sidecar)
140
- await p.sidecar(seq, tx);
126
+ await p.sidecar(seq, exec);
141
127
  return { seq, inserted: true };
128
+ };
129
+ return runLockedAllocation({
130
+ db: p.db,
131
+ flavour: p.flavour,
132
+ lockKey: docLockKey(p.row.ownerHandle, p.row.appSlug, p.row.dbName, p.row.docId),
133
+ needsTxnOnSqlite: p.skipIf !== undefined || p.ifHeadSeq !== undefined,
134
+ maxAttempts: p.maxAttempts ?? 3,
135
+ attempt,
136
+ onSqliteExhausted: async () => {
137
+ throw new SeqConflictError(await currentHeadSeq(p));
138
+ },
142
139
  });
143
140
  }
144
- export async function allocateAndInsertRevision(p) {
145
- return p.flavour === "pg" ? allocatePg(p) : allocateSqlite(p);
146
- }
147
141
  //# sourceMappingURL=seq-allocation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"seq-allocation.js","sourceRoot":"","sources":["../../jsr/public/seq-allocation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seq-allocation.js","sourceRoot":"","sources":["../../jsr/public/seq-allocation.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { unwrapMsgBase } from "../unwrap-msg-base.js";
5
5
  import { checkAuth } from "../check-auth.js";
6
6
  import { calcEntryPointUrl } from "../entry-point-utils.js";
7
7
  import { eq, and } from "drizzle-orm/sql/expressions";
8
+ import { clearVersionLockOnExplicitRelease } from "./ensure-app-slug-item.js";
8
9
  export async function setModeFsId(vctx, req, userId) {
9
10
  if (req.mode === "production") {
10
11
  const rReset = await exception2Result(() => vctx.sql.db
@@ -23,6 +24,7 @@ export async function setModeFsId(vctx, req, userId) {
23
24
  return Result.Err(rUpdate);
24
25
  }
25
26
  if (req.mode === "production") {
27
+ await clearVersionLockOnExplicitRelease(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug });
26
28
  const entryPointUrl = calcEntryPointUrl({
27
29
  ...vctx.params.vibes.svc,
28
30
  bindings: { ownerHandle: req.ownerHandle, appSlug: req.appSlug, fsId: req.fsId },
@@ -1 +1 @@
1
- {"version":3,"file":"set-mode-fsid.js","sourceRoot":"","sources":["../../jsr/public/set-mode-fsid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"set-mode-fsid.js","sourceRoot":"","sources":["../../jsr/public/set-mode-fsid.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@ import { unwrapMsgBase } from "../unwrap-msg-base.js";
6
6
  import { checkAuth } from "../check-auth.js";
7
7
  import { purgeRootHtmlCacheSameColo } from "../intern/swr-purge.js";
8
8
  import { resolveDeveloperAccess } from "./developer-grants.js";
9
- import { logAdminWriteOverride, platformAdminActingOn } from "./platform-admin.js";
9
+ import { logAdminWriteOverride } from "./platform-admin.js";
10
+ import { authorizeSlugOwner } from "./authorize-slug-owner.js";
10
11
  export const setUnpublishEvento = {
11
12
  hash: "set-unpublish",
12
13
  validate: unwrapMsgBase(async (msg) => {
@@ -20,15 +21,7 @@ export const setUnpublishEvento = {
20
21
  const req = ctx.validated.payload;
21
22
  const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
22
23
  const userId = req._auth.verifiedAuth.claims.userId;
23
- const usb = vctx.sql.tables.handleBinding;
24
- const asb = vctx.sql.tables.appSlugBinding;
25
- const appRow = await vctx.sql.db
26
- .select({ ownerHandle: asb.ownerHandle, appSlug: asb.appSlug, unpublishedAt: asb.unpublishedAt })
27
- .from(asb)
28
- .where(and(eq(asb.ownerHandle, req.ownerHandle), eq(asb.appSlug, req.appSlug)))
29
- .limit(1)
30
- .then((r) => r[0]);
31
- if (appRow === undefined) {
24
+ const notAuthorized = async () => {
32
25
  await ctx.send.send(ctx, {
33
26
  type: "vibes.diy.res-error",
34
27
  error: {
@@ -37,14 +30,12 @@ export const setUnpublishEvento = {
37
30
  },
38
31
  });
39
32
  return Result.Ok(EventoResult.Continue);
33
+ };
34
+ const auth = await authorizeSlugOwner(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug, userId });
35
+ if (auth === undefined) {
36
+ return notAuthorized();
40
37
  }
41
- const ownerRow = await vctx.sql.db
42
- .select({ userId: usb.userId })
43
- .from(usb)
44
- .where(and(eq(usb.handle, req.ownerHandle), eq(usb.userId, userId)))
45
- .limit(1)
46
- .then((r) => r[0]);
47
- const isOwner = ownerRow !== undefined;
38
+ const isOwner = auth.isOwner;
48
39
  const devAuthorized = isOwner === false &&
49
40
  req.unpublish === false &&
50
41
  (await resolveDeveloperAccess(vctx, {
@@ -52,9 +43,7 @@ export const setUnpublishEvento = {
52
43
  appSlug: req.appSlug,
53
44
  callerUserId: userId,
54
45
  })) !== null;
55
- const isAdmin = isOwner === false &&
56
- devAuthorized === false &&
57
- platformAdminActingOn(vctx, { callerUserId: userId, requestedOwnerHandle: req.ownerHandle });
46
+ const isAdmin = auth.isAdmin && devAuthorized === false;
58
47
  const authorized = isOwner || devAuthorized || isAdmin;
59
48
  if (isAdmin) {
60
49
  logAdminWriteOverride(vctx, {
@@ -65,16 +54,10 @@ export const setUnpublishEvento = {
65
54
  });
66
55
  }
67
56
  if (authorized === false) {
68
- await ctx.send.send(ctx, {
69
- type: "vibes.diy.res-error",
70
- error: {
71
- message: `not found or not authorized to change the publish state of ${req.ownerHandle}/${req.appSlug}`,
72
- code: "set-unpublish-not-found",
73
- },
74
- });
75
- return Result.Ok(EventoResult.Continue);
57
+ return notAuthorized();
76
58
  }
77
- const previousUnpublishedAt = appRow.unpublishedAt;
59
+ const asb = vctx.sql.tables.appSlugBinding;
60
+ const previousUnpublishedAt = auth.appRow.unpublishedAt;
78
61
  const unpublishedAt = req.unpublish ? new Date().toISOString() : "";
79
62
  await vctx.sql.db
80
63
  .update(asb)
@@ -1 +1 @@
1
- {"version":3,"file":"set-unpublish.js","sourceRoot":"","sources":["../../jsr/public/set-unpublish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"set-unpublish.js","sourceRoot":"","sources":["../../jsr/public/set-unpublish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { MsgBase, ReqSetVersionLock, ResSetVersionLock, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ export declare const setVersionLockEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqSetVersionLock>, ResSetVersionLock | VibesDiyError>;
@@ -0,0 +1,108 @@
1
+ import { Result, Option, EventoResult, exception2Result } from "@adviser/cement";
2
+ import { reqSetVersionLock, } from "@vibes.diy/api-types";
3
+ import { type } from "arktype";
4
+ import { eq, and } from "drizzle-orm/sql/expressions";
5
+ import { unwrapMsgBase } from "../unwrap-msg-base.js";
6
+ import { checkAuth } from "../check-auth.js";
7
+ import { mintProductionRelease } from "./app-seq-allocation.js";
8
+ import { applyReleaseSideEffects, applyPrivateFirstEnableRequestDefault } from "./publish-app.js";
9
+ import { logAdminWriteOverride } from "./platform-admin.js";
10
+ import { authorizeSlugOwner } from "./authorize-slug-owner.js";
11
+ export const setVersionLockEvento = {
12
+ hash: "set-version-lock",
13
+ validate: unwrapMsgBase(async (msg) => {
14
+ const ret = reqSetVersionLock(msg.payload);
15
+ if (ret instanceof type.errors) {
16
+ return Result.Ok(Option.None());
17
+ }
18
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
19
+ }),
20
+ handle: checkAuth(async (ctx) => {
21
+ const req = ctx.validated.payload;
22
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
23
+ const userId = req._auth.verifiedAuth.claims.userId;
24
+ const isUnlock = req.fsId === undefined || req.fsId === "";
25
+ const notFound = async () => {
26
+ await ctx.send.send(ctx, {
27
+ type: "vibes.diy.res-error",
28
+ error: {
29
+ message: `not found or not authorized to change the version lock of ${req.ownerHandle}/${req.appSlug}`,
30
+ code: "set-version-lock-not-found",
31
+ },
32
+ });
33
+ return Result.Ok(EventoResult.Continue);
34
+ };
35
+ const auth = await authorizeSlugOwner(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug, userId });
36
+ if (auth === undefined)
37
+ return notFound();
38
+ if (auth.isAdmin) {
39
+ logAdminWriteOverride(vctx, {
40
+ op: isUnlock ? "version-unlock" : "version-lock",
41
+ actingUserId: userId,
42
+ ownerHandle: req.ownerHandle,
43
+ appSlug: req.appSlug,
44
+ });
45
+ }
46
+ if (auth.isOwner === false && auth.isAdmin === false)
47
+ return notFound();
48
+ const previousLockedFsId = auth.appRow.lockedFsId;
49
+ const asb = vctx.sql.tables.appSlugBinding;
50
+ let newLockedFsId = "";
51
+ if (isUnlock) {
52
+ await vctx.sql.db
53
+ .update(asb)
54
+ .set({ lockedFsId: "" })
55
+ .where(and(eq(asb.ownerHandle, req.ownerHandle), eq(asb.appSlug, req.appSlug)));
56
+ }
57
+ else {
58
+ const lockedFsId = req.fsId;
59
+ const apps = vctx.sql.tables.apps;
60
+ const fsRow = await vctx.sql.db
61
+ .select({ userId: apps.userId, fileSystem: apps.fileSystem })
62
+ .from(apps)
63
+ .where(and(eq(apps.fsId, lockedFsId), eq(apps.appSlug, req.appSlug), eq(apps.ownerHandle, req.ownerHandle)))
64
+ .limit(1)
65
+ .then((r) => r[0]);
66
+ if (fsRow === undefined) {
67
+ return notFound();
68
+ }
69
+ const rMint = await exception2Result(() => mintProductionRelease({
70
+ db: vctx.sql.db,
71
+ flavour: vctx.sql.flavour,
72
+ appSlug: req.appSlug,
73
+ userId: fsRow.userId,
74
+ ownerHandle: req.ownerHandle,
75
+ created: new Date().toISOString(),
76
+ fsId: lockedFsId,
77
+ lockPolicy: { kind: "set-lock", setLockTo: lockedFsId },
78
+ }));
79
+ if (rMint.isErr()) {
80
+ return Result.Err(`set-version-lock: failed to mint locked release: ${rMint.Err().message}`);
81
+ }
82
+ const mint = rMint.Ok();
83
+ newLockedFsId = lockedFsId;
84
+ if (mint.released) {
85
+ await applyPrivateFirstEnableRequestDefault(vctx, {
86
+ ownerHandle: req.ownerHandle,
87
+ appSlug: req.appSlug,
88
+ ownerUserId: fsRow.userId,
89
+ });
90
+ }
91
+ await applyReleaseSideEffects(vctx, {
92
+ ownerHandle: req.ownerHandle,
93
+ appSlug: req.appSlug,
94
+ target: { fsId: lockedFsId, fileSystem: fsRow.fileSystem },
95
+ mint,
96
+ });
97
+ }
98
+ await ctx.send.send(ctx, {
99
+ type: "vibes.diy.res-set-version-lock",
100
+ appSlug: req.appSlug,
101
+ ownerHandle: req.ownerHandle,
102
+ lockedFsId: newLockedFsId,
103
+ previousLockedFsId,
104
+ });
105
+ return Result.Ok(EventoResult.Continue);
106
+ }),
107
+ };
108
+ //# sourceMappingURL=set-version-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-version-lock.js","sourceRoot":"","sources":["../../jsr/public/set-version-lock.ts"],"names":[],"mappings":"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"}