@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.
- package/dist/automations.d.ts +4 -0
- package/dist/canonical-human-identities.js +3 -3
- package/dist/capability-integrations.d.ts +2 -0
- package/dist/{chunk-6DPJA36C.js → chunk-2XEZK4LF.js} +7 -1
- package/dist/chunk-2XEZK4LF.js.map +1 -0
- package/dist/{chunk-4NAR7FBA.js → chunk-3RI33YQN.js} +67 -1
- package/dist/chunk-3RI33YQN.js.map +1 -0
- package/dist/{chunk-SZAWDXQC.js → chunk-CJROYHSC.js} +3 -3
- package/dist/{chunk-DZCYW2WT.js → chunk-MX6V5F65.js} +2 -2
- package/dist/{chunk-S3TDDCS2.js → chunk-N5VXJ4I2.js} +151 -78
- package/dist/chunk-N5VXJ4I2.js.map +1 -0
- package/dist/{chunk-U4WPPEBH.js → chunk-NLFHMPUB.js} +2 -2
- package/dist/{chunk-5NNCGFQY.js → chunk-P6NSEG2S.js} +2 -2
- package/dist/{chunk-O56DM5GZ.js → chunk-QM6YOWHZ.js} +624 -57
- package/dist/chunk-QM6YOWHZ.js.map +1 -0
- package/dist/{chunk-US4IS6IV.js → chunk-RZNOSEMC.js} +2 -2
- package/dist/{chunk-F6PBS6WE.js → chunk-UFAMOUWL.js} +2 -2
- package/dist/codemode-operations.d.ts +5 -0
- package/dist/codex-token-resolver.d.ts +6 -2
- package/dist/connection-token-resolver.d.ts +8 -0
- package/dist/editable-artifact-durable-export.js +2 -2
- package/dist/editable-artifacts.js +3 -3
- package/dist/generated-images.d.ts +15 -0
- package/dist/index.d.ts +393 -91
- package/dist/index.js +9992 -6069
- package/dist/index.js.map +1 -1
- package/dist/insights.d.ts +9 -0
- package/dist/managed-auth-session-sets.js +3 -3
- package/dist/managed-user-setup.d.ts +3 -0
- package/dist/mcp-oauth.d.ts +80 -0
- package/dist/migrate.d.ts +1 -0
- package/dist/migrate.js +3 -1
- package/dist/model-catalog.d.ts +153 -0
- package/dist/model-context-snapshots.d.ts +20 -0
- package/dist/new-session-drafts.d.ts +12 -0
- package/dist/organization-membership-lifecycle.d.ts +8 -1
- package/dist/organization-model-providers.d.ts +101 -0
- package/dist/pack-components.d.ts +1 -0
- package/dist/pr-review.d.ts +9 -0
- package/dist/provision-roles.js +1 -1
- package/dist/runtime-posture.d.ts +8 -8
- package/dist/schema.d.ts +7708 -5050
- package/dist/schema.js +25 -1
- package/dist/session-background-commands.d.ts +18 -6
- package/dist/session-background-commands.js +15 -9
- package/dist/session-control.d.ts +37 -2
- package/dist/session-goal-pacing.d.ts +3 -6
- package/dist/session-queue-commands.d.ts +17 -0
- package/dist/session-tenancy.js +3 -3
- package/dist/tool-gateway-approvals.d.ts +31 -0
- package/dist/video-generation.js +3 -3
- package/dist/workspace-artifacts.d.ts +17 -3
- package/dist/xai-subscription.d.ts +8 -0
- package/drizzle/0387_bound_host_export_session_payloads.sql +165 -0
- package/drizzle/0388_sandbox_provider_deadline_interactions.sql +491 -0
- package/drizzle/0389_model_catalog_and_gateway_custom_models.sql +241 -0
- package/drizzle/0390_organization_model_provider_connections.sql +197 -0
- package/drizzle/0391_sandbox_provider_deadline_interaction_followup.sql +295 -0
- package/drizzle/0392_context_compaction_pending_observability.sql +198 -0
- package/drizzle/0393_workspace_memory_and_learning_defaults.sql +102 -0
- package/drizzle/0394_session_selected_skill_activation.sql +20 -0
- package/drizzle/0395_scheduled_task_unclaimed_occurrence_invalidation.sql +154 -0
- package/drizzle/0396_model_call_equivalent_credit_cost.sql +28 -0
- package/drizzle/0397_sandbox_deadline_rotation_preemption.sql +113 -0
- package/drizzle/0398_organization_workspace_management_entry.sql +206 -0
- package/drizzle/0399_additional_managed_organization_creation.sql +691 -0
- package/drizzle/0400_session_attempt_model_context_snapshots.sql +65 -0
- package/drizzle/0401_organization_user_setup_token_transport.sql +178 -0
- package/drizzle/0402_session_input_wait_and_background_command_results.sql +1023 -0
- package/drizzle/0403_codex_unconditional_credential_leasing.sql +181 -0
- package/drizzle/0404_mcp_oauth_authorization_server.sql +471 -0
- package/drizzle/0405_tool_gateway_approval_capabilities.sql +184 -0
- package/drizzle/0406_workspace_html_site_sources.sql +71 -0
- package/package.json +6 -6
- package/src/automations.ts +9 -1
- package/src/capability-integrations.ts +8 -0
- package/src/codemode-operations.ts +31 -21
- package/src/codex-token-resolver.ts +16 -6
- package/src/connection-token-resolver.ts +52 -3
- package/src/generated-images.ts +70 -6
- package/src/index.ts +3894 -994
- package/src/insights-model-bundle.ts +54 -5
- package/src/insights.ts +53 -7
- package/src/managed-user-setup.ts +14 -3
- package/src/mcp-oauth.ts +488 -0
- package/src/migrate.ts +9 -1
- package/src/model-catalog.ts +682 -0
- package/src/model-context-snapshots.ts +151 -0
- package/src/new-session-drafts.ts +66 -21
- package/src/organization-membership-lifecycle.ts +47 -5
- package/src/organization-model-providers.ts +614 -0
- package/src/pack-components.ts +15 -2
- package/src/pr-review.ts +19 -0
- package/src/provision-roles.ts +4 -0
- package/src/runtime-posture.ts +64 -0
- package/src/schema.ts +666 -61
- package/src/session-background-commands.ts +180 -78
- package/src/session-control.ts +181 -12
- package/src/session-goal-pacing.ts +4 -8
- package/src/session-queue-commands.ts +157 -82
- package/src/tool-gateway-approvals.ts +168 -0
- package/src/workspace-artifacts.ts +633 -178
- package/src/xai-subscription.ts +66 -14
- package/dist/chunk-4NAR7FBA.js.map +0 -1
- package/dist/chunk-6DPJA36C.js.map +0 -1
- package/dist/chunk-O56DM5GZ.js.map +0 -1
- package/dist/chunk-S3TDDCS2.js.map +0 -1
- /package/dist/{chunk-SZAWDXQC.js.map → chunk-CJROYHSC.js.map} +0 -0
- /package/dist/{chunk-DZCYW2WT.js.map → chunk-MX6V5F65.js.map} +0 -0
- /package/dist/{chunk-U4WPPEBH.js.map → chunk-NLFHMPUB.js.map} +0 -0
- /package/dist/{chunk-5NNCGFQY.js.map → chunk-P6NSEG2S.js.map} +0 -0
- /package/dist/{chunk-US4IS6IV.js.map → chunk-RZNOSEMC.js.map} +0 -0
- /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.';
|