@opengeni/core 3.0.1 → 4.0.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/README.md +1 -1
- package/dist/application/connect-operation.d.ts +3 -0
- package/dist/application/sandbox-recovery.d.ts +49 -0
- package/dist/{chunk-H7X52RI2.js → chunk-TFHSE7XR.js} +13 -2
- package/dist/chunk-TFHSE7XR.js.map +1 -0
- package/dist/dependencies.d.ts +1 -1
- package/dist/domain/capabilities.d.ts +2 -2
- package/dist/domain/connection-account-selection-error.d.ts +6 -0
- package/dist/domain/connector-tool-permissions.d.ts +27 -0
- package/dist/domain/editable-artifacts/agent-application.d.ts +8 -0
- package/dist/domain/environments.d.ts +3 -7
- package/dist/domain/insights-timing.d.ts +16 -0
- package/dist/domain/insights.d.ts +4 -1
- package/dist/domain/knowledge-files.d.ts +1 -1
- package/dist/domain/knowledge-preparation.d.ts +9 -0
- package/dist/domain/knowledge-preparation.test.d.ts +1 -0
- package/dist/domain/mcp-account-bindings.d.ts +19 -0
- package/dist/domain/native-mcp-connection-admission.d.ts +3 -0
- package/dist/domain/organization-integration-catalog.d.ts +15 -0
- package/dist/domain/personal-connection-delegations.d.ts +19 -10
- package/dist/domain/pr-review.d.ts +56 -4
- package/dist/domain/scheduled-tasks.d.ts +8 -5
- package/dist/domain/session-file-access.d.ts +4 -0
- package/dist/domain/sessions.d.ts +8 -6
- package/dist/domain/skills.d.ts +29 -1
- package/dist/editable-artifacts.js +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.js +4868 -4803
- package/dist/index.js.map +1 -1
- package/dist/sandbox/routing.d.ts +2 -1
- package/dist/sandbox/runtime-settings.d.ts +1 -15
- package/package.json +11 -19
- package/src/application/composer-submit.ts +2 -1
- package/src/application/connect-operation.ts +32 -3
- package/src/application/sandbox-recovery.ts +55 -0
- package/src/application/user-resource-grants.ts +1 -16
- package/src/dependencies.ts +5 -1
- package/src/domain/capabilities.ts +169 -122
- package/src/domain/connection-account-selection-error.ts +9 -0
- package/src/domain/connector-tool-permissions.ts +305 -0
- package/src/domain/editable-artifacts/agent-application.ts +31 -2
- package/src/domain/environments.ts +4 -9
- package/src/domain/file-owner.ts +16 -1
- package/src/domain/insights-timing.ts +95 -0
- package/src/domain/insights.ts +59 -35
- package/src/domain/knowledge-files.ts +10 -3
- package/src/domain/knowledge-messages.ts +1 -0
- package/src/domain/knowledge-preparation.test.ts +251 -0
- package/src/domain/knowledge-preparation.ts +126 -0
- package/src/domain/mcp-account-bindings.ts +152 -0
- package/src/domain/native-mcp-connection-admission.ts +14 -0
- package/src/domain/organization-integration-catalog.ts +83 -0
- package/src/domain/personal-connection-delegations.ts +226 -177
- package/src/domain/pr-review.ts +22 -6
- package/src/domain/resources.ts +9 -2
- package/src/domain/scheduled-tasks.ts +200 -155
- package/src/domain/session-file-access.ts +47 -0
- package/src/domain/session-tool-policy.ts +12 -4
- package/src/domain/sessions.ts +390 -261
- package/src/domain/skills.ts +9 -0
- package/src/index.ts +10 -6
- package/src/rigs/index.ts +17 -17
- package/src/sandbox/routing.ts +18 -7
- package/src/sandbox/runtime-settings.ts +7 -91
- package/dist/application/host-mcp-owner.d.ts +0 -6
- package/dist/application/host-mcp-resolvers.d.ts +0 -13
- package/dist/chunk-5WZYFL45.js +0 -266
- package/dist/chunk-5WZYFL45.js.map +0 -1
- package/dist/chunk-H7X52RI2.js.map +0 -1
- package/dist/domain/connection-authority.d.ts +0 -97
- package/dist/domain/connection-authority.js +0 -169
- package/dist/domain/connection-authority.js.map +0 -1
- package/dist/domain/host-mcp-authority-source-admission.d.ts +0 -10
- package/dist/domain/host-mcp-task-admission.d.ts +0 -18
- package/dist/domain/packs.d.ts +0 -59
- package/dist/domain/product-integration-pack.d.ts +0 -44
- package/dist/domain/product-integration-skill.gen.d.ts +0 -5
- package/dist/remote-mcp-credentials.d.ts +0 -23
- package/dist/remote-mcp-credentials.js +0 -11
- package/dist/remote-mcp-credentials.js.map +0 -1
- package/src/application/host-mcp-owner.ts +0 -41
- package/src/application/host-mcp-resolvers.ts +0 -84
- package/src/domain/connection-authority.ts +0 -329
- package/src/domain/host-mcp-authority-source-admission.ts +0 -25
- package/src/domain/host-mcp-task-admission.ts +0 -121
- package/src/domain/packs.ts +0 -699
- package/src/domain/product-integration-pack.ts +0 -42
- package/src/domain/product-integration-skill.gen.ts +0 -52
- package/src/remote-mcp-credentials.ts +0 -361
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { AccessGrant, FileAsset } from "@opengeni/contracts";
|
|
2
|
+
import {
|
|
3
|
+
getSessionAuthorityProjection,
|
|
4
|
+
getFilesForSubject,
|
|
5
|
+
readSessionFileAttachments,
|
|
6
|
+
withSessionRlsActorContext,
|
|
7
|
+
} from "@opengeni/db";
|
|
8
|
+
import type { SessionAuthorizationDependencies } from "../session-authorization";
|
|
9
|
+
import {
|
|
10
|
+
requireSessionAuthorization,
|
|
11
|
+
withResolvedSessionAuthorization,
|
|
12
|
+
} from "../session-authorization";
|
|
13
|
+
|
|
14
|
+
/** A session attachment grant is never a generic file/Knowledge grant. */
|
|
15
|
+
export async function readSessionAttachmentFiles(
|
|
16
|
+
deps: SessionAuthorizationDependencies,
|
|
17
|
+
grant: AccessGrant,
|
|
18
|
+
sessionId: string,
|
|
19
|
+
fileIds: readonly string[],
|
|
20
|
+
): Promise<FileAsset[]> {
|
|
21
|
+
const authority = await getSessionAuthorityProjection(deps.db, grant.workspaceId, sessionId);
|
|
22
|
+
if (!authority) return [];
|
|
23
|
+
const authorization = await requireSessionAuthorization(deps, grant, {
|
|
24
|
+
sessionId,
|
|
25
|
+
operation: "session.read",
|
|
26
|
+
surface: "core",
|
|
27
|
+
});
|
|
28
|
+
const ordinary = await getFilesForSubject(deps.db, {
|
|
29
|
+
accountId: grant.accountId,
|
|
30
|
+
workspaceId: grant.workspaceId,
|
|
31
|
+
subjectId: grant.subjectId,
|
|
32
|
+
fileIds,
|
|
33
|
+
});
|
|
34
|
+
const missing = fileIds.filter((id) => !ordinary.some((file) => file.id === id));
|
|
35
|
+
const actor = authorization?.actor ?? { kind: "subject" as const, subjectId: grant.subjectId };
|
|
36
|
+
const read = () =>
|
|
37
|
+
readSessionFileAttachments(deps.db, {
|
|
38
|
+
accountId: grant.accountId,
|
|
39
|
+
workspaceId: grant.workspaceId,
|
|
40
|
+
fileIds: missing,
|
|
41
|
+
access: { sessionId, authorityEpoch: authority.authorityEpoch, actor },
|
|
42
|
+
});
|
|
43
|
+
const shared = authorization
|
|
44
|
+
? await withResolvedSessionAuthorization(authorization, read)
|
|
45
|
+
: await withSessionRlsActorContext({ subjectId: grant.subjectId }, read);
|
|
46
|
+
return [...ordinary, ...shared];
|
|
47
|
+
}
|
|
@@ -65,8 +65,11 @@ export function resolveSessionToolPolicy(input: SessionToolPolicyInput): Resolve
|
|
|
65
65
|
availableIds.has(id),
|
|
66
66
|
);
|
|
67
67
|
const mandatoryIdSet = new Set<string>(mandatoryIds);
|
|
68
|
-
const selectedRefs = mergeToolRefs([], input.sessionTools);
|
|
69
68
|
const tracksWorkspaceDefaults = policy.mode === "workspace_default";
|
|
69
|
+
const excludedIds = new Set(tracksWorkspaceDefaults ? policy.excludedMcpServerIds : []);
|
|
70
|
+
const selectedRefs = mergeToolRefs([], input.sessionTools).filter(
|
|
71
|
+
(tool) => !excludedIds.has(tool.id) || mandatoryIdSet.has(tool.id),
|
|
72
|
+
);
|
|
70
73
|
|
|
71
74
|
// Persisted refs may outlive a capability installation, deployment config,
|
|
72
75
|
// or its credentials. Admission remains strict for newly requested refs, but
|
|
@@ -80,7 +83,7 @@ export function resolveSessionToolPolicy(input: SessionToolPolicyInput): Resolve
|
|
|
80
83
|
toolRefs = mergeToolRefs(
|
|
81
84
|
toolRefs,
|
|
82
85
|
sortedIds(defaultIds)
|
|
83
|
-
.filter((id) => availableIds.has(id))
|
|
86
|
+
.filter((id) => availableIds.has(id) && !excludedIds.has(id))
|
|
84
87
|
.map((id) => ({ kind: "mcp" as const, id, optional: true as const })),
|
|
85
88
|
);
|
|
86
89
|
}
|
|
@@ -97,7 +100,7 @@ export function resolveSessionToolPolicy(input: SessionToolPolicyInput): Resolve
|
|
|
97
100
|
selectedRefs,
|
|
98
101
|
tracksWorkspaceDefaults
|
|
99
102
|
? sortedIds(defaultIds)
|
|
100
|
-
.filter((id) => availableIds.has(id))
|
|
103
|
+
.filter((id) => availableIds.has(id) && !excludedIds.has(id))
|
|
101
104
|
.map((id) => ({ kind: "mcp" as const, id, optional: true as const }))
|
|
102
105
|
: [],
|
|
103
106
|
);
|
|
@@ -190,7 +193,12 @@ export async function workspaceSessionToolPolicyDefaultServerIds(
|
|
|
190
193
|
const configured = resolveWorkspaceSessionToolDefaults(workspace.settings);
|
|
191
194
|
if (!configured?.mcpServerIds) return availableDefaults;
|
|
192
195
|
const available = new Set(availableDefaults);
|
|
193
|
-
return sortedIds(
|
|
196
|
+
return sortedIds([
|
|
197
|
+
...configured.mcpServerIds.filter((id) => available.has(id)),
|
|
198
|
+
...(configured.inheritConnectedMcpServers
|
|
199
|
+
? availableDefaults.filter((id) => !["opengeni", "files", "docs"].includes(id))
|
|
200
|
+
: []),
|
|
201
|
+
]);
|
|
194
202
|
}
|
|
195
203
|
|
|
196
204
|
/** Add a bounded, secret-safe effective projection to a session response. */
|