@vibes.diy/api-svc 14.3.53 → 14.3.55

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 (108) hide show
  1. package/intern/agent-belt.js +10 -0
  2. package/intern/agent-belt.js.map +1 -1
  3. package/intern/agent-dispatcher.js +1 -0
  4. package/intern/agent-dispatcher.js.map +1 -1
  5. package/intern/agent-file-validation.d.ts +6 -0
  6. package/intern/agent-file-validation.js +31 -15
  7. package/intern/agent-file-validation.js.map +1 -1
  8. package/intern/agent-read-tools.js +3 -1
  9. package/intern/agent-read-tools.js.map +1 -1
  10. package/intern/agent-session-runtime.js +1 -0
  11. package/intern/agent-session-runtime.js.map +1 -1
  12. package/intern/agent-wake.d.ts +8 -0
  13. package/intern/agent-wake.js +7 -0
  14. package/intern/agent-wake.js.map +1 -1
  15. package/intern/attach-draft-handle.js +1 -0
  16. package/intern/attach-draft-handle.js.map +1 -1
  17. package/intern/draft-chat-store.d.ts +1 -0
  18. package/intern/draft-chat-store.js +2 -1
  19. package/intern/draft-chat-store.js.map +1 -1
  20. package/intern/draft-lane.d.ts +8 -1
  21. package/intern/draft-lane.js +1 -1
  22. package/intern/draft-lane.js.map +1 -1
  23. package/intern/ensure-chat-id.d.ts +3 -2
  24. package/intern/ensure-chat-id.js +15 -3
  25. package/intern/ensure-chat-id.js.map +1 -1
  26. package/intern/instruction-variant.d.ts +1 -1
  27. package/intern/instruction-variant.js +1 -1
  28. package/intern/mint-decision.d.ts +2 -1
  29. package/intern/mint-decision.js +4 -1
  30. package/intern/mint-decision.js.map +1 -1
  31. package/intern/process-access-bindings.js +49 -10
  32. package/intern/process-access-bindings.js.map +1 -1
  33. package/intern/put-access-gate.js +21 -1
  34. package/intern/put-access-gate.js.map +1 -1
  35. package/intern/render-vibe.d.ts +2 -1
  36. package/intern/render-vibe.js +4 -1
  37. package/intern/render-vibe.js.map +1 -1
  38. package/intern/save-repair.d.ts +43 -0
  39. package/intern/save-repair.js +133 -0
  40. package/intern/save-repair.js.map +1 -0
  41. package/intern/settings-carry-policy.js +10 -0
  42. package/intern/settings-carry-policy.js.map +1 -1
  43. package/intern/swr-html-cache-orchestrator.js +3 -1
  44. package/intern/swr-html-cache-orchestrator.js.map +1 -1
  45. package/package.json +15 -15
  46. package/public/access-binding-resolver.d.ts +5 -1
  47. package/public/access-binding-resolver.js +9 -6
  48. package/public/access-binding-resolver.js.map +1 -1
  49. package/public/app-documents-write-eventos.js +1 -1
  50. package/public/app-documents-write-eventos.js.map +1 -1
  51. package/public/app-settings-sql-upsert.js +14 -2
  52. package/public/app-settings-sql-upsert.js.map +1 -1
  53. package/public/asset-session.js +4 -4
  54. package/public/asset-session.js.map +1 -1
  55. package/public/audience-arms-store.d.ts +13 -1
  56. package/public/audience-arms-store.js +72 -21
  57. package/public/audience-arms-store.js.map +1 -1
  58. package/public/audience-effective-arm.d.ts +16 -2
  59. package/public/audience-effective-arm.js +34 -8
  60. package/public/audience-effective-arm.js.map +1 -1
  61. package/public/cid-asset.js +2 -0
  62. package/public/cid-asset.js.map +1 -1
  63. package/public/db-acl-resolver.js +1 -1
  64. package/public/db-acl-resolver.js.map +1 -1
  65. package/public/ensure-app-settings.js +116 -19
  66. package/public/ensure-app-settings.js.map +1 -1
  67. package/public/get-app-by-fsid.js +6 -3
  68. package/public/get-app-by-fsid.js.map +1 -1
  69. package/public/get-user-avatar.js +2 -1
  70. package/public/get-user-avatar.js.map +1 -1
  71. package/public/handle-prompt-context.d.ts +5 -1
  72. package/public/handle-prompt-context.js +55 -7
  73. package/public/handle-prompt-context.js.map +1 -1
  74. package/public/inherit-read-resolver.js +7 -0
  75. package/public/inherit-read-resolver.js.map +1 -1
  76. package/public/media-access-fn.d.ts +8 -3
  77. package/public/media-access-fn.js +9 -3
  78. package/public/media-access-fn.js.map +1 -1
  79. package/public/platform-db-registry.d.ts +2 -2
  80. package/public/platform-db-registry.js +2 -3
  81. package/public/platform-db-registry.js.map +1 -1
  82. package/public/privacy-sensitive-lower.d.ts +22 -0
  83. package/public/privacy-sensitive-lower.js +55 -0
  84. package/public/privacy-sensitive-lower.js.map +1 -0
  85. package/public/prompt-turn-settled.js +3 -0
  86. package/public/prompt-turn-settled.js.map +1 -1
  87. package/public/put-asset.d.ts +1 -0
  88. package/public/put-asset.js +11 -1
  89. package/public/put-asset.js.map +1 -1
  90. package/public/report-activity.js +6 -1
  91. package/public/report-activity.js.map +1 -1
  92. package/public/root-document-cors.d.ts +3 -0
  93. package/public/root-document-cors.js +5 -0
  94. package/public/root-document-cors.js.map +1 -0
  95. package/public/serv-entry-point.js +12 -0
  96. package/public/serv-entry-point.js.map +1 -1
  97. package/public/settings-envelope-readout.js +3 -1
  98. package/public/settings-envelope-readout.js.map +1 -1
  99. package/public/social-flow.js +25 -6
  100. package/public/social-flow.js.map +1 -1
  101. package/public/stream-assembly.d.ts +2 -0
  102. package/public/stream-assembly.js +2 -0
  103. package/public/stream-assembly.js.map +1 -1
  104. package/svc-http-send-provider.d.ts +2 -0
  105. package/svc-http-send-provider.js +21 -6
  106. package/svc-http-send-provider.js.map +1 -1
  107. package/vibes-req-res-evento.js +2 -0
  108. package/vibes-req-res-evento.js.map +1 -1
