@opengeni/db 0.31.1 → 0.36.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.
- package/dist/browser-auth.d.ts +209 -1
- package/dist/browser-downloads.d.ts +51 -0
- package/dist/browser-identities.d.ts +11 -2
- package/dist/browser-sessions.d.ts +83 -1
- package/dist/browser-state-artifacts.d.ts +75 -1
- package/dist/canonical-human-identities.d.ts +48 -0
- package/dist/canonical-human-identities.js +28 -0
- package/dist/canonical-human-identities.js.map +1 -0
- package/dist/capability-integrations.d.ts +8 -6
- package/dist/{chunk-MWDVXQOL.js → chunk-5KTIEDX7.js} +5773 -4212
- package/dist/chunk-5KTIEDX7.js.map +1 -0
- package/dist/{chunk-NBE6CHRI.js → chunk-CQZ4QSP5.js} +49 -9
- package/dist/chunk-CQZ4QSP5.js.map +1 -0
- package/dist/chunk-F32YT7MP.js +117 -0
- package/dist/chunk-F32YT7MP.js.map +1 -0
- package/dist/{chunk-ISI2TIUG.js → chunk-JC5QPLUM.js} +30 -3
- package/dist/chunk-JC5QPLUM.js.map +1 -0
- package/dist/{chunk-F5FT7BEZ.js → chunk-P3RE4D2B.js} +2 -2
- package/dist/chunk-TAUTWOS5.js +259 -0
- package/dist/chunk-TAUTWOS5.js.map +1 -0
- package/dist/{chunk-YHZXQ7HP.js → chunk-VKLB2ZGI.js} +446 -19
- package/dist/chunk-VKLB2ZGI.js.map +1 -0
- package/dist/database.d.ts +5 -0
- package/dist/editable-artifact-durable-export.js +2 -2
- package/dist/editable-artifacts.js +3 -3
- package/dist/index.d.ts +438 -29
- package/dist/index.js +35640 -28969
- package/dist/index.js.map +1 -1
- package/dist/insights.d.ts +23 -7
- package/dist/integration-bindings.d.ts +24 -24
- package/dist/integration-facets.d.ts +99 -0
- package/dist/interaction-revisions.d.ts +11 -0
- package/dist/interaction-schema.d.ts +698 -34
- package/dist/provision-roles.js +1 -1
- package/dist/runtime-posture.d.ts +8 -7
- package/dist/schema.d.ts +9464 -5412
- package/dist/schema.js +51 -9
- package/dist/session-control.d.ts +29 -3
- package/dist/session-tenancy.d.ts +44 -0
- package/dist/session-tenancy.js +16 -0
- package/dist/session-tenancy.js.map +1 -0
- package/dist/slack-task-policy-schema.d.ts +847 -0
- package/dist/slack-task-policy.d.ts +65 -0
- package/dist/task-notes-schema.d.ts +924 -0
- package/dist/task-notes.d.ts +85 -0
- package/dist/video-generation.d.ts +9 -0
- package/dist/video-generation.js +5 -3
- package/dist/xai-subscription.d.ts +326 -0
- package/drizzle/0212_browser_state_transfer_hardening.sql +560 -0
- package/drizzle/0213_browser_interaction_authority.sql +67 -0
- package/drizzle/0214_browser_download_saves.sql +34 -0
- package/drizzle/0215_browser_controller_host.sql +385 -0
- package/drizzle/0216_browser_auth_health_evidence.sql +137 -0
- package/drizzle/0217_external_browser_auth_operations.sql +22 -0
- package/drizzle/0218_organization_tenancy_foundation.sql +299 -0
- package/drizzle/0219_organization_tenancy_managed_human_provisioning.sql +317 -0
- package/drizzle/0219_site_auth_maintenance_sessions.sql +234 -0
- package/drizzle/0220_memory_slack_append_only_cascade.sql +38 -0
- package/drizzle/0220_session_channels.sql +54 -0
- package/drizzle/0221_sessions_channel_index.sql +5 -0
- package/drizzle/0222_session_visibility_authority_epochs.sql +158 -0
- package/drizzle/0222_sessions_channel_fk.sql +89 -0
- package/drizzle/0223_pending_tool_event_output.sql +55 -0
- package/drizzle/0223_sessions_channel_fk_validate.sql +118 -0
- package/drizzle/0224_slack_post_outcome_reconciliation.sql +123 -0
- package/drizzle/0225_session_visibility_fork_activation.sql +1363 -0
- package/drizzle/0226_personal_codex_authority_foundation.sql +365 -0
- package/drizzle/0227_slack_native_actions.sql +145 -0
- package/drizzle/0228_interaction_controller_data_plane.sql +14 -0
- package/drizzle/0228_slack_task_policy.sql +400 -0
- package/drizzle/0229_slack_inbox_file_fact.sql +10 -0
- package/drizzle/0230_user_scoped_variable_sets_rigs.sql +84 -0
- package/drizzle/0231_integration_definition_identity_cutover.sql +271 -0
- package/drizzle/0232_integration_facet_authority_cutover.sql +610 -0
- package/drizzle/0233_skill_and_integration_authority_cutover.sql +1162 -0
- package/drizzle/0234_xai_subscription_authority.sql +1139 -0
- package/drizzle/0235_canonical_human_login_bindings.sql +920 -0
- package/drizzle/0236_browser_identity_lifecycle.sql +39 -0
- package/drizzle/0236_session_visibility_slack_policy.sql +72 -0
- package/drizzle/0237_interaction_transition_reaper.sql +263 -0
- package/drizzle/0238_goal_persistence_policy.sql +471 -0
- package/drizzle/0238_supergrok_realtime_model.sql +29 -0
- package/drizzle/0239_supergrok_video_funding.sql +50 -0
- package/drizzle/0239_task_tree_notes.sql +990 -0
- package/package.json +13 -5
- package/src/browser-auth.ts +2600 -123
- package/src/browser-downloads.ts +517 -0
- package/src/browser-identities.ts +220 -3
- package/src/browser-sessions.ts +334 -45
- package/src/browser-state-artifacts.ts +402 -12
- package/src/canonical-human-identities.ts +317 -0
- package/src/capability-integrations.ts +121 -213
- package/src/database.ts +41 -1
- package/src/index.ts +4157 -394
- package/src/insights.ts +109 -28
- package/src/integration-bindings.ts +101 -101
- package/src/{integration-features.ts → integration-facets.ts} +187 -184
- package/src/interaction-revisions.ts +33 -3
- package/src/interaction-schema.ts +311 -8
- package/src/pack-components.ts +43 -43
- package/src/pack-installations.ts +0 -43
- package/src/plugin-packages.ts +9 -9
- package/src/provision-roles.ts +232 -0
- package/src/runtime-posture.ts +227 -14
- package/src/schema.ts +1188 -75
- package/src/session-control.ts +122 -37
- package/src/session-queue-commands.ts +78 -1
- package/src/session-tenancy.ts +188 -0
- package/src/session-tool-call-settlement.ts +9 -3
- package/src/slack-task-policy-schema.ts +130 -0
- package/src/slack-task-policy.ts +341 -0
- package/src/task-notes-schema.ts +135 -0
- package/src/task-notes.ts +178 -0
- package/src/video-generation.ts +90 -12
- package/src/workspace-artifacts.ts +1 -1
- package/src/xai-subscription.ts +1887 -0
- package/dist/chunk-ISI2TIUG.js.map +0 -1
- package/dist/chunk-MWDVXQOL.js.map +0 -1
- package/dist/chunk-NBE6CHRI.js.map +0 -1
- package/dist/chunk-YHZXQ7HP.js.map +0 -1
- package/dist/integration-features.d.ts +0 -99
- /package/dist/{chunk-F5FT7BEZ.js.map → chunk-P3RE4D2B.js.map} +0 -0
package/src/database.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
1
2
|
import { eq, sql, type SQL } from "drizzle-orm";
|
|
2
3
|
import type { PgDatabase, PgTransactionConfig } from "drizzle-orm/pg-core";
|
|
3
4
|
import { drizzle } from "drizzle-orm/postgres-js";
|
|
@@ -50,6 +51,32 @@ export type RlsContext = {
|
|
|
50
51
|
workspaceId?: string | null;
|
|
51
52
|
};
|
|
52
53
|
|
|
54
|
+
export type SessionRlsActorContext = {
|
|
55
|
+
subjectId: string;
|
|
56
|
+
initiatingHumanSubjectId?: string | null;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const sessionRlsActorContext = new AsyncLocalStorage<SessionRlsActorContext>();
|
|
60
|
+
|
|
61
|
+
export async function withSessionRlsActorContext<T>(
|
|
62
|
+
actor: SessionRlsActorContext,
|
|
63
|
+
fn: () => Promise<T>,
|
|
64
|
+
): Promise<T> {
|
|
65
|
+
if (!actor.subjectId.trim()) {
|
|
66
|
+
throw new Error("withSessionRlsActorContext: a non-empty subjectId is required");
|
|
67
|
+
}
|
|
68
|
+
if (
|
|
69
|
+
actor.initiatingHumanSubjectId !== undefined &&
|
|
70
|
+
actor.initiatingHumanSubjectId !== null &&
|
|
71
|
+
!actor.initiatingHumanSubjectId.trim()
|
|
72
|
+
) {
|
|
73
|
+
throw new Error(
|
|
74
|
+
"withSessionRlsActorContext: initiatingHumanSubjectId must be null or non-empty",
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
return await sessionRlsActorContext.run(actor, fn);
|
|
78
|
+
}
|
|
79
|
+
|
|
53
80
|
type RlsContextSettings = {
|
|
54
81
|
accountId: string;
|
|
55
82
|
workspaceId: string;
|
|
@@ -329,7 +356,20 @@ export async function setRlsContext(db: Database, context: RlsContext): Promise<
|
|
|
329
356
|
// Old OpenGeni binaries do not set this GUC, so migration-installed update
|
|
330
357
|
// fences can distinguish their partial writes without inspecting content.
|
|
331
358
|
await db.execute(sql`select set_config('opengeni.lossless_content_writer', '1', true)`);
|
|
332
|
-
await db.execute(sql`select
|
|
359
|
+
await db.execute(sql`select
|
|
360
|
+
set_config('opengeni.sandbox_recovery_protocol_v2', '1', true),
|
|
361
|
+
set_config('opengeni.pending_tool_event_output_v1', '1', true)`);
|
|
362
|
+
const sessionActor = sessionRlsActorContext.getStore();
|
|
363
|
+
if (sessionActor) {
|
|
364
|
+
await setSubjectRlsContext(db, sessionActor.subjectId);
|
|
365
|
+
await db.execute(
|
|
366
|
+
sql`select set_config(
|
|
367
|
+
'opengeni.initiating_human_subject_id',
|
|
368
|
+
${sessionActor.initiatingHumanSubjectId ?? ""},
|
|
369
|
+
true
|
|
370
|
+
)`,
|
|
371
|
+
);
|
|
372
|
+
}
|
|
333
373
|
}
|
|
334
374
|
|
|
335
375
|
async function readRlsContextSettings(db: Database): Promise<RlsContextSettings> {
|