@vibes.diy/api-svc 8.1.0 → 8.1.2

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 (109) hide show
  1. package/cf-serve.js +2 -0
  2. package/cf-serve.js.map +1 -1
  3. package/create-handler.d.ts +5 -0
  4. package/create-handler.js +4 -0
  5. package/create-handler.js.map +1 -1
  6. package/index.d.ts +4 -0
  7. package/index.js +4 -0
  8. package/index.js.map +1 -1
  9. package/intern/backend-db-callback.js +10 -3
  10. package/intern/backend-db-callback.js.map +1 -1
  11. package/intern/backend-egress.d.ts +12 -0
  12. package/intern/backend-egress.js +122 -31
  13. package/intern/backend-egress.js.map +1 -1
  14. package/intern/delete-access-gate.js +6 -1
  15. package/intern/delete-access-gate.js.map +1 -1
  16. package/intern/distill-url.d.ts +14 -0
  17. package/intern/distill-url.js +270 -0
  18. package/intern/distill-url.js.map +1 -0
  19. package/intern/ensure-push-seeded-chat.js +1 -0
  20. package/intern/ensure-push-seeded-chat.js.map +1 -1
  21. package/intern/fetch-url-tool.d.ts +38 -0
  22. package/intern/fetch-url-tool.js +299 -0
  23. package/intern/fetch-url-tool.js.map +1 -0
  24. package/intern/first-message-embedding.js +5 -4
  25. package/intern/first-message-embedding.js.map +1 -1
  26. package/intern/llm-tool-loop.d.ts +66 -0
  27. package/intern/llm-tool-loop.js +355 -0
  28. package/intern/llm-tool-loop.js.map +1 -0
  29. package/intern/load-owner-egress-status.d.ts +1 -1
  30. package/intern/load-owner-egress-status.js.map +1 -1
  31. package/intern/load-research-context.d.ts +17 -0
  32. package/intern/load-research-context.js +160 -0
  33. package/intern/load-research-context.js.map +1 -0
  34. package/intern/persist-url-research.d.ts +37 -0
  35. package/intern/persist-url-research.js +249 -0
  36. package/intern/persist-url-research.js.map +1 -0
  37. package/intern/prompt-assembly.d.ts +3 -0
  38. package/intern/prompt-assembly.js +33 -7
  39. package/intern/prompt-assembly.js.map +1 -1
  40. package/intern/provider-sse.d.ts +3 -0
  41. package/intern/provider-sse.js +12 -0
  42. package/intern/provider-sse.js.map +1 -0
  43. package/intern/read-anonymous-seed-docs.js +17 -10
  44. package/intern/read-anonymous-seed-docs.js.map +1 -1
  45. package/intern/recovery.js +5 -1
  46. package/intern/recovery.js.map +1 -1
  47. package/intern/resend-prev-msg.js +5 -4
  48. package/intern/resend-prev-msg.js.map +1 -1
  49. package/intern/turn-url-fetch-budget.d.ts +16 -0
  50. package/intern/turn-url-fetch-budget.js +33 -0
  51. package/intern/turn-url-fetch-budget.js.map +1 -0
  52. package/intern/url-activation.d.ts +8 -0
  53. package/intern/url-activation.js +79 -0
  54. package/intern/url-activation.js.map +1 -0
  55. package/intern/url-research-queue.d.ts +7 -0
  56. package/intern/url-research-queue.js +31 -0
  57. package/intern/url-research-queue.js.map +1 -0
  58. package/intern/url-research.d.ts +112 -0
  59. package/intern/url-research.js +631 -0
  60. package/intern/url-research.js.map +1 -0
  61. package/intern/version-timeline.d.ts +1 -0
  62. package/intern/version-timeline.js +15 -4
  63. package/intern/version-timeline.js.map +1 -1
  64. package/package.json +13 -11
  65. package/public/access-output-decoder.d.ts +12 -0
  66. package/public/access-output-decoder.js +130 -0
  67. package/public/access-output-decoder.js.map +1 -0
  68. package/public/app-documents-read-eventos.js +87 -40
  69. package/public/app-documents-read-eventos.js.map +1 -1
  70. package/public/app-documents-shared.d.ts +11 -4
  71. package/public/app-documents-shared.js +1 -1
  72. package/public/app-documents-shared.js.map +1 -1
  73. package/public/app-documents-write-eventos.js +6 -1
  74. package/public/app-documents-write-eventos.js.map +1 -1
  75. package/public/channel-read-filter.d.ts +11 -5
  76. package/public/channel-read-filter.js +5 -6
  77. package/public/channel-read-filter.js.map +1 -1
  78. package/public/db-acl-resolver.d.ts +9 -3
  79. package/public/db-acl-resolver.js +1 -1
  80. package/public/db-acl-resolver.js.map +1 -1
  81. package/public/files-asset.js +1 -1
  82. package/public/files-asset.js.map +1 -1
  83. package/public/fork-app.js +1 -0
  84. package/public/fork-app.js.map +1 -1
  85. package/public/get-application-chat.js +5 -4
  86. package/public/get-application-chat.js.map +1 -1
  87. package/public/get-chat-details.js +5 -4
  88. package/public/get-chat-details.js.map +1 -1
  89. package/public/get-chat-response.js +5 -4
  90. package/public/get-chat-response.js.map +1 -1
  91. package/public/get-vibe-chips.js +5 -4
  92. package/public/get-vibe-chips.js.map +1 -1
  93. package/public/image-gen.js +2 -1
  94. package/public/image-gen.js.map +1 -1
  95. package/public/img-doc-write.js +1 -1
  96. package/public/img-doc-write.js.map +1 -1
  97. package/public/inherit-read-resolver.d.ts +2 -7
  98. package/public/inherit-read-resolver.js +27 -65
  99. package/public/inherit-read-resolver.js.map +1 -1
  100. package/public/llm-dispatch.d.ts +10 -3
  101. package/public/llm-dispatch.js +97 -13
  102. package/public/llm-dispatch.js.map +1 -1
  103. package/public/prompt-chat-section.js +23 -8
  104. package/public/prompt-chat-section.js.map +1 -1
  105. package/public/stream-assembly.d.ts +4 -2
  106. package/public/stream-assembly.js +12 -8
  107. package/public/stream-assembly.js.map +1 -1
  108. package/types.d.ts +5 -0
  109. package/types.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-research.js","sourceRoot":"","sources":["../../jsr/intern/url-research.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface TimelineEntry {
5
5
  readonly fsId: string;
6
6
  readonly created: Date;
7
7
  readonly vfs: ReadonlyMap<string, string>;
8
+ readonly seeded: boolean;
8
9
  }