@@ -1,4 +1,4 @@
1
- import { type AudienceArmState, type AudienceArmWriteState } from "@vibes.diy/api-types";
1
+ import { type AudienceArmState, type AudienceArmWriteState, type StoredAudienceArm } from "@vibes.diy/api-types";
2
2
  import { VibesApiSQLCtx } from "../types.js";
3
3
  export interface ArmKey {
4
4
  subjectHandle: string;
@@ -17,11 +17,22 @@ export declare function setArm(vctx: VibesApiSQLCtx, key: ArmKey & {
17
17
  }): Promise<void>;
18
18
  export declare function isArmed(vctx: VibesApiSQLCtx, key: ArmKey): Promise<boolean>;
19
19
  export declare function getArmState(vctx: VibesApiSQLCtx, key: ArmKey): Promise<AudienceArmState | null>;
20
+ export declare function getArmRow(vctx: VibesApiSQLCtx, key: ArmKey): Promise<StoredAudienceArm | null>;
21
+ export declare function stampSensitiveJoins(vctx: VibesApiSQLCtx, input: {
22
+ ownerHandle: string;
23
+ appSlug: string;
24
+ subjects: readonly string[];
25
+ }): Promise<void>;
20
26
  export declare function armStatesForSubjects(vctx: VibesApiSQLCtx, input: {
21
27
  ownerHandle: string;
22
28
  appSlug: string;
23
29
  subjects: string[];
24
30
  }): Promise<Map<string, AudienceArmState>>;
31
+ export declare function armRowsForSubjects(vctx: VibesApiSQLCtx, input: {
32
+ ownerHandle: string;
33
+ appSlug: string;
34
+ subjects: string[];
35
+ }): Promise<Map<string, StoredAudienceArm>>;
25
36
  export declare function armedSubjects(vctx: VibesApiSQLCtx, input: {
26
37
  ownerHandle: string;
27
38
  appSlug: string;
@@ -31,6 +42,7 @@ export declare function listArmsForSubject(vctx: VibesApiSQLCtx, subjectHandle:
31
42
  ownerHandle: string;
32
43
  appSlug: string;
33
44
  state: AudienceArmState;
45
+ joinedWhileSensitive: boolean;
34
46
  }[]>;
35
47
  export declare function listArmsForApp(vctx: VibesApiSQLCtx, key: {
36
48
  ownerHandle: string;
@@ -1,6 +1,6 @@
1
1
  import { and, eq, inArray } from "drizzle-orm/sql/expressions";
2
2
  import { exception2Result } from "@adviser/cement";
3
- import { ActiveEntry, effectiveAudienceVisibility, isActiveAudiencePolicy, isActivePrivacySensitive, isDownwardAudienceTransition, normalizeArmState, parseArrayWarning, } from "@vibes.diy/api-types";
3
+ import { ActiveEntry, effectiveAudienceVisibility, isActiveAudiencePolicy, isActivePrivacySensitive, isDownwardAudienceTransition, isSensitiveJoinStamp, normalizeArmState, parseArrayWarning, SENSITIVE_JOIN_SOURCE, storedAudienceArmFromRow, subjectAudienceInputs, } from "@vibes.diy/api-types";
4
4
  import { patchAudienceKeys } from "./audience-key-patch.js";
5
5
  import { readComposedSettingsForApp } from "./app-setting-items.js";
6
6
  function now() {
@@ -94,7 +94,7 @@ export async function setArm(vctx, key) {
94
94
  console.error("audience-arm clear teardown failed (degrade-to-resubscribe):", rClear.Err());
95
95
  return;
96
96
  }
97
- const oldState = await getArmState(vctx, key);
97
+ const oldRow = await getArmRow(vctx, key);
98
98
  const state = normalizeArmState(key.state);
99
99
  const ts = now();
100
100
  await vctx.sql.db
@@ -104,17 +104,21 @@ export async function setArm(vctx, key) {
104
104
  ownerHandle: key.ownerHandle,
105
105
  appSlug: key.appSlug,
106
106
  state,
107
+ source: null,
107
108
  created: ts,
108
109
  updated: ts,
109
110
  })
110
111
  .onConflictDoUpdate({
111
112
  target: [t.subjectHandle, t.ownerHandle, t.appSlug],
112
- set: { state, updated: ts },
113
+ set: { state, source: null, updated: ts },
113
114
  });
114
115
  const rTeardown = await exception2Result(async () => {
115
- const [sensitive, policy] = await Promise.all([appPrivacySensitive(vctx, key), subjectHandleIntent(vctx, key.subjectHandle)]);
116
- const before = effectiveAudienceVisibility({ state: oldState, sensitive, policy });
117
- const after = effectiveAudienceVisibility({ state, sensitive, policy });
116
+ const [appSensitive, policy] = await Promise.all([
117
+ appPrivacySensitive(vctx, key),
118
+ subjectHandleIntent(vctx, key.subjectHandle),
119
+ ]);
120
+ const before = effectiveAudienceVisibility({ ...subjectAudienceInputs({ row: oldRow, appSensitive }), policy });
121
+ const after = effectiveAudienceVisibility({ ...subjectAudienceInputs({ row: { state, source: null }, appSensitive }), policy });
118
122
  if (isDownwardAudienceTransition(before, after) || state === "private") {
119
123
  const skipFollowers = before === "public" && after === "followers";
120
124
  await revokeArmedKeys(vctx, key, { skipFollowers });
@@ -134,29 +138,65 @@ export async function isArmed(vctx, key) {
134
138
  return row !== undefined && normalizeArmState(row.state) !== "private";
135
139
  }
136
140
  export async function getArmState(vctx, key) {
141
+ return (await getArmRow(vctx, key))?.state ?? null;
142
+ }
143
+ export async function getArmRow(vctx, key) {
137
144
  const t = vctx.sql.tables.audienceArms;
138
145
  const row = await vctx.sql.db
139
- .select({ state: t.state })
146
+ .select({ state: t.state, source: t.source, created: t.created, updated: t.updated })
140
147
  .from(t)
141
148
  .where(and(eq(t.subjectHandle, key.subjectHandle), eq(t.ownerHandle, key.ownerHandle), eq(t.appSlug, key.appSlug)))
142
149
  .limit(1)
143
150
  .then((r) => r[0]);
144
151
  if (row === undefined)
145
152
  return null;
146
- return normalizeArmState(row.state);
153
+ return storedAudienceArmFromRow({
154
+ state: normalizeArmState(row.state),
155
+ source: row.source ?? null,
156
+ created: row.created,
157
+ updated: row.updated,
158
+ });
159
+ }
160
+ export async function stampSensitiveJoins(vctx, input) {
161
+ if (input.subjects.length === 0)
162
+ return;
163
+ const t = vctx.sql.tables.audienceArms;
164
+ const ts = now();
165
+ await vctx.sql.db
166
+ .insert(t)
167
+ .values([...new Set(input.subjects)].map((subjectHandle) => ({
168
+ subjectHandle,
169
+ ownerHandle: input.ownerHandle,
170
+ appSlug: input.appSlug,
171
+ state: "private",
172
+ source: SENSITIVE_JOIN_SOURCE,
173
+ created: ts,
174
+ updated: ts,
175
+ })))
176
+ .onConflictDoNothing({ target: [t.subjectHandle, t.ownerHandle, t.appSlug] });
147
177
  }
148
178
  export async function armStatesForSubjects(vctx, input) {
149
- const states = new Map();
179
+ const rows = await armRowsForSubjects(vctx, input);
180
+ return new Map([...rows].map(([subject, row]) => [subject, row.state]));
181
+ }
182
+ export async function armRowsForSubjects(vctx, input) {
183
+ const rows = new Map();
150
184
  if (input.subjects.length === 0)
151
- return states;
185
+ return rows;
152
186
  const t = vctx.sql.tables.audienceArms;
153
- const rows = await vctx.sql.db
154
- .select({ subjectHandle: t.subjectHandle, state: t.state })
187
+ const found = await vctx.sql.db
188
+ .select({ subjectHandle: t.subjectHandle, state: t.state, source: t.source, created: t.created, updated: t.updated })
155
189
  .from(t)
156
190
  .where(and(eq(t.ownerHandle, input.ownerHandle), eq(t.appSlug, input.appSlug), inArray(t.subjectHandle, input.subjects)));
157
- for (const r of rows)
158
- states.set(r.subjectHandle, normalizeArmState(r.state));
159
- return states;
191
+ for (const r of found) {
192
+ rows.set(r.subjectHandle, storedAudienceArmFromRow({
193
+ state: normalizeArmState(r.state),
194
+ source: r.source ?? null,
195
+ created: r.created,
196
+ updated: r.updated,
197
+ }));
198
+ }
199
+ return rows;
160
200
  }
161
201
  export async function armedSubjects(vctx, input) {
162
202
  const states = await armStatesForSubjects(vctx, input);
@@ -169,14 +209,25 @@ export async function armedSubjects(vctx, input) {
169
209
  export async function listArmsForSubject(vctx, subjectHandle) {
170
210
  const t = vctx.sql.tables.audienceArms;
171
211
  const rows = await vctx.sql.db
172
- .select({ ownerHandle: t.ownerHandle, appSlug: t.appSlug, state: t.state })
212
+ .select({
213
+ ownerHandle: t.ownerHandle,
214
+ appSlug: t.appSlug,
215
+ state: t.state,
216
+ source: t.source,
217
+ created: t.created,
218
+ updated: t.updated,
219
+ })
173
220
  .from(t)
174
221
  .where(eq(t.subjectHandle, subjectHandle));
175
- return rows.map((r) => ({
176
- ownerHandle: r.ownerHandle,
177
- appSlug: r.appSlug,
178
- state: normalizeArmState(r.state),
179
- }));
222
+ return rows.map((r) => {
223
+ const state = normalizeArmState(r.state);
224
+ return {
225
+ ownerHandle: r.ownerHandle,
226
+ appSlug: r.appSlug,
227
+ state,
228
+ joinedWhileSensitive: isSensitiveJoinStamp(storedAudienceArmFromRow({ state, source: r.source ?? null, created: r.created, updated: r.updated })),
229
+ };
230
+ });
180
231
  }
181
232
  export async function listArmsForApp(vctx, key) {
182
233
  const t = vctx.sql.tables.audienceArms;
@@ -1 +1 @@
1
- {"version":3,"file":"audience-arms-store.js","sourceRoot":"","sources":["../../jsr/public/audience-arms-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audience-arms-store.js","sourceRoot":"","sources":["../../jsr/public/audience-arms-store.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,24 @@
1
- import { type AudienceArmState, type AudiencePolicy } from "@vibes.diy/api-types";
1
+ import { type AudienceArmState, type AudiencePolicy, type StoredAudienceArm } from "@vibes.diy/api-types";
2
2
  import { VibesApiSQLCtx } from "../types.js";
3
- import { type ArmKey } from "./audience-arms-store.js";
3
+ import { Result } from "@adviser/cement";
4
+ import { stampSensitiveJoins, type ArmKey } from "./audience-arms-store.js";
4
5
  export declare function getAppPrivacySensitive(vctx: VibesApiSQLCtx, key: {
5
6
  ownerHandle: string;
6
7
  appSlug: string;
7
8
  }): Promise<boolean>;
9
+ export declare function getSubjectPrivacySensitive(vctx: VibesApiSQLCtx, key: ArmKey): Promise<boolean>;
10
+ export declare function ensureSensitiveJoinStamp(vctx: VibesApiSQLCtx, key: ArmKey, deps?: {
11
+ readonly stamp?: typeof stampSensitiveJoins;
12
+ }): Promise<Result<{
13
+ readonly row: StoredAudienceArm | null;
14
+ readonly appSensitive: boolean;
15
+ }>>;
16
+ export declare function resolveSubjectArmOnOpen(vctx: VibesApiSQLCtx, key: ArmKey, deps?: {
17
+ readonly stamp?: typeof stampSensitiveJoins;
18
+ }): Promise<Result<{
19
+ readonly state: AudienceArmState | null;
20
+ readonly sensitive: boolean;
21
+ }>>;
8
22
  export declare function audiencePoliciesFor(vctx: VibesApiSQLCtx, handles: string[]): Promise<Map<string, AudiencePolicy>>;
9
23
  export declare function effectiveAudienceVisibilities(vctx: VibesApiSQLCtx, input: {
10
24
  ownerHandle: string;
@@ -1,11 +1,34 @@
1
1
  import { inArray } from "drizzle-orm/sql/expressions";
2
- import { ActiveEntry, effectiveAudienceVisibility, isActiveAudiencePolicy, isActivePrivacySensitive, parseArrayWarning, } from "@vibes.diy/api-types";
3
- import { armStatesForSubjects } from "./audience-arms-store.js";
2
+ import { ActiveEntry, effectiveAudienceVisibility, isActiveAudiencePolicy, isActivePrivacySensitive, isSensitiveJoinStamp, parseArrayWarning, subjectAudienceInputs, } from "@vibes.diy/api-types";
3
+ import { exception2Result, Result } from "@adviser/cement";
4
+ import { armRowsForSubjects, getArmRow, stampSensitiveJoins } from "./audience-arms-store.js";
4
5
  import { readComposedSettingsForApp } from "./app-setting-items.js";
5
6
  export async function getAppPrivacySensitive(vctx, key) {
6
7
  const entries = await readComposedSettingsForApp(vctx, key.ownerHandle, key.appSlug);
7
8
  return entries.find(isActivePrivacySensitive)?.sensitive === true;
8
9
  }
10
+ export async function getSubjectPrivacySensitive(vctx, key) {
11
+ const [row, appSensitive] = await Promise.all([getArmRow(vctx, key), getAppPrivacySensitive(vctx, key)]);
12
+ return appSensitive || isSensitiveJoinStamp(row);
13
+ }
14
+ export async function ensureSensitiveJoinStamp(vctx, key, deps = {}) {
15
+ const stamp = deps.stamp ?? stampSensitiveJoins;
16
+ const [row, appSensitive] = await Promise.all([getArmRow(vctx, key), getAppPrivacySensitive(vctx, key)]);
17
+ if (row === null && appSensitive) {
18
+ const rStamp = await exception2Result(() => stamp(vctx, { ownerHandle: key.ownerHandle, appSlug: key.appSlug, subjects: [key.subjectHandle] }));
19
+ if (rStamp.isErr()) {
20
+ console.error("sensitive-join stamp failed:", rStamp.Err());
21
+ return Result.Err(rStamp.Err());
22
+ }
23
+ }
24
+ return Result.Ok({ row, appSensitive });
25
+ }
26
+ export async function resolveSubjectArmOnOpen(vctx, key, deps = {}) {
27
+ const r = await ensureSensitiveJoinStamp(vctx, key, deps);
28
+ if (r.isErr())
29
+ return Result.Err(r.Err());
30
+ return Result.Ok(subjectAudienceInputs({ row: r.Ok().row, appSensitive: r.Ok().appSensitive }));
31
+ }
9
32
  function parseEntries(settings) {
10
33
  const { filtered } = parseArrayWarning(settings ?? [], ActiveEntry);
11
34
  return filtered;
@@ -27,16 +50,19 @@ export async function effectiveAudienceVisibilities(vctx, input) {
27
50
  const out = new Map();
28
51
  if (input.subjects.length === 0)
29
52
  return out;
30
- const states = await armStatesForSubjects(vctx, input);
31
- const rowless = input.subjects.filter((subject) => states.has(subject) === false);
32
- const needsSensitive = rowless.length > 0 || [...states.values()].some((state) => state === "public");
33
- const [sensitive, policies] = await Promise.all([
53
+ const rows = await armRowsForSubjects(vctx, input);
54
+ const rowless = input.subjects.filter((subject) => {
55
+ const row = rows.get(subject);
56
+ return row === undefined || isSensitiveJoinStamp(row);
57
+ });
58
+ const needsSensitive = rowless.length > 0 || [...rows.values()].some((row) => row.state === "public");
59
+ const [appSensitive, policies] = await Promise.all([
34
60
  needsSensitive ? getAppPrivacySensitive(vctx, input) : Promise.resolve(false),
35
61
  rowless.length > 0 ? audiencePoliciesFor(vctx, rowless) : Promise.resolve(new Map()),
36
62
  ]);
37
63
  for (const subject of input.subjects) {
38
- const state = states.get(subject);
39
- out.set(subject, effectiveAudienceVisibility({ state: state ?? null, sensitive, policy: policies.get(subject) ?? null }));
64
+ const inputs = subjectAudienceInputs({ row: rows.get(subject), appSensitive });
65
+ out.set(subject, effectiveAudienceVisibility({ ...inputs, policy: policies.get(subject) ?? null }));
40
66
  }
41
67
  return out;
42
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audience-effective-arm.js","sourceRoot":"","sources":["../../jsr/public/audience-effective-arm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EACL,WAAW,EAGX,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,oBAAoB,EAAe,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AASpE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAoB,EACpB,GAA6C;IAE7C,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACrF,OAAO,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;AACpE,CAAC;AAED,SAAS,YAAY,CAAC,QAAiB;IACrC,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAE,QAAsB,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;IACnF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAoB,EAAE,OAAiB;IAC/E,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5H,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtE,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAAoB,EACpB,KAAmE;IAEnE,MAAM,GAAG,GAAG,IAAI,GAAG,EAA4B,CAAC;IAChD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC;IAIlF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;IACtG,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7E,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,EAA0B,CAAC;KAC7G,CAAC,CAAC;IAEH,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAGlC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,2BAA2B,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5H,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAoB,EACpB,KAAmE;IAEnE,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChE,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAoB,EAAE,GAAW;IACxE,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE;QAC/C,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"audience-effective-arm.js","sourceRoot":"","sources":["../../jsr/public/audience-effective-arm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EACL,WAAW,EAGX,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,mBAAmB,EAAe,MAAM,0BAA0B,CAAC;AAC3G,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAcpE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAoB,EACpB,GAA6C;IAE7C,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACrF,OAAO,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;AACpE,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAAoB,EAAE,GAAW;IAChF,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACzG,OAAO,YAAY,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAoB,EACpB,GAAW,EACX,IAAI,GAAoD,EAAE;IAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACzG,IAAI,GAAG,KAAK,IAAI,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACzC,KAAK,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CACnG,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5D,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;AAC1C,CAAC;AAcD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAoB,EACpB,GAAW,EACX,IAAI,GAAoD,EAAE;IAE1D,MAAM,CAAC,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,YAAY,CAAC,QAAiB;IACrC,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAE,QAAsB,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;IACnF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAoB,EAAE,OAAiB;IAC/E,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5H,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtE,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAAoB,EACpB,KAAmE;IAEnE,MAAM,GAAG,GAAG,IAAI,GAAG,EAA4B,CAAC;IAChD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAE5C,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAInD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,GAAG,KAAK,SAAS,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAIH,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;IACtG,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjD,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7E,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,EAA0B,CAAC;KAC7G,CAAC,CAAC;IAEH,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAIrC,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAC/E,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,2BAA2B,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAoB,EACpB,KAAmE;IAEnE,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChE,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAoB,EAAE,GAAW;IACxE,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE;QAC/C,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Result, Option, EventoResult, URI, exception2Result, } from "@adviser/cement";
2
2
  import { isFetchErrResult, isFetchNotFoundResult, isFetchOkResult, } from "@vibes.diy/api-types";
3
+ import { CORS_OMIT, CORS_PUBLIC } from "../svc-http-send-provider.js";
3
4
  import { dataUriBody, isInlineServable, resolveServableAsset } from "../intern/resolve-servable-asset.js";
4
5
  import { resolveCidAssetAccess } from "./cid-asset-access.js";
5
6
  export const cidAsset = {
@@ -50,6 +51,7 @@ export const cidAsset = {
50
51
  "Cache-Control": access.public ? servable.cacheControl : "private, no-store",
51
52
  Vary: "Cookie, Authorization",
52
53
  ...(servable.state === "disabled" ? {} : { ETag: servable.etag }),
54
+ "Access-Control-Allow-Origin": access.public ? CORS_PUBLIC : CORS_OMIT,
53
55
  };
54
56
  if (isInlineServable(servable)) {
55
57
  ctx.send.send(ctx, {
@@ -1 +1 @@
1
- {"version":3,"file":"cid-asset.js","sourceRoot":"","sources":["../../jsr/public/cid-asset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cid-asset.js","sourceRoot":"","sources":["../../jsr/public/cid-asset.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export async function resolveDbAccess({ vctx, ownerHandle, appSlug, dbName }) {
31
31
  entry,
32
32
  settingsCreated: rSettings.Ok().created,
33
33
  });
34
- const wildcard = wildcardFor(posture, anonWrite);
34
+ const wildcard = wildcardFor(posture, anonWrite, entry.editorWritesOnly);
35
35
  const stored = entry.dbAcls?.[dbName];
36
36
  if (stored !== undefined)
37
37
  return Result.Ok({ posture, wildcard, pin: stored });
@@ -1 +1 @@
1
- {"version":3,"file":"db-acl-resolver.js","sourceRoot":"","sources":["../../jsr/public/db-acl-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-acl-resolver.js","sourceRoot":"","sources":["../../jsr/public/db-acl-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Result, Option, EventoResult, exception2Result } from "@adviser/cement";
2
- import { settingsAreAnyoneReadable, isActiveCachedSuggestion, isActiveDbAcl, isActiveTheme, isActiveLayoutArchetype, isActiveFlourishes, isActiveEnv, isActiveIconDescription, isActiveModelSettingRuntime, isActiveModelSettingCodegen, isActiveModelSettingImg, isActiveColorTheme, isActiveStyle, isDraftStyle, isActiveAnonWrite, isActivePrivacySensitive, isActiveSkills, isReqEnsureAppSettingsColorTheme, isReqEnsureAppSettingsStyle, isReqEnsureAppSettingsDraftStyle, isReqEnsureAppSettingsStylePublish, isReqEnsureAppSettingsIconDescription, isReqEnsureAppSettingsIconRegen, isReqEnsureAppSettingsImg, isReqEnsureAppSettingsPrivacySensitive, isReqEnsureAppSettingsSkills, isReqEnsureAppSettingsTheme, isReqEnsureAppSettingsVariety, isActiveTitle, isEnableRequest, isReqEnsureAppSettings, isReqEnsureAppSettingsRuntime, isReqEnsureAppSettingsCodegen, isReqEnsureAppSettingsCachedSuggestion, isReqEnsureAppSettingsCachedSuggestionBless, isReqEnsureAppSettingsDbAcl, isReqEnsureAppSettingsDbAclRemove, isReqEnsureAppSettingsEnv, isReqEnsureAppSettingsSecretSet, isReqEnsureAppSettingsSecretRemove, isReqEnsureAppSettingsTitle, isReqEnsureAppSettingsRecommendedAdd, isReqEnsureAppSettingsRecommendedRemove, isReqEnsureAppSettingsRecommendedMask, isActiveRecommendedCurated, isActiveRecommendedMasked, RECOMMENDED_CURATED_CAP, RECOMMENDED_MASKED_CAP, isReqEnsureAppSettingsAnonWrite, isReqEnsureAppSettingsPosture, isActivePosture, postureLegacySettings, wizardDefaultPosture, isReqPublicAccess, isReqRequest, } from "@vibes.diy/api-types";
2
+ import { settingsAreAnyoneReadable, isActiveAppNature, effectiveAppNature, isReqEnsureAppSettingsAppNature, isActiveCachedSuggestion, isActiveDbAcl, isActiveTheme, isActiveLayoutArchetype, isActiveFlourishes, isActiveEnv, isActiveIconDescription, isActiveModelSettingRuntime, isActiveModelSettingCodegen, isActiveModelSettingImg, isActiveColorTheme, isActiveStyle, isDraftStyle, isActiveAnonWrite, isActiveEditorWritesOnly, isActivePrivacySensitive, isActiveSkills, isReqEnsureAppSettingsColorTheme, isReqEnsureAppSettingsStyle, isReqEnsureAppSettingsDraftStyle, isReqEnsureAppSettingsStylePublish, isReqEnsureAppSettingsIconDescription, isReqEnsureAppSettingsIconRegen, isReqEnsureAppSettingsImg, isReqEnsureAppSettingsPrivacySensitive, isReqEnsureAppSettingsSkills, isReqEnsureAppSettingsTheme, isReqEnsureAppSettingsVariety, isActiveTitle, isEnableRequest, isReqEnsureAppSettings, isReqEnsureAppSettingsRuntime, isReqEnsureAppSettingsCodegen, isReqEnsureAppSettingsCachedSuggestion, isReqEnsureAppSettingsCachedSuggestionBless, isReqEnsureAppSettingsDbAcl, isReqEnsureAppSettingsDbAclRemove, isReqEnsureAppSettingsEnv, isReqEnsureAppSettingsSecretSet, isReqEnsureAppSettingsSecretRemove, isReqEnsureAppSettingsTitle, isReqEnsureAppSettingsRecommendedAdd, isReqEnsureAppSettingsRecommendedRemove, isReqEnsureAppSettingsRecommendedMask, isActiveRecommendedCurated, isActiveRecommendedMasked, RECOMMENDED_CURATED_CAP, RECOMMENDED_MASKED_CAP, isReqEnsureAppSettingsAnonWrite, isReqEnsureAppSettingsEditorWritesOnly, isReqEnsureAppSettingsPosture, isActivePosture, postureLegacySettings, wizardDefaultPosture, isReqPublicAccess, isReqRequest, } from "@vibes.diy/api-types";
3
3
  import { ensureLogger } from "@vibes.diy/identity";
4
4
  import { unwrapMsgBase } from "../unwrap-msg-base.js";
5
5
  import { optAuth } from "../check-auth.js";
@@ -11,6 +11,7 @@ import { stampableStyleForTheme, styleForLookColorway, styleForTheme } from "../
11
11
  import { THEME_SLUGS, isKnownThemeSlug } from "@vibes.diy/prompts/themes/theme-slugs.js";
12
12
  import { hasLookColorways, validateColorwayPinForLook, validateVarietyPinForLook } from "@vibes.diy/prompts/themes/looks/index.js";
13
13
  import { buildEnsureEntryResult, sqlPromoteDraftStyle, sqlRemove, sqlUpsert, sqlUpsertMulti } from "./app-settings-sql-upsert.js";
14
+ import { LOWER_OWNER_ONLY, LOWER_STAMP_FAILED, privacySensitiveLowerCoverage, runLowerAfterFlipHookForTests, runLowerBeforeFlipHookForTests, stampEveryKnownWriter, } from "./privacy-sensitive-lower.js";
14
15
  import { readComposedSettings } from "./app-setting-items.js";
15
16
  import { selectAppSettingsRecord } from "./app-settings-snapshot.js";
16
17
  import { applySecretOp, redactModelApiKeys, redactSecretEntries } from "./app-settings-secrets.js";
@@ -81,6 +82,61 @@ async function withdrawAppClipCardIfReadRemoved(vctx, target, before, after) {
81
82
  return;
82
83
  await enqueueAppClipDeactivate(vctx, { ownerHandle: target.ownerHandle, appSlug: target.appSlug });
83
84
  }
85
+ async function applyPrivacySensitiveWrite(vctx, args) {
86
+ const { res, settings, value, now } = args;
87
+ const current = settings.find(isActivePrivacySensitive);
88
+ const currentlySensitive = current?.sensitive === true;
89
+ const isLower = value === false && currentlySensitive;
90
+ if (isLower && args.mayLower === false)
91
+ return [res.settings, LOWER_OWNER_ONLY];
92
+ if (isLower) {
93
+ const coverage = args.skipCoverage === true ? { ok: true } : privacySensitiveLowerCoverage({ flag: current });
94
+ if (coverage.ok === false)
95
+ return [res.settings, coverage.error];
96
+ const rStamp = await exception2Result(() => stampEveryKnownWriter(vctx, { ownerHandle: res.ownerHandle, appSlug: res.appSlug }));
97
+ if (rStamp.isErr()) {
98
+ console.error("privacy-sensitive lower: join-stamp pass failed, flag left on:", rStamp.Err());
99
+ return [res.settings, LOWER_STAMP_FAILED];
100
+ }
101
+ await runLowerBeforeFlipHookForTests();
102
+ }
103
+ const genuineRaise = value === true && currentlySensitive === false;
104
+ const nextFlag = value === false
105
+ ? { type: "active.privacy-sensitive", sensitive: false }
106
+ : genuineRaise || current === undefined
107
+ ? { type: "active.privacy-sensitive", sensitive: true, joinStampsSince: now }
108
+ : current;
109
+ const [nextSettings, error] = await sqlUpsertMulti(vctx, res, settings, {
110
+ upserts: args.withNature === undefined ? [nextFlag] : [args.withNature, nextFlag],
111
+ });
112
+ if (isLower && error === undefined) {
113
+ const rRestamp = await exception2Result(async () => {
114
+ await runLowerAfterFlipHookForTests();
115
+ return stampEveryKnownWriter(vctx, { ownerHandle: res.ownerHandle, appSlug: res.appSlug });
116
+ });
117
+ if (rRestamp.isErr()) {
118
+ console.error("privacy-sensitive lower: post-flip re-stamp failed, restoring the flag:", rRestamp.Err());
119
+ const previousNature = settings.find(isActiveAppNature);
120
+ const [restored] = await sqlUpsertMulti(vctx, res, args.withNature === undefined ? settings : [...settings, args.withNature], {
121
+ upserts: [
122
+ current ?? { type: "active.privacy-sensitive", sensitive: true },
123
+ ...(previousNature === undefined ? [] : [previousNature]),
124
+ ],
125
+ removeMatch: (e) => args.withNature !== undefined && previousNature === undefined && isActiveAppNature(e),
126
+ });
127
+ const rTeardown = await exception2Result(() => revokeAppAudienceKeysForUnsetSubjects(vctx, { ownerHandle: res.ownerHandle, appSlug: res.appSlug }));
128
+ if (rTeardown.isErr())
129
+ console.error("restore teardown failed (degrade-to-resubscribe):", rTeardown.Err());
130
+ return [restored, LOWER_STAMP_FAILED];
131
+ }
132
+ }
133
+ if (error === undefined && genuineRaise) {
134
+ const rRaise = await exception2Result(() => revokeAppAudienceKeysForUnsetSubjects(vctx, { ownerHandle: res.ownerHandle, appSlug: res.appSlug }));
135
+ if (rRaise.isErr())
136
+ console.error("audience sensitive-raise teardown failed (degrade-to-resubscribe):", rRaise.Err());
137
+ }
138
+ return [nextSettings, error];
139
+ }
84
140
  export async function ensureAppSettings(vctx, req, userId, opts) {
85
141
  const rPrev = await selectAppSettingsRecord(vctx, req.ownerHandle, req.appSlug);
86
142
  if (rPrev.isErr()) {
@@ -132,6 +188,20 @@ export async function ensureAppSettings(vctx, req, userId, opts) {
132
188
  created: now,
133
189
  });
134
190
  }
191
+ if (isReqEnsureAppSettingsEditorWritesOnly(req) && isOwnerOrDeveloper === false) {
192
+ return Result.Ok({
193
+ type: "vibes.diy.res-ensure-app-settings",
194
+ userId: record?.UserSlugBindings.userId ?? "------",
195
+ appSlug: req.appSlug,
196
+ ledger: record?.AppSlugBindings.ledger ?? req.appSlug,
197
+ ownerHandle: req.ownerHandle,
198
+ tenant: record?.UserSlugBindings.tenant ?? req.ownerHandle,
199
+ error: "owner-only:editor-writes-only",
200
+ settings: buildEnsureEntryResult([]),
201
+ updated: now,
202
+ created: now,
203
+ });
204
+ }
135
205
  if (userId === undefined || (isOwnerOrDeveloper === false && isAdminBless === false && isAdminPrivacySensitiveLower === false)) {
136
206
  if (!record) {
137
207
  return Result.Ok({
@@ -194,10 +264,17 @@ export async function ensureAppSettings(vctx, req, userId, opts) {
194
264
  };
195
265
  if (isAdminBless || isAdminPrivacySensitiveLower) {
196
266
  if (isReqEnsureAppSettingsPrivacySensitive(req)) {
197
- [res.settings, res.error] = await sqlUpsert(vctx, res, settings, isActivePrivacySensitive, () => ({ type: "active.privacy-sensitive", sensitive: false }));
267
+ [res.settings, res.error] = await applyPrivacySensitiveWrite(vctx, {
268
+ res,
269
+ settings,
270
+ value: false,
271
+ now,
272
+ skipCoverage: true,
273
+ mayLower: true,
274
+ });
198
275
  if (res.error === undefined) {
199
276
  logAdminOverride(vctx, {
200
- op: "privacy-sensitive-lower",
277
+ op: "privacy-sensitive-lower-on-behalf",
201
278
  actingUserId: approverUserId,
202
279
  ownerHandle: req.ownerHandle,
203
280
  appSlug: req.appSlug,
@@ -425,26 +502,35 @@ export async function ensureAppSettings(vctx, req, userId, opts) {
425
502
  break;
426
503
  }
427
504
  case isReqEnsureAppSettingsPrivacySensitive(req): {
505
+ [res.settings, res.error] = await applyPrivacySensitiveWrite(vctx, {
506
+ res,
507
+ settings,
508
+ value: req.privacySensitive,
509
+ now,
510
+ mayLower: isOwner,
511
+ });
512
+ break;
513
+ }
514
+ case isReqEnsureAppSettingsAppNature(req): {
515
+ const wanted = req.appNature;
428
516
  const currentlySensitive = settings.find(isActivePrivacySensitive)?.sensitive === true;
429
- const isElevatedLower = req.privacySensitive === false && currentlySensitive && isPlatformAdminHere;
430
- if (req.privacySensitive === false && currentlySensitive && !isElevatedLower) {
431
- res.error = "privacy-sensitive:owner-lower-forbidden";
517
+ if (wanted === "sensitive") {
518
+ [res.settings, res.error] = await applyPrivacySensitiveWrite(vctx, { res, settings, value: true, now, mayLower: isOwner });
432
519
  break;
433
520
  }
434
- [res.settings, res.error] = await sqlUpsert(vctx, res, settings, isActivePrivacySensitive, () => ({ type: "active.privacy-sensitive", sensitive: req.privacySensitive }));
435
- if (isElevatedLower && res.error === undefined) {
436
- logAdminOverride(vctx, {
437
- op: "privacy-sensitive-lower",
438
- actingUserId: approverUserId,
439
- ownerHandle: req.ownerHandle,
440
- appSlug: req.appSlug,
521
+ const natureRow = { type: "active.app-nature", nature: wanted };
522
+ if (currentlySensitive) {
523
+ [res.settings, res.error] = await applyPrivacySensitiveWrite(vctx, {
524
+ res,
525
+ settings,
526
+ value: false,
527
+ now,
528
+ mayLower: isOwner,
529
+ withNature: natureRow,
441
530
  });
531
+ break;
442
532
  }
443
- if (res.error === undefined && req.privacySensitive === true && currentlySensitive === false) {
444
- const rRaise = await exception2Result(() => revokeAppAudienceKeysForUnsetSubjects(vctx, { ownerHandle: res.ownerHandle, appSlug: res.appSlug }));
445
- if (rRaise.isErr())
446
- console.error("audience sensitive-raise teardown failed (degrade-to-resubscribe):", rRaise.Err());
447
- }
533
+ [res.settings, res.error] = await sqlUpsert(vctx, res, settings, isActiveAppNature, () => natureRow);
448
534
  break;
449
535
  }
450
536
  case isReqEnsureAppSettingsRuntime(req):
@@ -561,7 +647,12 @@ export async function ensureAppSettings(vctx, req, userId, opts) {
561
647
  break;
562
648
  }
563
649
  case isReqEnsureAppSettingsPosture(req): {
564
- const posture = req.posture === "default" ? wizardDefaultPosture(settings.find(isActivePrivacySensitive)?.sensitive) : req.posture;
650
+ const posture = req.posture === "default"
651
+ ? wizardDefaultPosture(effectiveAppNature({
652
+ privacySensitive: settings.find(isActivePrivacySensitive)?.sensitive,
653
+ stored: settings.find(isActiveAppNature)?.nature,
654
+ }))
655
+ : req.posture;
565
656
  const legacy = postureLegacySettings(posture);
566
657
  const prevAutoAcceptRole = settings.find(isEnableRequest)?.autoAcceptRole;
567
658
  [res.settings, res.error] = await sqlUpsertMulti(vctx, res, settings, {
@@ -598,6 +689,12 @@ export async function ensureAppSettings(vctx, req, userId, opts) {
598
689
  mode: req.anonWrite,
599
690
  }));
600
691
  break;
692
+ case isReqEnsureAppSettingsEditorWritesOnly(req):
693
+ [res.settings, res.error] = await sqlUpsert(vctx, res, settings, isActiveEditorWritesOnly, () => ({
694
+ type: "active.editor-writes-only",
695
+ enable: req.editorWritesOnly,
696
+ }));
697
+ break;
601
698
  case isReqEnsureAppSettingsDbAcl(req):
602
699
  if (req.dbAcl.dbName === "*") {
603
700
  res.error = "db-acl:wildcard-reserved";