@opengeni/db 3.7.4 → 4.0.0-canary.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 (113) hide show
  1. package/dist/automations.d.ts +4 -0
  2. package/dist/canonical-human-identities.js +3 -3
  3. package/dist/capability-integrations.d.ts +2 -0
  4. package/dist/{chunk-6DPJA36C.js → chunk-2XEZK4LF.js} +7 -1
  5. package/dist/chunk-2XEZK4LF.js.map +1 -0
  6. package/dist/{chunk-4NAR7FBA.js → chunk-3RI33YQN.js} +67 -1
  7. package/dist/chunk-3RI33YQN.js.map +1 -0
  8. package/dist/{chunk-SZAWDXQC.js → chunk-CJROYHSC.js} +3 -3
  9. package/dist/{chunk-DZCYW2WT.js → chunk-MX6V5F65.js} +2 -2
  10. package/dist/{chunk-S3TDDCS2.js → chunk-N5VXJ4I2.js} +151 -78
  11. package/dist/chunk-N5VXJ4I2.js.map +1 -0
  12. package/dist/{chunk-U4WPPEBH.js → chunk-NLFHMPUB.js} +2 -2
  13. package/dist/{chunk-5NNCGFQY.js → chunk-P6NSEG2S.js} +2 -2
  14. package/dist/{chunk-O56DM5GZ.js → chunk-QM6YOWHZ.js} +624 -57
  15. package/dist/chunk-QM6YOWHZ.js.map +1 -0
  16. package/dist/{chunk-US4IS6IV.js → chunk-RZNOSEMC.js} +2 -2
  17. package/dist/{chunk-F6PBS6WE.js → chunk-UFAMOUWL.js} +2 -2
  18. package/dist/codemode-operations.d.ts +5 -0
  19. package/dist/codex-token-resolver.d.ts +6 -2
  20. package/dist/connection-token-resolver.d.ts +8 -0
  21. package/dist/editable-artifact-durable-export.js +2 -2
  22. package/dist/editable-artifacts.js +3 -3
  23. package/dist/generated-images.d.ts +15 -0
  24. package/dist/index.d.ts +393 -91
  25. package/dist/index.js +9992 -6069
  26. package/dist/index.js.map +1 -1
  27. package/dist/insights.d.ts +9 -0
  28. package/dist/managed-auth-session-sets.js +3 -3
  29. package/dist/managed-user-setup.d.ts +3 -0
  30. package/dist/mcp-oauth.d.ts +80 -0
  31. package/dist/migrate.d.ts +1 -0
  32. package/dist/migrate.js +3 -1
  33. package/dist/model-catalog.d.ts +153 -0
  34. package/dist/model-context-snapshots.d.ts +20 -0
  35. package/dist/new-session-drafts.d.ts +12 -0
  36. package/dist/organization-membership-lifecycle.d.ts +8 -1
  37. package/dist/organization-model-providers.d.ts +101 -0
  38. package/dist/pack-components.d.ts +1 -0
  39. package/dist/pr-review.d.ts +9 -0
  40. package/dist/provision-roles.js +1 -1
  41. package/dist/runtime-posture.d.ts +8 -8
  42. package/dist/schema.d.ts +7708 -5050
  43. package/dist/schema.js +25 -1
  44. package/dist/session-background-commands.d.ts +18 -6
  45. package/dist/session-background-commands.js +15 -9
  46. package/dist/session-control.d.ts +37 -2
  47. package/dist/session-goal-pacing.d.ts +3 -6
  48. package/dist/session-queue-commands.d.ts +17 -0
  49. package/dist/session-tenancy.js +3 -3
  50. package/dist/tool-gateway-approvals.d.ts +31 -0
  51. package/dist/video-generation.js +3 -3
  52. package/dist/workspace-artifacts.d.ts +17 -3
  53. package/dist/xai-subscription.d.ts +8 -0
  54. package/drizzle/0387_bound_host_export_session_payloads.sql +165 -0
  55. package/drizzle/0388_sandbox_provider_deadline_interactions.sql +491 -0
  56. package/drizzle/0389_model_catalog_and_gateway_custom_models.sql +241 -0
  57. package/drizzle/0390_organization_model_provider_connections.sql +197 -0
  58. package/drizzle/0391_sandbox_provider_deadline_interaction_followup.sql +295 -0
  59. package/drizzle/0392_context_compaction_pending_observability.sql +198 -0
  60. package/drizzle/0393_workspace_memory_and_learning_defaults.sql +102 -0
  61. package/drizzle/0394_session_selected_skill_activation.sql +20 -0
  62. package/drizzle/0395_scheduled_task_unclaimed_occurrence_invalidation.sql +154 -0
  63. package/drizzle/0396_model_call_equivalent_credit_cost.sql +28 -0
  64. package/drizzle/0397_sandbox_deadline_rotation_preemption.sql +113 -0
  65. package/drizzle/0398_organization_workspace_management_entry.sql +206 -0
  66. package/drizzle/0399_additional_managed_organization_creation.sql +691 -0
  67. package/drizzle/0400_session_attempt_model_context_snapshots.sql +65 -0
  68. package/drizzle/0401_organization_user_setup_token_transport.sql +178 -0
  69. package/drizzle/0402_session_input_wait_and_background_command_results.sql +1023 -0
  70. package/drizzle/0403_codex_unconditional_credential_leasing.sql +181 -0
  71. package/drizzle/0404_mcp_oauth_authorization_server.sql +471 -0
  72. package/drizzle/0405_tool_gateway_approval_capabilities.sql +184 -0
  73. package/drizzle/0406_workspace_html_site_sources.sql +71 -0
  74. package/package.json +6 -6
  75. package/src/automations.ts +9 -1
  76. package/src/capability-integrations.ts +8 -0
  77. package/src/codemode-operations.ts +31 -21
  78. package/src/codex-token-resolver.ts +16 -6
  79. package/src/connection-token-resolver.ts +52 -3
  80. package/src/generated-images.ts +70 -6
  81. package/src/index.ts +3894 -994
  82. package/src/insights-model-bundle.ts +54 -5
  83. package/src/insights.ts +53 -7
  84. package/src/managed-user-setup.ts +14 -3
  85. package/src/mcp-oauth.ts +488 -0
  86. package/src/migrate.ts +9 -1
  87. package/src/model-catalog.ts +682 -0
  88. package/src/model-context-snapshots.ts +151 -0
  89. package/src/new-session-drafts.ts +66 -21
  90. package/src/organization-membership-lifecycle.ts +47 -5
  91. package/src/organization-model-providers.ts +614 -0
  92. package/src/pack-components.ts +15 -2
  93. package/src/pr-review.ts +19 -0
  94. package/src/provision-roles.ts +4 -0
  95. package/src/runtime-posture.ts +64 -0
  96. package/src/schema.ts +666 -61
  97. package/src/session-background-commands.ts +180 -78
  98. package/src/session-control.ts +181 -12
  99. package/src/session-goal-pacing.ts +4 -8
  100. package/src/session-queue-commands.ts +157 -82
  101. package/src/tool-gateway-approvals.ts +168 -0
  102. package/src/workspace-artifacts.ts +633 -178
  103. package/src/xai-subscription.ts +66 -14
  104. package/dist/chunk-4NAR7FBA.js.map +0 -1
  105. package/dist/chunk-6DPJA36C.js.map +0 -1
  106. package/dist/chunk-O56DM5GZ.js.map +0 -1
  107. package/dist/chunk-S3TDDCS2.js.map +0 -1
  108. /package/dist/{chunk-SZAWDXQC.js.map → chunk-CJROYHSC.js.map} +0 -0
  109. /package/dist/{chunk-DZCYW2WT.js.map → chunk-MX6V5F65.js.map} +0 -0
  110. /package/dist/{chunk-U4WPPEBH.js.map → chunk-NLFHMPUB.js.map} +0 -0
  111. /package/dist/{chunk-5NNCGFQY.js.map → chunk-P6NSEG2S.js.map} +0 -0
  112. /package/dist/{chunk-US4IS6IV.js.map → chunk-RZNOSEMC.js.map} +0 -0
  113. /package/dist/{chunk-F6PBS6WE.js.map → chunk-UFAMOUWL.js.map} +0 -0