9
10
  export declare function resolveVfsFromFileSystem(vctx: VibesApiSQLCtx, items: FileSystemItem[]): Promise<ReadonlyMap<string, string>>;
10
11
  export declare function loadVersionTimeline(vctx: VibesApiSQLCtx, chatId: string): Promise<Result<TimelineEntry[]>>;
@@ -1,6 +1,9 @@
1
1
  import { eq, asc, desc } from "drizzle-orm";
2
2
  import { parseArray, fileSystemItem, isFetchErrResult, isFetchNotFoundResult } from "@vibes.diy/api-types";
3
3
  import { exception2Result, stream2uint8array } from "@adviser/cement";
4
+ function isSeededRef(ref) {
5
+ return typeof ref === "object" && ref !== null && ref.seed === true;
6
+ }
4
7
  const SOURCE_EXT = new Set([".jsx", ".tsx", ".js", ".ts", ".css", ".html", ".md", ".json"]);
5
8
  function isSourceFile(fileName) {
6
9
  const dot = fileName.lastIndexOf(".");
@@ -29,22 +32,30 @@ export async function loadVersionTimeline(vctx, chatId) {
29
32
  .select({
30
33
  fsId: vctx.sql.tables.promptContexts.fsId,
31
34
  created: vctx.sql.tables.promptContexts.created,
35
+ ref: vctx.sql.tables.promptContexts.ref,
32
36
  fileSystem: vctx.sql.tables.apps.fileSystem,
33
37
  })
34
38
  .from(vctx.sql.tables.promptContexts)
35
39
  .innerJoin(vctx.sql.tables.apps, eq(vctx.sql.tables.apps.fsId, vctx.sql.tables.promptContexts.fsId))
36
40
  .where(eq(vctx.sql.tables.promptContexts.chatId, chatId))
37
41
  .orderBy(asc(vctx.sql.tables.promptContexts.created));
38
- const seen = new Set();
42
+ const seenIdx = new Map();
39
43
  const out = [];
40
44
  for (const r of rows) {
41
- if (!r.fsId || seen.has(r.fsId))
45
+ if (!r.fsId)
46
+ continue;
47
+ const rowSeeded = isSeededRef(r.ref);
48
+ const keptIdx = seenIdx.get(r.fsId);
49
+ if (keptIdx !== undefined) {
50
+ if (!rowSeeded)
51
+ out[keptIdx].seeded = false;
42
52
  continue;
43
- seen.add(r.fsId);
53
+ }
44
54
  const items = parseArray(r.fileSystem, fileSystemItem);
45
55
  const vfs = await resolveVfsFromFileSystem(vctx, items);
46
56
  const created = new Date(r.created);
47
- out.push({ fsId: r.fsId, created, vfs });
57
+ seenIdx.set(r.fsId, out.length);
58
+ out.push({ fsId: r.fsId, created, vfs, seeded: rowSeeded });
48
59
  }
49
60
  return out;
50
61
  });
@@ -1 +1 @@
1
- {"version":3,"file":"version-timeline.js","sourceRoot":"","sources":["../../jsr/intern/version-timeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC3G,OAAO,EAAU,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAa9E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAE5F,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3D,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAoB,EACpB,KAAuB;IAEvB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,MAAM,CAAC;YAAE,SAAS;QACxE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChF,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAoB,EAAE,MAAc;IAC5E,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;aAC3B,MAAM,CAAC;YACN,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI;YACzC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO;YAC/C,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU;SAC5C,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;aACpC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aACnG,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACxD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QAExD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,GAAG,GAAoB,EAAE,CAAC;QAEhC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC1C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEjB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACvD,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAGxD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAAC,QAAkC;IAClE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;KACrC,CAAC;AACJ,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAoB,EAAE,MAAc;IAC3E,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;aACxB,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aAC9G,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;aACpC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACxD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;aACrD,KAAK,CAAC,CAAC,CAAC;aACR,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"version-timeline.js","sourceRoot":"","sources":["../../jsr/intern/version-timeline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/api-svc",
3
- "version": "8.1.0",
3
+ "version": "8.1.2",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -20,23 +20,25 @@
20
20
  "@libsql/client": "~0.17.4",
21
21
  "@neondatabase/serverless": "~1.1.0",
22
22
  "@noble/hashes": "~2.2.0",
23
- "@vibes.diy/api-pkg": "8.1.0",
24
- "@vibes.diy/api-sql": "8.1.0",
25
- "@vibes.diy/api-types": "8.1.0",
26
- "@vibes.diy/call-ai-v2": "8.1.0",
27
- "@vibes.diy/identity": "8.1.0",
28
- "@vibes.diy/prompts": "8.1.0",
29
- "@vibes.diy/vibe-db-explorer": "8.1.0",
30
- "@vibes.diy/vibe-runtime": "8.1.0",
31
- "@vibes.diy/vibe-types": "8.1.0",
23
+ "@vibes.diy/api-pkg": "8.1.2",
24
+ "@vibes.diy/api-sql": "8.1.2",
25
+ "@vibes.diy/api-types": "8.1.2",
26
+ "@vibes.diy/call-ai-v2": "8.1.2",
27
+ "@vibes.diy/identity": "8.1.2",
28
+ "@vibes.diy/prompts": "8.1.2",
29
+ "@vibes.diy/vibe-db-explorer": "8.1.2",
30
+ "@vibes.diy/vibe-runtime": "8.1.2",
31
+ "@vibes.diy/vibe-types": "8.1.2",
32
32
  "acorn": "~8.17.0",
33
33
  "arktype": "~2.2.3",
34
- "call-ai": "8.1.0",
34
+ "call-ai": "8.1.2",
35
35
  "cookie": "~2.0.1",
36
+ "csv-parse": "~7.0.1",
36
37
  "drizzle-orm": "~0.45.2",
37
38
  "jose": "~6.2.2",
38
39
  "mime": "~4.1.0",
39
40
  "multiformats": "~14.0.4",
41
+ "parse5": "~8.0.1",
40
42
  "random-words": "~2.0.1",
41
43
  "react": "~19.2.7",
42
44
  "react-dom": "~19.2.7",
@@ -0,0 +1,12 @@
1
+ import type { AccessDescriptor } from "@vibes.diy/api-types";
2
+ export interface AccessOutputRow {
3
+ readonly docId: string;
4
+ readonly output: string;
5
+ }
6
+ export interface DecodedAccessOutputRow<TRow extends AccessOutputRow = AccessOutputRow> {
7
+ readonly row: TRow;
8
+ readonly descriptor: AccessDescriptor;
9
+ }
10
+ export declare function safeParseDescriptor(output: string): AccessDescriptor | undefined;
11
+ export declare function decodeAccessOutputRow<TRow extends AccessOutputRow>(row: TRow): DecodedAccessOutputRow<TRow> | undefined;
12
+ export declare function decodeAccessOutputRows<TRow extends AccessOutputRow>(rows: readonly TRow[]): DecodedAccessOutputRow<TRow>[];
@@ -0,0 +1,130 @@
1
+ import { exception2Result } from "@adviser/cement";
2
+ import { type } from "arktype";
3
+ import { presentInheritRead } from "./audience-channels.js";
4
+ const descString = type("string");
5
+ const descStringArray = type("string[]");
6
+ const descExpiry = type("string | number | null");
7
+ function isRecord(v) {
8
+ return typeof v === "object" && v !== null && !Array.isArray(v);
9
+ }
10
+ function parseString(value) {
11
+ const parsed = descString(value);
12
+ return parsed instanceof type.errors ? undefined : parsed;
13
+ }
14
+ function parseStringArray(value) {
15
+ const parsed = descStringArray(value);
16
+ return parsed instanceof type.errors ? undefined : parsed;
17
+ }
18
+ function setRecordValue(record, key, value) {
19
+ Object.defineProperty(record, key, {
20
+ configurable: true,
21
+ enumerable: true,
22
+ value,
23
+ writable: true,
24
+ });
25
+ }
26
+ function parseStringArrayMap(value) {
27
+ if (!isRecord(value))
28
+ return undefined;
29
+ const keys = Object.keys(value);
30
+ const parsed = {};
31
+ let validEntries = 0;
32
+ for (const [key, candidate] of Object.entries(value)) {
33
+ const entry = parseStringArray(candidate);
34
+ if (entry === undefined)
35
+ continue;
36
+ setRecordValue(parsed, key, entry);
37
+ validEntries++;
38
+ }
39
+ if (keys.length > 0 && validEntries === 0)
40
+ return undefined;
41
+ return parsed;
42
+ }
43
+ function parseAudience(value) {
44
+ if (!isRecord(value))
45
+ return undefined;
46
+ const keys = Object.keys(value);
47
+ const parsed = {};
48
+ let validFields = 0;
49
+ const followersOf = parseString(value.followersOf);
50
+ if (followersOf !== undefined) {
51
+ parsed.followersOf = followersOf;
52
+ validFields++;
53
+ }
54
+ const mutualsOf = parseString(value.mutualsOf);
55
+ if (mutualsOf !== undefined) {
56
+ parsed.mutualsOf = mutualsOf;
57
+ validFields++;
58
+ }
59
+ if (keys.length > 0 && validFields === 0)
60
+ return undefined;
61
+ return parsed;
62
+ }
63
+ function parseGrant(value) {
64
+ if (!isRecord(value))
65
+ return undefined;
66
+ const keys = Object.keys(value);
67
+ const parsed = {};
68
+ let validFields = 0;
69
+ const users = parseStringArrayMap(value.users);
70
+ if (users !== undefined) {
71
+ parsed.users = users;
72
+ validFields++;
73
+ }
74
+ const roles = parseStringArrayMap(value.roles);
75
+ if (roles !== undefined) {
76
+ parsed.roles = roles;
77
+ validFields++;
78
+ }
79
+ const publicChannels = parseStringArray(value.public);
80
+ if (publicChannels !== undefined) {
81
+ parsed.public = publicChannels;
82
+ validFields++;
83
+ }
84
+ if (keys.length > 0 && validFields === 0)
85
+ return undefined;
86
+ return parsed;
87
+ }
88
+ export function safeParseDescriptor(output) {
89
+ const r = exception2Result(() => JSON.parse(output));
90
+ if (r.isErr())
91
+ return undefined;
92
+ const value = r.Ok();
93
+ if (!isRecord(value))
94
+ return undefined;
95
+ const out = {};
96
+ const channels = parseStringArray(value.channels);
97
+ if (channels !== undefined)
98
+ out.channels = channels;
99
+ const audience = parseAudience(value.audience);
100
+ if (audience !== undefined)
101
+ out.audience = audience;
102
+ const grant = parseGrant(value.grant);
103
+ if (grant !== undefined)
104
+ out.grant = grant;
105
+ const members = parseStringArrayMap(value.members);
106
+ if (members !== undefined)
107
+ out.members = members;
108
+ const expiry = descExpiry(value.expiry);
109
+ if (!(expiry instanceof type.errors))
110
+ out.expiry = expiry;
111
+ if (typeof value.allowAnonymous === "boolean")
112
+ out.allowAnonymous = value.allowAnonymous;
113
+ if (presentInheritRead(value.inheritRead))
114
+ out.inheritRead = value.inheritRead;
115
+ return out;
116
+ }
117
+ export function decodeAccessOutputRow(row) {
118
+ const descriptor = safeParseDescriptor(row.output);
119
+ return descriptor === undefined ? undefined : { row, descriptor };
120
+ }
121
+ export function decodeAccessOutputRows(rows) {
122
+ const decoded = [];
123
+ for (const row of rows) {
124
+ const parsed = decodeAccessOutputRow(row);
125
+ if (parsed !== undefined)
126
+ decoded.push(parsed);
127
+ }
128
+ return decoded;
129
+ }
130
+ //# sourceMappingURL=access-output-decoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-output-decoder.js","sourceRoot":"","sources":["../../jsr/public/access-output-decoder.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,8 @@ import { applyQueryFilter } from "./app-documents-query-filter.js";
16
16
  import { readAllowed, clientWsSend, connectionAdminMode } from "./app-documents-shared.js";
17
17
  import { resolveActiveHandle } from "./resolve-active-handle.js";
18
18
  import { audienceChannelsOf, audienceChannelsForReader, collectAudienceSubjects, inheritChannelOf, INHERIT_CAPABILITY_CHANNEL, RESERVED_CHANNEL_PREFIX, } from "./audience-channels.js";
19
- import { resolveInheritReadChannels, safeParseDescriptor } from "./inherit-read-resolver.js";
19
+ import { resolveInheritReadChannels } from "./inherit-read-resolver.js";
20
+ import { decodeAccessOutputRow, decodeAccessOutputRows } from "./access-output-decoder.js";
20
21
  import { resolveAudienceMembershipFailClosed } from "./social-store.js";
21
22
  export const getDocEvento = {
22
23
  hash: "get-doc",
@@ -34,8 +35,20 @@ export const getDocEvento = {
34
35
  const { access } = req._auth
35
36
  ? await checkDocAccess(vctx, req._auth.verifiedAuth.claims.userId, req.appSlug, req.ownerHandle, connectionAdminMode(ctx) || reqAdmin)
36
37
  : { access: "none" };
37
- const rAcl = await resolveDbAcl(vctx, req.ownerHandle, req.appSlug, req.dbName);
38
- if (rAcl.isErr() || !(await readAllowed(vctx, rAcl.Ok(), access, req.appSlug, req.ownerHandle))) {
38
+ const rAcl = await resolveDbAcl({
39
+ vctx,
40
+ ownerHandle: req.ownerHandle,
41
+ appSlug: req.appSlug,
42
+ dbName: req.dbName,
43
+ });
44
+ if (rAcl.isErr() ||
45
+ !(await readAllowed({
46
+ vctx,
47
+ acl: rAcl.Ok(),
48
+ access,
49
+ appSlug: req.appSlug,
50
+ ownerHandle: req.ownerHandle,
51
+ }))) {
39
52
  await ctx.send.send(ctx, {
40
53
  type: "vibes.diy.res-error",
41
54
  error: { message: "Access denied" },
@@ -62,12 +75,13 @@ export const getDocEvento = {
62
75
  if (afbRowG?.accessFnCid && access !== "override") {
63
76
  const tOutputsG = vctx.sql.tables.accessFnOutputs;
64
77
  const docOutput = await vctx.sql.db
65
- .select({ output: tOutputsG.output })
78
+ .select({ docId: tOutputsG.docId, output: tOutputsG.output })
66
79
  .from(tOutputsG)
67
80
  .where(and(eq(tOutputsG.ownerHandle, req.ownerHandle), eq(tOutputsG.appSlug, req.appSlug), eq(tOutputsG.dbName, req.dbName), eq(tOutputsG.docId, req.docId)))
68
81
  .limit(1)
69
82
  .then((r) => r[0]);
70
- const parsed = docOutput ? JSON.parse(docOutput.output) : undefined;
83
+ const decodedDocOutput = docOutput === undefined ? undefined : decodeAccessOutputRow(docOutput);
84
+ const parsed = decodedDocOutput?.descriptor;
71
85
  const docChannels = parsed?.channels;
72
86
  const docAudienceChannels = parsed === undefined ? [] : audienceChannelsOf(parsed);
73
87
  const docInheritChannels = parsed === undefined ? [] : inheritChannelOf(parsed);
@@ -85,12 +99,17 @@ export const getDocEvento = {
85
99
  .select({ docId: tOutputsG.docId, output: tOutputsG.output })
86
100
  .from(tOutputsG)
87
101
  .where(and(eq(tOutputsG.ownerHandle, req.ownerHandle), eq(tOutputsG.appSlug, req.appSlug), eq(tOutputsG.dbName, req.dbName), eq(tOutputsG.hasGrants, 1)));
102
+ const grantRowsExcludingDoc = docOutput === undefined ? grantOutputs : grantOutputs.filter((r) => r.docId !== docOutput.docId);
103
+ const decodedGrantOutputs = decodeAccessOutputRows(grantRowsExcludingDoc);
88
104
  const devHandles = req._auth !== undefined
89
105
  ? await resolveDeveloperHandles(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug })
90
106
  : [];
91
107
  const reduce = newSeededReduce(req.ownerHandle, devHandles);
92
- for (const r of grantOutputs) {
93
- reduce.addDoc(r.docId, extractContribution(JSON.parse(r.output)));
108
+ if (decodedDocOutput !== undefined && grantOutputs.some((grantOutput) => grantOutput.docId === req.docId)) {
109
+ reduce.addDoc(req.docId, extractContribution(decodedDocOutput.descriptor));
110
+ }
111
+ for (const { row, descriptor } of decodedGrantOutputs) {
112
+ reduce.addDoc(row.docId, extractContribution(descriptor));
94
113
  }
95
114
  const userHandle = req._auth ? ((await resolveActiveHandle(vctx, req._auth.verifiedAuth.claims.userId)) ?? null) : null;
96
115
  const effectiveChannels = userHandle !== null ? reduce.resolveEffectiveChannels(userHandle) : new Set();
@@ -104,11 +123,11 @@ export const getDocEvento = {
104
123
  for (const ch of audienceChannelsForReader(membership))
105
124
  effectiveChannels.add(ch);
106
125
  }
107
- if (docInheritChannels.length > 0 && docOutput !== undefined) {
126
+ if (docInheritChannels.length > 0 && decodedDocOutput !== undefined) {
108
127
  const inheritCh = await resolveInheritReadChannels(vctx, {
109
128
  ownerHandle: req.ownerHandle,
110
129
  appSlug: req.appSlug,
111
- outputs: [{ docId: req.docId, output: docOutput.output }],
130
+ outputs: [decodedDocOutput],
112
131
  userHandle,
113
132
  access,
114
133
  devHandles,
@@ -165,8 +184,20 @@ export const queryDocsEvento = {
165
184
  ({ access } = req._auth
166
185
  ? await checkDocAccess(vctx, req._auth.verifiedAuth.claims.userId, req.appSlug, req.ownerHandle, connectionAdminMode(ctx) || reqAdmin)
167
186
  : { access: "none" });
168
- const rAcl = await resolveDbAcl(vctx, req.ownerHandle, req.appSlug, req.dbName);
169
- if (rAcl.isErr() || !(await readAllowed(vctx, rAcl.Ok(), access, req.appSlug, req.ownerHandle))) {
187
+ const rAcl = await resolveDbAcl({
188
+ vctx,
189
+ ownerHandle: req.ownerHandle,
190
+ appSlug: req.appSlug,
191
+ dbName: req.dbName,
192
+ });
193
+ if (rAcl.isErr() ||
194
+ !(await readAllowed({
195
+ vctx,
196
+ acl: rAcl.Ok(),
197
+ access,
198
+ appSlug: req.appSlug,
199
+ ownerHandle: req.ownerHandle,
200
+ }))) {
170
201
  await ctx.send.send(ctx, {
171
202
  type: "vibes.diy.res-error",
172
203
  error: { message: "Access denied" },
@@ -205,19 +236,19 @@ export const queryDocsEvento = {
205
236
  .select({ docId: tOutputsQ.docId, output: tOutputsQ.output })
206
237
  .from(tOutputsQ)
207
238
  .where(and(eq(tOutputsQ.ownerHandle, req.ownerHandle), eq(tOutputsQ.appSlug, req.appSlug), eq(tOutputsQ.dbName, req.dbName)));
208
- const grantOutputs = allOutputs.filter((r) => {
209
- const parsed = JSON.parse(r.output);
210
- return ((parsed.members !== undefined && Object.keys(parsed.members).length > 0) ||
211
- (parsed.grant?.users !== undefined && Object.keys(parsed.grant.users).length > 0) ||
212
- (parsed.grant?.roles !== undefined && Object.keys(parsed.grant.roles).length > 0) ||
213
- (parsed.grant?.public !== undefined && parsed.grant.public.length > 0));
239
+ const decodedOutputs = decodeAccessOutputRows(allOutputs);
240
+ const grantOutputs = decodedOutputs.filter(({ descriptor }) => {
241
+ return ((descriptor.members !== undefined && Object.keys(descriptor.members).length > 0) ||
242
+ (descriptor.grant?.users !== undefined && Object.keys(descriptor.grant.users).length > 0) ||
243
+ (descriptor.grant?.roles !== undefined && Object.keys(descriptor.grant.roles).length > 0) ||
244
+ (descriptor.grant?.public !== undefined && descriptor.grant.public.length > 0));
214
245
  });
215
246
  const devHandles = req._auth !== undefined
216
247
  ? await resolveDeveloperHandles(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug })
217
248
  : [];
218
249
  const reduce = newSeededReduce(req.ownerHandle, devHandles);
219
- for (const row of grantOutputs) {
220
- reduce.addDoc(row.docId, extractContribution(JSON.parse(row.output)));
250
+ for (const { row, descriptor } of grantOutputs) {
251
+ reduce.addDoc(row.docId, extractContribution(descriptor));
221
252
  }
222
253
  const userHandle = req._auth
223
254
  ? isDm
@@ -226,7 +257,7 @@ export const queryDocsEvento = {
226
257
  : null;
227
258
  const effectiveChannels = userHandle !== null ? reduce.resolveEffectiveChannels(userHandle) : new Set();
228
259
  if (userHandle !== null && access !== "override") {
229
- const subjects = collectAudienceSubjects(allOutputs.map((r) => JSON.parse(r.output)));
260
+ const subjects = collectAudienceSubjects(decodedOutputs.map(({ descriptor }) => descriptor));
230
261
  if (subjects.length > 0) {
231
262
  const membership = await resolveAudienceMembershipFailClosed(vctx, {
232
263
  handle: userHandle,
@@ -242,7 +273,7 @@ export const queryDocsEvento = {
242
273
  const inheritCh = await resolveInheritReadChannels(vctx, {
243
274
  ownerHandle: req.ownerHandle,
244
275
  appSlug: req.appSlug,
245
- outputs: allOutputs,
276
+ outputs: decodedOutputs,
246
277
  userHandle,
247
278
  access,
248
279
  devHandles,
@@ -250,7 +281,15 @@ export const queryDocsEvento = {
250
281
  for (const ch of inheritCh)
251
282
  effectiveChannels.add(ch);
252
283
  }
253
- channelFilteredDocs = filterDocsByChannel(docs, allOutputs, userHandle, effectiveChannels, reduce.publicChannels, access === "override", isDm);
284
+ channelFilteredDocs = filterDocsByChannel({
285
+ docs,
286
+ outputRows: decodedOutputs,
287
+ userHandle,
288
+ effectiveChannels,
289
+ publicChannels: reduce.publicChannels,
290
+ adminOverride: access === "override",
291
+ requireOutput: isDm,
292
+ });
254
293
  }
255
294
  const filteredDocs = applyQueryFilter(channelFilteredDocs, req.filter);
256
295
  await ctx.send.send(ctx, {
@@ -282,8 +321,20 @@ export const subscribeDocsEvento = {
282
321
  ({ access } = req._auth
283
322
  ? await checkDocAccess(vctx, req._auth.verifiedAuth.claims.userId, req.appSlug, req.ownerHandle, connectionAdminMode(ctx))
284
323
  : { access: "none" });
285
- const rAcl = await resolveDbAcl(vctx, req.ownerHandle, req.appSlug, req.dbName);
286
- if (rAcl.isErr() || !(await readAllowed(vctx, rAcl.Ok(), access, req.appSlug, req.ownerHandle))) {
324
+ const rAcl = await resolveDbAcl({
325
+ vctx,
326
+ ownerHandle: req.ownerHandle,
327
+ appSlug: req.appSlug,
328
+ dbName: req.dbName,
329
+ });
330
+ if (rAcl.isErr() ||
331
+ !(await readAllowed({
332
+ vctx,
333
+ acl: rAcl.Ok(),
334
+ access,
335
+ appSlug: req.appSlug,
336
+ ownerHandle: req.ownerHandle,
337
+ }))) {
287
338
  await ctx.send.send(ctx, {
288
339
  type: "vibes.diy.res-error",
289
340
  error: { message: "Access denied" },
@@ -298,20 +349,18 @@ export const subscribeDocsEvento = {
298
349
  const tOutputsS = vctx.sql.tables.accessFnOutputs;
299
350
  if (access === "override") {
300
351
  const allOutputs = await vctx.sql.db
301
- .select({ output: tOutputsS.output })
352
+ .select({ docId: tOutputsS.docId, output: tOutputsS.output })
302
353
  .from(tOutputsS)
303
354
  .where(and(eq(tOutputsS.ownerHandle, req.ownerHandle), eq(tOutputsS.appSlug, req.appSlug), eq(tOutputsS.dbName, req.dbName)));
304
355
  const allChannels = new Set();
305
- for (const row of allOutputs) {
306
- const parsed = JSON.parse(row.output);
307
- if (Array.isArray(parsed.channels)) {
308
- for (const ch of parsed.channels) {
309
- allChannels.add(ch);
310
- }
356
+ const decodedOutputs = decodeAccessOutputRows(allOutputs);
357
+ for (const { descriptor } of decodedOutputs) {
358
+ for (const ch of descriptor.channels ?? []) {
359
+ allChannels.add(ch);
311
360
  }
312
- for (const ch of audienceChannelsOf(parsed))
361
+ for (const ch of audienceChannelsOf(descriptor))
313
362
  allChannels.add(ch);
314
- for (const ch of inheritChannelOf(parsed))
363
+ for (const ch of inheritChannelOf(descriptor))
315
364
  allChannels.add(ch);
316
365
  }
317
366
  for (const ch of normalizeChannels([...allChannels])) {
@@ -327,12 +376,10 @@ export const subscribeDocsEvento = {
327
376
  ? await resolveDeveloperHandles(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug })
328
377
  : [];
329
378
  const reduce = newSeededReduce(req.ownerHandle, devHandles);
330
- for (const row of allOutputs) {
331
- const parsedRow = safeParseDescriptor(row.output);
332
- if (parsedRow === undefined)
333
- continue;
379
+ const decodedOutputs = decodeAccessOutputRows(allOutputs);
380
+ for (const { row, descriptor } of decodedOutputs) {
334
381
  if (row.hasGrants === 1) {
335
- reduce.addDoc(row.docId, extractContribution(parsedRow));
382
+ reduce.addDoc(row.docId, extractContribution(descriptor));
336
383
  }
337
384
  }
338
385
  const userHandle = req._auth
@@ -343,7 +390,7 @@ export const subscribeDocsEvento = {
343
390
  const effectiveChannels = userHandle !== null ? reduce.resolveEffectiveChannels(userHandle) : new Set();
344
391
  if (userHandle !== null && isDm === false) {
345
392
  wsSend.subscribedDocHandle = userHandle;
346
- const subjects = collectAudienceSubjects(allOutputs.map((r) => JSON.parse(r.output)));
393
+ const subjects = collectAudienceSubjects(decodedOutputs.map(({ descriptor }) => descriptor));
347
394
  if (subjects.length > 0) {
348
395
  const membership = await resolveAudienceMembershipFailClosed(vctx, {
349
396
  handle: userHandle,
@@ -361,7 +408,7 @@ export const subscribeDocsEvento = {
361
408
  const inheritCh = await resolveInheritReadChannels(vctx, {
362
409
  ownerHandle: req.ownerHandle,
363
410
  appSlug: req.appSlug,
364
- outputs: allOutputs,
411
+ outputs: decodedOutputs,
365
412
  userHandle,
366
413
  access,
367
414
  devHandles,