@@ -0,0 +1,65 @@
1
+ -- deployment-mode: rolling
2
+ -- Persist the exact model-visible instruction/tool/skill prefix captured at
3
+ -- provider request time so the session Debug inspector can show what the
4
+ -- agent saw, including token estimates. Content-bearing on purpose; session
5
+ -- readers already see raw event payloads.
6
+
7
+ CREATE TABLE "session_attempt_model_context_snapshots" (
8
+ "attempt_id" uuid PRIMARY KEY,
9
+ "account_id" uuid NOT NULL,
10
+ "workspace_id" uuid NOT NULL,
11
+ "session_id" uuid NOT NULL,
12
+ "turn_id" uuid NOT NULL,
13
+ "execution_generation" integer NOT NULL,
14
+ "request_index" integer NOT NULL,
15
+ "captured_at" timestamp with time zone NOT NULL,
16
+ "snapshot" jsonb NOT NULL,
17
+ "created_at" timestamp with time zone NOT NULL,
18
+ "updated_at" timestamp with time zone NOT NULL,
19
+ CONSTRAINT "session_attempt_model_context_snapshots_attempt_owner_fk"
20
+ FOREIGN KEY ("account_id", "workspace_id", "session_id", "turn_id", "attempt_id")
21
+ REFERENCES "session_turn_attempts" ("account_id", "workspace_id", "session_id", "turn_id", "id")
22
+ ON DELETE CASCADE,
23
+ CONSTRAINT "session_attempt_model_context_snapshots_request_index_check"
24
+ CHECK ("request_index" > 0 AND "execution_generation" > 0),
25
+ CONSTRAINT "session_attempt_model_context_snapshots_size_check"
26
+ CHECK (octet_length("snapshot"::text) BETWEEN 2 AND 16777216),
27
+ CONSTRAINT "session_attempt_model_context_snapshots_identity_check"
28
+ CHECK (
29
+ jsonb_typeof("snapshot") = 'object'
30
+ AND "snapshot" ?& ARRAY[
31
+ 'version', 'capturedAt', 'source', 'requestIndex', 'instructions',
32
+ 'layers', 'tools', 'skills', 'tokens'
33
+ ]::text[]
34
+ AND ("snapshot"->>'version')::integer = 1
35
+ AND "snapshot"->>'source' = 'model_request'
36
+ AND jsonb_typeof("snapshot"->'layers') = 'array'
37
+ AND jsonb_typeof("snapshot"->'tools') = 'array'
38
+ AND jsonb_typeof("snapshot"->'skills') = 'array'
39
+ )
40
+ );
41
+
42
+ CREATE INDEX "session_attempt_model_context_snapshots_session_idx"
43
+ ON "session_attempt_model_context_snapshots" ("workspace_id", "session_id", "captured_at" DESC);
44
+
45
+ ALTER TABLE "session_attempt_model_context_snapshots" ENABLE ROW LEVEL SECURITY;
46
+ ALTER TABLE "session_attempt_model_context_snapshots" FORCE ROW LEVEL SECURITY;
47
+ CREATE POLICY workspace_isolation ON "session_attempt_model_context_snapshots"
48
+ USING (opengeni_private.workspace_rls_visible("account_id", "workspace_id"))
49
+ WITH CHECK (opengeni_private.workspace_rls_visible("account_id", "workspace_id"));
50
+
51
+ DO $grants$
52
+ DECLARE target_schema text := current_schema();
53
+ BEGIN
54
+ IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'opengeni_app') THEN
55
+ EXECUTE format(
56
+ 'REVOKE ALL ON TABLE %I.session_attempt_model_context_snapshots FROM opengeni_app',
57
+ target_schema
58
+ );
59
+ EXECUTE format(
60
+ 'GRANT SELECT, INSERT, UPDATE ON TABLE %I.session_attempt_model_context_snapshots TO opengeni_app',
61
+ target_schema
62
+ );
63
+ END IF;
64
+ END
65
+ $grants$;
@@ -0,0 +1,178 @@
1
+ -- deployment-mode: rolling
2
+ -- Freeze the setup-link transport at the same first-provider boundary as the
3
+ -- immutable payload digest. The nullable column preserves old API binaries in
4
+ -- fragment mode; the replacement v1 claim rolls back any attempted claim of a
5
+ -- query-frozen retry so only a 0401-aware v2 replica can service that row.
6
+ -- New binaries recover an already-prepared legacy row by matching its digest
7
+ -- before setting the missing transport.
8
+
9
+ ALTER TABLE organization_user_setup_deliveries
10
+ ADD COLUMN setup_token_transport text;
11
+
12
+ ALTER TABLE organization_user_setup_deliveries
13
+ ADD CONSTRAINT organization_user_setup_deliveries_token_transport_check
14
+ CHECK (setup_token_transport IS NULL OR setup_token_transport IN ('fragment', 'query'));
15
+
16
+ -- Preserve the original 0351 implementation as a private implementation
17
+ -- detail for the v2 capability. The public v1 name becomes a compatibility
18
+ -- fence: if an old replica reaches a query-frozen row, the raised exception
19
+ -- rolls back the nested claim/attempt changes before the transaction returns.
20
+ ALTER FUNCTION claim_organization_user_setup_delivery(jsonb)
21
+ RENAME TO claim_organization_user_setup_delivery_unfenced_0401;
22
+ ALTER FUNCTION claim_organization_user_setup_delivery_unfenced_0401(jsonb)
23
+ SET SCHEMA opengeni_private;
24
+
25
+ CREATE FUNCTION claim_organization_user_setup_delivery(p_command jsonb)
26
+ RETURNS jsonb
27
+ LANGUAGE plpgsql SECURITY DEFINER
28
+ SET search_path FROM CURRENT
29
+ AS $body$
30
+ DECLARE
31
+ result jsonb;
32
+ delivery_id_value uuid;
33
+ setup_token_transport_value text;
34
+ BEGIN
35
+ result := opengeni_private.claim_organization_user_setup_delivery_unfenced_0401(
36
+ p_command
37
+ );
38
+ IF result ->> 'claimed' IS DISTINCT FROM 'true' THEN
39
+ RETURN result;
40
+ END IF;
41
+ delivery_id_value := nullif(result #>> '{delivery,id}', '')::uuid;
42
+ PERFORM set_config(
43
+ 'opengeni.organization_tenancy_lifecycle', 'organization_membership_lifecycle', true
44
+ );
45
+ SELECT delivery.setup_token_transport INTO setup_token_transport_value
46
+ FROM organization_user_setup_deliveries delivery
47
+ WHERE delivery.id = delivery_id_value;
48
+ IF setup_token_transport_value = 'query' THEN
49
+ RAISE EXCEPTION
50
+ 'query-frozen organization setup delivery requires a 0401-aware API replica'
51
+ USING ERRCODE = '55000';
52
+ END IF;
53
+ RETURN result;
54
+ END
55
+ $body$;
56
+
57
+ CREATE FUNCTION claim_organization_user_setup_delivery_v2(p_command jsonb)
58
+ RETURNS jsonb
59
+ LANGUAGE plpgsql SECURITY DEFINER
60
+ SET search_path FROM CURRENT
61
+ AS $body$
62
+ DECLARE
63
+ result jsonb;
64
+ delivery_id_value uuid;
65
+ delivery organization_user_setup_deliveries%ROWTYPE;
66
+ BEGIN
67
+ result := opengeni_private.claim_organization_user_setup_delivery_unfenced_0401(
68
+ p_command
69
+ );
70
+ IF result ->> 'claimed' IS DISTINCT FROM 'true' THEN
71
+ RETURN result;
72
+ END IF;
73
+ delivery_id_value := nullif(result #>> '{delivery,id}', '')::uuid;
74
+ PERFORM set_config(
75
+ 'opengeni.organization_tenancy_lifecycle', 'organization_membership_lifecycle', true
76
+ );
77
+ SELECT * INTO delivery FROM organization_user_setup_deliveries candidate
78
+ WHERE candidate.id = delivery_id_value;
79
+ IF NOT FOUND THEN
80
+ RAISE EXCEPTION 'organization setup delivery is unavailable' USING ERRCODE = 'P0002';
81
+ END IF;
82
+ RETURN result || jsonb_build_object(
83
+ 'setupTokenTransport', delivery.setup_token_transport,
84
+ 'payloadDigest', delivery.payload_digest
85
+ );
86
+ END
87
+ $body$;
88
+
89
+ CREATE FUNCTION prepare_organization_user_setup_delivery_v2(p_command jsonb)
90
+ RETURNS jsonb
91
+ LANGUAGE plpgsql SECURITY DEFINER
92
+ SET search_path FROM CURRENT
93
+ AS $body$
94
+ DECLARE
95
+ delivery_id_value uuid := nullif(p_command ->> 'deliveryId', '')::uuid;
96
+ setup_token_transport_value text := p_command ->> 'setupTokenTransport';
97
+ result jsonb;
98
+ frozen_transport text;
99
+ BEGIN
100
+ IF delivery_id_value IS NULL
101
+ OR setup_token_transport_value IS NULL
102
+ OR setup_token_transport_value NOT IN ('fragment', 'query')
103
+ THEN
104
+ RAISE EXCEPTION 'organization setup delivery transport preparation is invalid'
105
+ USING ERRCODE = '42501';
106
+ END IF;
107
+ result := prepare_organization_user_setup_delivery(p_command);
108
+ UPDATE organization_user_setup_deliveries SET
109
+ setup_token_transport = coalesce(setup_token_transport, setup_token_transport_value)
110
+ WHERE id = delivery_id_value
111
+ AND (
112
+ setup_token_transport IS NULL
113
+ OR setup_token_transport = setup_token_transport_value
114
+ )
115
+ RETURNING setup_token_transport INTO frozen_transport;
116
+ IF NOT FOUND THEN
117
+ RAISE EXCEPTION 'organization setup delivery transport changed under retry'
118
+ USING ERRCODE = '23505';
119
+ END IF;
120
+ RETURN result || jsonb_build_object('setupTokenTransport', frozen_transport);
121
+ END
122
+ $body$;
123
+
124
+ DO $hardening$
125
+ DECLARE data_schema text := current_schema();
126
+ BEGIN
127
+ EXECUTE format(
128
+ 'ALTER FUNCTION opengeni_private.claim_organization_user_setup_delivery_unfenced_0401(jsonb) SET search_path = pg_catalog, %I, pg_temp',
129
+ data_schema
130
+ );
131
+ EXECUTE format(
132
+ 'ALTER FUNCTION %I.claim_organization_user_setup_delivery(jsonb) SET search_path = pg_catalog, %I, pg_temp',
133
+ data_schema, data_schema
134
+ );
135
+ EXECUTE format(
136
+ 'ALTER FUNCTION %I.claim_organization_user_setup_delivery_v2(jsonb) SET search_path = pg_catalog, %I, pg_temp',
137
+ data_schema, data_schema
138
+ );
139
+ EXECUTE format(
140
+ 'ALTER FUNCTION %I.prepare_organization_user_setup_delivery_v2(jsonb) SET search_path = pg_catalog, %I, pg_temp',
141
+ data_schema, data_schema
142
+ );
143
+ IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'opengeni_app') THEN
144
+ REVOKE ALL ON FUNCTION
145
+ opengeni_private.claim_organization_user_setup_delivery_unfenced_0401(jsonb)
146
+ FROM opengeni_app;
147
+ EXECUTE format(
148
+ 'GRANT EXECUTE ON FUNCTION %I.claim_organization_user_setup_delivery(jsonb) TO opengeni_app',
149
+ data_schema
150
+ );
151
+ EXECUTE format(
152
+ 'GRANT EXECUTE ON FUNCTION %I.claim_organization_user_setup_delivery_v2(jsonb) TO opengeni_app',
153
+ data_schema
154
+ );
155
+ EXECUTE format(
156
+ 'GRANT EXECUTE ON FUNCTION %I.prepare_organization_user_setup_delivery_v2(jsonb) TO opengeni_app',
157
+ data_schema
158
+ );
159
+ END IF;
160
+ END
161
+ $hardening$;
162
+
163
+ REVOKE ALL ON FUNCTION
164
+ opengeni_private.claim_organization_user_setup_delivery_unfenced_0401(jsonb) FROM PUBLIC;
165
+ REVOKE ALL ON FUNCTION claim_organization_user_setup_delivery(jsonb) FROM PUBLIC;
166
+ REVOKE ALL ON FUNCTION claim_organization_user_setup_delivery_v2(jsonb) FROM PUBLIC;
167
+ REVOKE ALL ON FUNCTION prepare_organization_user_setup_delivery_v2(jsonb) FROM PUBLIC;
168
+
169
+ COMMENT ON COLUMN organization_user_setup_deliveries.setup_token_transport IS
170
+ 'Fragment or query transport frozen at first preparation; NULL only for rolling old-binary rows pending digest recovery.';
171
+ COMMENT ON FUNCTION claim_organization_user_setup_delivery(jsonb) IS
172
+ 'Pre-0401 compatibility claim; rolls back query-frozen claims so a v2 replica can service them.';
173
+ COMMENT ON FUNCTION opengeni_private.claim_organization_user_setup_delivery_unfenced_0401(jsonb) IS
174
+ 'Private 0351 claim implementation used only by the 0401-aware v2 capability.';
175
+ COMMENT ON FUNCTION claim_organization_user_setup_delivery_v2(jsonb) IS
176
+ 'Rolling claim projection including the frozen setup transport and legacy payload digest.';
177
+ COMMENT ON FUNCTION prepare_organization_user_setup_delivery_v2(jsonb) IS
178
+ 'Prepares provider delivery and atomically freezes the setup-link transport.';