@opengeni/db 0.28.1 → 0.31.1
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/attached-browser-devices.d.ts +42 -0
- package/dist/attempt-tool-catalogs.d.ts +16 -0
- package/dist/browser-auth.d.ts +91 -0
- package/dist/browser-identities.d.ts +128 -0
- package/dist/browser-sessions.d.ts +272 -0
- package/dist/browser-state-artifacts.d.ts +17 -0
- package/dist/capability-components.d.ts +37 -0
- package/dist/capability-integrations.d.ts +192 -0
- package/dist/chunk-F5FT7BEZ.js +3535 -0
- package/dist/chunk-F5FT7BEZ.js.map +1 -0
- package/dist/chunk-ISI2TIUG.js +639 -0
- package/dist/chunk-ISI2TIUG.js.map +1 -0
- package/dist/chunk-MWDVXQOL.js +11639 -0
- package/dist/chunk-MWDVXQOL.js.map +1 -0
- package/dist/chunk-NBE6CHRI.js +955 -0
- package/dist/chunk-NBE6CHRI.js.map +1 -0
- package/dist/{chunk-DBS5HPEW.js → chunk-YHZXQ7HP.js} +760 -11
- package/dist/chunk-YHZXQ7HP.js.map +1 -0
- package/dist/codemode-operations.d.ts +117 -0
- package/dist/codex-token-resolver.d.ts +2 -2
- package/dist/company-profile-schema.d.ts +798 -0
- package/dist/company-profile.d.ts +268 -0
- package/dist/computer-sessions.d.ts +109 -0
- package/dist/connection-token-resolver.d.ts +9 -4
- package/dist/database.d.ts +52 -3
- package/dist/editable-artifact-durable-export.d.ts +153 -0
- package/dist/editable-artifact-durable-export.js +788 -0
- package/dist/editable-artifact-durable-export.js.map +1 -0
- package/dist/editable-artifact-materialization.d.ts +123 -0
- package/dist/editable-artifacts-schema.d.ts +4152 -0
- package/dist/editable-artifacts.d.ts +610 -0
- package/dist/editable-artifacts.js +26 -0
- package/dist/editable-artifacts.js.map +1 -0
- package/dist/environment-crypto.d.ts +8 -4
- package/dist/generated-images.d.ts +139 -0
- package/dist/index.d.ts +958 -126
- package/dist/index.js +31204 -12172
- package/dist/index.js.map +1 -1
- package/dist/insights.d.ts +51 -4
- package/dist/integration-bindings.d.ts +70 -0
- package/dist/integration-features.d.ts +99 -0
- package/dist/interaction-revisions.d.ts +3 -0
- package/dist/interaction-schema.d.ts +5372 -0
- package/dist/knowledge-source-sync-schema.d.ts +1679 -0
- package/dist/knowledge-source-sync.d.ts +274 -0
- package/dist/lossless-columns.d.ts +58 -0
- package/dist/lossless-json.d.ts +39 -0
- package/dist/memory-domain.d.ts +3 -6
- package/dist/memory-governance.d.ts +2 -2
- package/dist/memory-slack-delivery.d.ts +101 -0
- package/dist/new-session-drafts.d.ts +2 -2
- package/dist/pack-components.d.ts +76 -0
- package/dist/pack-installations.d.ts +86 -0
- package/dist/persistence-errors.d.ts +7 -14
- package/dist/plugin-packages.d.ts +126 -0
- package/dist/preference-registry.d.ts +1 -1
- package/dist/provision-roles.d.ts +9 -1
- package/dist/provision-roles.js +1 -1
- package/dist/runtime-posture.d.ts +18 -6
- package/dist/schema.d.ts +19122 -8731
- package/dist/schema.js +173 -1
- package/dist/scoped-knowledge.d.ts +97 -1
- package/dist/session-control.d.ts +4 -4
- package/dist/session-queue-commands.d.ts +19 -11
- package/dist/session-realtime-context.d.ts +2 -2
- package/dist/session-realtime-ledger.d.ts +4 -4
- package/dist/session-realtime-mirror.d.ts +2 -2
- package/dist/session-realtime-state.d.ts +1 -1
- package/dist/session-realtime-terminal.d.ts +8 -1
- package/dist/session-realtime.d.ts +7 -7
- package/dist/session-tool-call-settlement.d.ts +1 -1
- package/dist/slack-user-link-access.d.ts +54 -0
- package/dist/transcription-recordings-schema.d.ts +44 -6
- package/dist/transcription-recordings.d.ts +3 -3
- package/dist/turn-initiator.d.ts +2 -2
- package/dist/video-generation.d.ts +216 -0
- package/dist/video-generation.js +66 -0
- package/dist/video-generation.js.map +1 -0
- package/dist/workspace-artifacts.d.ts +1 -1
- package/dist/workspace-instruction-policies.d.ts +1 -1
- package/dist/workspace-learning-policy-schema.d.ts +932 -0
- package/dist/workspace-learning-policy.d.ts +161 -0
- package/drizzle/0065_enrollment_credential_generation.sql +10 -0
- package/drizzle/0140_retained_screenshot_artifacts.sql +192 -0
- package/drizzle/0176_lossless_canonical_json.sql +975 -0
- package/drizzle/0177_session_events_workspace_turn_type_index.sql +5 -0
- package/drizzle/0178_permissioned_secret_reads.sql +14 -0
- package/drizzle/0179_slack_private_shortcut_delivery_gate.sql +85 -0
- package/drizzle/0180_retained_screenshot_lifecycle_fences.sql +273 -0
- package/drizzle/0181_connected_machine_removal.sql +52 -0
- package/drizzle/0182_connected_machine_remove_session_default.sql +77 -0
- package/drizzle/0183_model_call_provider_cost_estimates.sql +39 -0
- package/drizzle/0184_sandbox_drain_teardown_fence.sql +682 -0
- package/drizzle/0185_temporal_schedule_cleanup_outbox.sql +168 -0
- package/drizzle/0186_sandbox_capture_provider_contract.sql +400 -0
- package/drizzle/0187_generated_image_artifacts.sql +173 -0
- package/drizzle/0188_image_generation_retention_failure.sql +25 -0
- package/drizzle/0189_retained_session_image_formats.sql +13 -0
- package/drizzle/0190_timeline_annotations.sql +31 -0
- package/drizzle/0191_editable_artifact_engine.sql +3853 -0
- package/drizzle/0192_editable_artifact_live_tickets.sql +338 -0
- package/drizzle/0193_editable_artifact_authorization.sql +190 -0
- package/drizzle/0194_editable_artifact_durable_exports.sql +160 -0
- package/drizzle/0195_editable_artifact_import_authorization.sql +203 -0
- package/drizzle/0196_rig_provider_images.sql +152 -0
- package/drizzle/0197_knowledge_source_sync_schedules.sql +523 -0
- package/drizzle/0198_memory_slack_publication_delivery.sql +393 -0
- package/drizzle/0199_workspace_learning_policy.sql +980 -0
- package/drizzle/0201_company_profile_authority.sql +849 -0
- package/drizzle/0202_document_index_checkpoints.sql +85 -0
- package/drizzle/0203_durable_video_generation.sql +353 -0
- package/drizzle/0204_video_generation_funding.sql +44 -0
- package/drizzle/0205_attempt_tool_catalogs.sql +230 -0
- package/drizzle/0206_browser_sessions.sql +646 -0
- package/drizzle/0207_browser_identities.sql +379 -0
- package/drizzle/0208_attached_browser_devices.sql +165 -0
- package/drizzle/0209_computer_sessions.sql +575 -0
- package/drizzle/0210_browser_auth_network_interventions.sql +441 -0
- package/drizzle/0211_editable_artifact_session_links.sql +58 -0
- package/drizzle/0212_slack_installation_bindings.sql +348 -0
- package/drizzle/0213_slack_user_link_access_requests.sql +177 -0
- package/drizzle/0214_session_activity_commit_gate.sql +262 -0
- package/drizzle/0215_capabilities_platform.sql +980 -0
- package/drizzle/0216_pack_component_ownership.sql +235 -0
- package/drizzle/0217_capability_definition_delete_authority.sql +32 -0
- package/package.json +18 -5
- package/src/attached-browser-devices.ts +371 -0
- package/src/attempt-tool-catalogs.ts +131 -0
- package/src/browser-auth.ts +1896 -0
- package/src/browser-identities.ts +1168 -0
- package/src/browser-sessions.ts +2005 -0
- package/src/browser-state-artifacts.ts +59 -0
- package/src/capability-components.ts +166 -0
- package/src/capability-integrations.ts +1663 -0
- package/src/codemode-operations.ts +674 -0
- package/src/company-profile-schema.ts +143 -0
- package/src/company-profile.ts +968 -0
- package/src/computer-sessions.ts +1130 -0
- package/src/connection-token-resolver.ts +270 -25
- package/src/database.ts +434 -24
- package/src/editable-artifact-durable-export.ts +1201 -0
- package/src/editable-artifact-materialization.ts +893 -0
- package/src/editable-artifacts-schema.ts +879 -0
- package/src/editable-artifacts.ts +5404 -0
- package/src/environment-crypto.ts +22 -9
- package/src/generated-images.ts +740 -0
- package/src/index.ts +10117 -2730
- package/src/insights.ts +160 -13
- package/src/integration-bindings.ts +455 -0
- package/src/integration-features.ts +859 -0
- package/src/interaction-revisions.ts +40 -0
- package/src/interaction-schema.ts +1303 -0
- package/src/knowledge-source-sync-schema.ts +192 -0
- package/src/knowledge-source-sync.ts +1922 -0
- package/src/lossless-columns.ts +35 -0
- package/src/lossless-json.ts +322 -0
- package/src/memory-domain.ts +5 -44
- package/src/memory-slack-delivery.ts +801 -0
- package/src/pack-components.ts +954 -0
- package/src/pack-installations.ts +929 -0
- package/src/persistence-errors.ts +26 -34
- package/src/plugin-packages.ts +1186 -0
- package/src/provision-roles.ts +302 -1
- package/src/runtime-posture-cli.ts +9 -0
- package/src/runtime-posture.ts +514 -5
- package/src/schema.ts +5177 -2957
- package/src/scoped-knowledge-schema.ts +1 -1
- package/src/scoped-knowledge.ts +655 -3
- package/src/session-control.ts +133 -81
- package/src/session-queue-commands.ts +511 -247
- package/src/session-realtime-context.ts +20 -7
- package/src/session-realtime-ledger.ts +32 -10
- package/src/session-realtime-mirror.ts +4 -2
- package/src/session-realtime-terminal.ts +89 -21
- package/src/session-realtime.ts +10 -9
- package/src/session-tool-call-settlement.ts +38 -15
- package/src/slack-user-link-access.ts +702 -0
- package/src/transcription-recordings-schema.ts +5 -2
- package/src/transcription-recordings.ts +70 -40
- package/src/video-generation.ts +1452 -0
- package/src/workspace-learning-policy-schema.ts +139 -0
- package/src/workspace-learning-policy.ts +595 -0
- package/dist/chunk-DBS5HPEW.js.map +0 -1
- package/dist/chunk-HT5T62CC.js +0 -6803
- package/dist/chunk-HT5T62CC.js.map +0 -1
- package/dist/event-payload-sanitizer.d.ts +0 -32
- package/src/event-payload-sanitizer.ts +0 -377
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type AttachedBrowserDevice as AttachedBrowserDeviceValue, type AttachedBrowserDeviceListResponse as AttachedBrowserDeviceListResponseValue, type AttachedBrowserInventorySnapshot as AttachedBrowserInventorySnapshotValue } from "@opengeni/contracts";
|
|
2
|
+
import { type Database } from "./database.js";
|
|
3
|
+
export declare class AttachedBrowserDeviceNotFoundError extends Error {
|
|
4
|
+
readonly name = "AttachedBrowserDeviceNotFoundError";
|
|
5
|
+
}
|
|
6
|
+
export declare class AttachedBrowserInventoryConflictError extends Error {
|
|
7
|
+
readonly name = "AttachedBrowserInventoryConflictError";
|
|
8
|
+
}
|
|
9
|
+
export type ReconcileAttachedBrowserInventoryResult = {
|
|
10
|
+
accepted: boolean;
|
|
11
|
+
changed: boolean;
|
|
12
|
+
revision: number;
|
|
13
|
+
};
|
|
14
|
+
/** Reconcile one full browser-bridge snapshot. The enrollment row serializes
|
|
15
|
+
* concurrent heartbeats; a lower revision from the same bridge generation is
|
|
16
|
+
* ignored, and a replay only refreshes liveness. */
|
|
17
|
+
export declare function reconcileAttachedBrowserInventory(db: Database, input: {
|
|
18
|
+
accountId: string;
|
|
19
|
+
workspaceId: string;
|
|
20
|
+
enrollmentId: string;
|
|
21
|
+
snapshot: AttachedBrowserInventorySnapshotValue;
|
|
22
|
+
}): Promise<ReconcileAttachedBrowserInventoryResult>;
|
|
23
|
+
/** Immediately mark every live Chrome profile on a cleanly disconnected agent
|
|
24
|
+
* offline. Historical endpoint rows remain discoverable and reconnect in place. */
|
|
25
|
+
export declare function disconnectAttachedBrowserDevices(db: Database, input: {
|
|
26
|
+
accountId: string;
|
|
27
|
+
workspaceId: string;
|
|
28
|
+
enrollmentId: string;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
changed: boolean;
|
|
31
|
+
revision: number;
|
|
32
|
+
}>;
|
|
33
|
+
export declare function listAttachedBrowserDevices(db: Database, input: {
|
|
34
|
+
accountId: string;
|
|
35
|
+
workspaceId: string;
|
|
36
|
+
includeDisconnected?: boolean;
|
|
37
|
+
}): Promise<AttachedBrowserDeviceListResponseValue>;
|
|
38
|
+
export declare function getAttachedBrowserDevice(db: Database, input: {
|
|
39
|
+
accountId: string;
|
|
40
|
+
workspaceId: string;
|
|
41
|
+
deviceId: string;
|
|
42
|
+
}): Promise<AttachedBrowserDeviceValue>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AttemptToolCatalog } from "@opengeni/contracts";
|
|
2
|
+
import type { Database } from "./database.js";
|
|
3
|
+
export declare class AttemptToolCatalogAuthorityError extends Error {
|
|
4
|
+
readonly code = "attempt_tool_catalog_authority_mismatch";
|
|
5
|
+
constructor();
|
|
6
|
+
}
|
|
7
|
+
export declare class AttemptToolCatalogConflictError extends Error {
|
|
8
|
+
readonly code = "attempt_tool_catalog_conflict";
|
|
9
|
+
constructor();
|
|
10
|
+
}
|
|
11
|
+
export declare function persistAttemptToolCatalog(db: Database, input: AttemptToolCatalog): Promise<AttemptToolCatalog>;
|
|
12
|
+
export declare function getAttemptToolCatalog(db: Database, input: {
|
|
13
|
+
accountId: string;
|
|
14
|
+
workspaceId: string;
|
|
15
|
+
attemptId: string;
|
|
16
|
+
}): Promise<AttemptToolCatalog | null>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type AuthRun as AuthRunValue, type AuthRunListResponse as AuthRunListResponseValue, type AuthRunMutationResponse as AuthRunMutationResponseValue, type CreateInteractionInterventionRequest as CreateInteractionInterventionRequestValue, type CreateNetworkRouteRequest as CreateNetworkRouteRequestValue, type CreateSiteAuthConnectionRequest as CreateSiteAuthConnectionRequestValue, type InteractionIntervention as InteractionInterventionValue, type InteractionInterventionListResponse as InteractionInterventionListResponseValue, type InteractionInterventionMutationResponse as InteractionInterventionMutationResponseValue, type NetworkRoute as NetworkRouteValue, type NetworkRouteListResponse as NetworkRouteListResponseValue, type NetworkRouteMutationResponse as NetworkRouteMutationResponseValue, type ReportAuthRunRequest as ReportAuthRunRequestValue, type ResolveInteractionInterventionRequest as ResolveInteractionInterventionRequestValue, type SiteAuthConnection as SiteAuthConnectionValue, type SiteAuthConnectionListResponse as SiteAuthConnectionListResponseValue, type SiteAuthConnectionMutationResponse as SiteAuthConnectionMutationResponseValue, type StartAuthRunRequest as StartAuthRunRequestValue, type UpdateNetworkRouteRequest as UpdateNetworkRouteRequestValue, type UpdateSiteAuthConnectionRequest as UpdateSiteAuthConnectionRequestValue } from "@opengeni/contracts";
|
|
2
|
+
import { type Database } from "./database.js";
|
|
3
|
+
type InteractionMutationScope = {
|
|
4
|
+
accountId: string;
|
|
5
|
+
workspaceId: string;
|
|
6
|
+
actorSubjectId: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class InteractionResourceNotFoundError extends Error {
|
|
9
|
+
readonly name = "InteractionResourceNotFoundError";
|
|
10
|
+
}
|
|
11
|
+
export declare class InteractionResourceConflictError extends Error {
|
|
12
|
+
readonly name = "InteractionResourceConflictError";
|
|
13
|
+
}
|
|
14
|
+
export declare class InteractionResourceStateError extends Error {
|
|
15
|
+
readonly name = "InteractionResourceStateError";
|
|
16
|
+
}
|
|
17
|
+
export declare function listNetworkRoutes(db: Database, input: {
|
|
18
|
+
accountId: string;
|
|
19
|
+
workspaceId: string;
|
|
20
|
+
includeArchived?: boolean;
|
|
21
|
+
}): Promise<NetworkRouteListResponseValue>;
|
|
22
|
+
export declare function getNetworkRoute(db: Database, input: {
|
|
23
|
+
accountId: string;
|
|
24
|
+
workspaceId: string;
|
|
25
|
+
routeId: string;
|
|
26
|
+
}): Promise<NetworkRouteValue>;
|
|
27
|
+
export declare function createNetworkRoute(db: Database, input: InteractionMutationScope & CreateNetworkRouteRequestValue): Promise<NetworkRouteMutationResponseValue>;
|
|
28
|
+
export declare function updateNetworkRoute(db: Database, input: InteractionMutationScope & {
|
|
29
|
+
routeId: string;
|
|
30
|
+
} & UpdateNetworkRouteRequestValue): Promise<NetworkRouteMutationResponseValue>;
|
|
31
|
+
export declare function listSiteAuthConnections(db: Database, input: {
|
|
32
|
+
accountId: string;
|
|
33
|
+
workspaceId: string;
|
|
34
|
+
includeArchived?: boolean;
|
|
35
|
+
}): Promise<SiteAuthConnectionListResponseValue>;
|
|
36
|
+
export declare function getSiteAuthConnection(db: Database, input: {
|
|
37
|
+
accountId: string;
|
|
38
|
+
workspaceId: string;
|
|
39
|
+
siteAuthConnectionId: string;
|
|
40
|
+
}): Promise<SiteAuthConnectionValue>;
|
|
41
|
+
export declare function createSiteAuthConnection(db: Database, input: InteractionMutationScope & CreateSiteAuthConnectionRequestValue): Promise<SiteAuthConnectionMutationResponseValue>;
|
|
42
|
+
export declare function updateSiteAuthConnection(db: Database, input: InteractionMutationScope & {
|
|
43
|
+
siteAuthConnectionId: string;
|
|
44
|
+
} & UpdateSiteAuthConnectionRequestValue): Promise<SiteAuthConnectionMutationResponseValue>;
|
|
45
|
+
export declare function listAuthRuns(db: Database, input: {
|
|
46
|
+
accountId: string;
|
|
47
|
+
workspaceId: string;
|
|
48
|
+
browserSessionId?: string;
|
|
49
|
+
siteAuthConnectionId?: string;
|
|
50
|
+
includeSettled?: boolean;
|
|
51
|
+
}): Promise<AuthRunListResponseValue>;
|
|
52
|
+
export declare function getAuthRun(db: Database, input: {
|
|
53
|
+
accountId: string;
|
|
54
|
+
workspaceId: string;
|
|
55
|
+
authRunId: string;
|
|
56
|
+
}): Promise<AuthRunValue>;
|
|
57
|
+
export declare function startAuthRun(db: Database, input: InteractionMutationScope & {
|
|
58
|
+
browserSessionId: string;
|
|
59
|
+
} & StartAuthRunRequestValue): Promise<AuthRunMutationResponseValue>;
|
|
60
|
+
export declare function reportAuthRun(db: Database, input: InteractionMutationScope & {
|
|
61
|
+
authRunId: string;
|
|
62
|
+
controllerGeneration: string;
|
|
63
|
+
} & ReportAuthRunRequestValue): Promise<AuthRunMutationResponseValue>;
|
|
64
|
+
export declare function listInteractionInterventions(db: Database, input: {
|
|
65
|
+
accountId: string;
|
|
66
|
+
workspaceId: string;
|
|
67
|
+
resourceKind?: "browser_session" | "computer_session";
|
|
68
|
+
resourceId?: string;
|
|
69
|
+
includeSettled?: boolean;
|
|
70
|
+
}): Promise<InteractionInterventionListResponseValue>;
|
|
71
|
+
export declare function getInteractionIntervention(db: Database, input: {
|
|
72
|
+
accountId: string;
|
|
73
|
+
workspaceId: string;
|
|
74
|
+
interventionId: string;
|
|
75
|
+
}): Promise<InteractionInterventionValue>;
|
|
76
|
+
export declare function createInteractionIntervention(db: Database, input: InteractionMutationScope & CreateInteractionInterventionRequestValue & {
|
|
77
|
+
originatingSessionId: string;
|
|
78
|
+
originatingTurnId?: string | null;
|
|
79
|
+
originatingAttemptId?: string | null;
|
|
80
|
+
originatingToolOperationId?: string | null;
|
|
81
|
+
}): Promise<InteractionInterventionMutationResponseValue>;
|
|
82
|
+
export declare function resolveInteractionIntervention(db: Database, input: InteractionMutationScope & {
|
|
83
|
+
interventionId: string;
|
|
84
|
+
} & ResolveInteractionInterventionRequestValue): Promise<InteractionInterventionMutationResponseValue>;
|
|
85
|
+
export declare function cancelOpenInteractionInterventions(db: Database, input: {
|
|
86
|
+
accountId: string;
|
|
87
|
+
workspaceId: string;
|
|
88
|
+
resourceKind: "browser_session" | "computer_session";
|
|
89
|
+
resourceId: string;
|
|
90
|
+
}): Promise<number>;
|
|
91
|
+
export {};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { type BrowserIdentity as BrowserIdentityValue, type BrowserIdentityListResponse as BrowserIdentityListResponseValue, type BrowserIdentityMutationResponse as BrowserIdentityMutationResponseValue, type BrowserRevision as BrowserRevisionValue, type BrowserRevisionListResponse as BrowserRevisionListResponseValue, type BrowserRevisionMaterialization as BrowserRevisionMaterializationValue, type InteractionError as InteractionErrorValue, type PublishBrowserRevisionResponse as PublishBrowserRevisionResponseValue } from "@opengeni/contracts";
|
|
2
|
+
import { type Database } from "./database.js";
|
|
3
|
+
import { type BrowserStateArtifactCommitInput } from "./browser-state-artifacts.js";
|
|
4
|
+
export declare class BrowserIdentityNotFoundError extends Error {
|
|
5
|
+
readonly name = "BrowserIdentityNotFoundError";
|
|
6
|
+
}
|
|
7
|
+
export declare class BrowserIdentityConflictError extends Error {
|
|
8
|
+
readonly name = "BrowserIdentityConflictError";
|
|
9
|
+
}
|
|
10
|
+
export declare class BrowserIdentityStateError extends Error {
|
|
11
|
+
readonly name = "BrowserIdentityStateError";
|
|
12
|
+
}
|
|
13
|
+
export type { BrowserStateArtifactCommitInput } from "./browser-state-artifacts.js";
|
|
14
|
+
export type BrowserRevisionPublicationPreparation = {
|
|
15
|
+
kind: "completed";
|
|
16
|
+
response: PublishBrowserRevisionResponseValue;
|
|
17
|
+
} | {
|
|
18
|
+
kind: "pending";
|
|
19
|
+
operationState: "prepared" | "dispatched";
|
|
20
|
+
browserSessionId: string;
|
|
21
|
+
controllerGeneration: string;
|
|
22
|
+
identity: BrowserIdentityValue;
|
|
23
|
+
parentRevisionId: string | null;
|
|
24
|
+
};
|
|
25
|
+
export type BrowserRevisionPublicationDispatch = {
|
|
26
|
+
kind: "completed";
|
|
27
|
+
response: PublishBrowserRevisionResponseValue;
|
|
28
|
+
} | {
|
|
29
|
+
kind: "dispatched";
|
|
30
|
+
browserSessionId: string;
|
|
31
|
+
controllerGeneration: string;
|
|
32
|
+
replayed: boolean;
|
|
33
|
+
};
|
|
34
|
+
export type BrowserRevisionArtifactAuthority = {
|
|
35
|
+
revision: BrowserRevisionValue;
|
|
36
|
+
artifacts: Array<{
|
|
37
|
+
componentId: string;
|
|
38
|
+
artifactId: string;
|
|
39
|
+
objectKey: string;
|
|
40
|
+
encryptedDataKey: string;
|
|
41
|
+
contentDigest: string;
|
|
42
|
+
manifestDigest: string;
|
|
43
|
+
artifactDigest: string;
|
|
44
|
+
sizeBytes: number;
|
|
45
|
+
format: string;
|
|
46
|
+
materialization: BrowserRevisionMaterializationValue;
|
|
47
|
+
}>;
|
|
48
|
+
};
|
|
49
|
+
export declare function listBrowserIdentities(db: Database, input: {
|
|
50
|
+
accountId: string;
|
|
51
|
+
workspaceId: string;
|
|
52
|
+
includeArchived?: boolean;
|
|
53
|
+
}): Promise<BrowserIdentityListResponseValue>;
|
|
54
|
+
export declare function getBrowserIdentity(db: Database, input: {
|
|
55
|
+
accountId: string;
|
|
56
|
+
workspaceId: string;
|
|
57
|
+
identityId: string;
|
|
58
|
+
}): Promise<BrowserIdentityValue>;
|
|
59
|
+
export declare function listBrowserRevisions(db: Database, input: {
|
|
60
|
+
accountId: string;
|
|
61
|
+
workspaceId: string;
|
|
62
|
+
identityId: string;
|
|
63
|
+
}): Promise<BrowserRevisionListResponseValue>;
|
|
64
|
+
export declare function createBrowserIdentity(db: Database, input: {
|
|
65
|
+
accountId: string;
|
|
66
|
+
workspaceId: string;
|
|
67
|
+
operationId: string;
|
|
68
|
+
name: string;
|
|
69
|
+
actorSubjectId: string;
|
|
70
|
+
}): Promise<BrowserIdentityMutationResponseValue>;
|
|
71
|
+
export declare function browserRevisionPublicationRequestDigest(input: {
|
|
72
|
+
browserSessionId: string;
|
|
73
|
+
identityId: string;
|
|
74
|
+
expectedHeadGeneration: number;
|
|
75
|
+
advanceDefault: boolean;
|
|
76
|
+
actorSubjectId: string;
|
|
77
|
+
}): string;
|
|
78
|
+
export declare function prepareBrowserRevisionPublication(db: Database, input: {
|
|
79
|
+
accountId: string;
|
|
80
|
+
workspaceId: string;
|
|
81
|
+
operationId: string;
|
|
82
|
+
browserSessionId: string;
|
|
83
|
+
identityId: string;
|
|
84
|
+
expectedHeadGeneration: number;
|
|
85
|
+
advanceDefault: boolean;
|
|
86
|
+
actorSubjectId: string;
|
|
87
|
+
}): Promise<BrowserRevisionPublicationPreparation>;
|
|
88
|
+
export declare function dispatchBrowserRevisionPublication(db: Database, input: {
|
|
89
|
+
accountId: string;
|
|
90
|
+
workspaceId: string;
|
|
91
|
+
operationId: string;
|
|
92
|
+
browserSessionId: string;
|
|
93
|
+
controllerGeneration: string;
|
|
94
|
+
identityId: string;
|
|
95
|
+
expectedHeadGeneration: number;
|
|
96
|
+
advanceDefault: boolean;
|
|
97
|
+
actorSubjectId: string;
|
|
98
|
+
}): Promise<BrowserRevisionPublicationDispatch>;
|
|
99
|
+
export declare function commitBrowserRevisionPublication(db: Database, input: {
|
|
100
|
+
accountId: string;
|
|
101
|
+
workspaceId: string;
|
|
102
|
+
operationId: string;
|
|
103
|
+
browserSessionId: string;
|
|
104
|
+
controllerGeneration: string;
|
|
105
|
+
identityId: string;
|
|
106
|
+
expectedHeadGeneration: number;
|
|
107
|
+
advanceDefault: boolean;
|
|
108
|
+
actorSubjectId: string;
|
|
109
|
+
manifestDigest: string;
|
|
110
|
+
artifacts: readonly BrowserStateArtifactCommitInput[];
|
|
111
|
+
}): Promise<PublishBrowserRevisionResponseValue>;
|
|
112
|
+
export declare function failBrowserRevisionPublication(db: Database, input: {
|
|
113
|
+
accountId: string;
|
|
114
|
+
workspaceId: string;
|
|
115
|
+
operationId: string;
|
|
116
|
+
browserSessionId: string;
|
|
117
|
+
controllerGeneration: string;
|
|
118
|
+
state?: "failed" | "outcome_unknown";
|
|
119
|
+
error: InteractionErrorValue;
|
|
120
|
+
}): Promise<void>;
|
|
121
|
+
/** Server-only storage authority used to restore a revision. Never project this
|
|
122
|
+
* result through HTTP, MCP, Codemode output, or the public SDK. */
|
|
123
|
+
export declare function getBrowserRevisionArtifactAuthority(db: Database, input: {
|
|
124
|
+
accountId: string;
|
|
125
|
+
workspaceId: string;
|
|
126
|
+
identityId: string;
|
|
127
|
+
revisionId: string;
|
|
128
|
+
}): Promise<BrowserRevisionArtifactAuthority>;
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { BrowserSession, InteractionControllerBinding, type BrowserSessionCapabilities as BrowserSessionCapabilitiesValue, type BrowserRevisionMaterialization as BrowserRevisionMaterializationValue, type BrowserSessionListResponse as BrowserSessionListResponseValue, type BrowserSessionMutationResponse as BrowserSessionMutationResponseValue, type InteractionError as InteractionErrorValue, type InteractionLifecycleOperationKind, type InteractionLifecycleOperationReceipt as InteractionLifecycleOperationReceiptValue, type InteractionPlacement } from "@opengeni/contracts";
|
|
2
|
+
import { type Database } from "./database.js";
|
|
3
|
+
import { type BrowserStateArtifactCommitInput } from "./browser-state-artifacts.js";
|
|
4
|
+
import * as schema from "./schema.js";
|
|
5
|
+
type BrowserSessionRow = typeof schema.browserSessions.$inferSelect;
|
|
6
|
+
type InteractionOperationRow = typeof schema.interactionOperations.$inferSelect;
|
|
7
|
+
export declare const MANAGED_BROWSER_SESSION_CAPABILITIES: {
|
|
8
|
+
semanticObservation: boolean;
|
|
9
|
+
screenshots: boolean;
|
|
10
|
+
liveFrames: boolean;
|
|
11
|
+
humanInput: boolean;
|
|
12
|
+
tabs: boolean;
|
|
13
|
+
downloads: boolean;
|
|
14
|
+
uploads: boolean;
|
|
15
|
+
clipboard: boolean;
|
|
16
|
+
diagnostics: boolean;
|
|
17
|
+
rawCdp: boolean;
|
|
18
|
+
linkedComputer: boolean;
|
|
19
|
+
privateCheckpoint: boolean;
|
|
20
|
+
identityPublication: boolean;
|
|
21
|
+
parallelTargets: boolean;
|
|
22
|
+
};
|
|
23
|
+
export declare const ATTACHED_BROWSER_SESSION_CAPABILITIES: {
|
|
24
|
+
semanticObservation: boolean;
|
|
25
|
+
screenshots: boolean;
|
|
26
|
+
liveFrames: boolean;
|
|
27
|
+
humanInput: boolean;
|
|
28
|
+
tabs: boolean;
|
|
29
|
+
downloads: boolean;
|
|
30
|
+
uploads: boolean;
|
|
31
|
+
clipboard: boolean;
|
|
32
|
+
diagnostics: boolean;
|
|
33
|
+
rawCdp: boolean;
|
|
34
|
+
linkedComputer: boolean;
|
|
35
|
+
privateCheckpoint: boolean;
|
|
36
|
+
identityPublication: boolean;
|
|
37
|
+
parallelTargets: boolean;
|
|
38
|
+
};
|
|
39
|
+
export declare class BrowserSessionNotFoundError extends Error {
|
|
40
|
+
readonly name = "BrowserSessionNotFoundError";
|
|
41
|
+
}
|
|
42
|
+
export declare class BrowserSessionOperationConflictError extends Error {
|
|
43
|
+
readonly name = "BrowserSessionOperationConflictError";
|
|
44
|
+
}
|
|
45
|
+
export declare class BrowserSessionStateError extends Error {
|
|
46
|
+
readonly name = "BrowserSessionStateError";
|
|
47
|
+
}
|
|
48
|
+
export type PrepareBrowserSessionCreateInput = {
|
|
49
|
+
accountId: string;
|
|
50
|
+
workspaceId: string;
|
|
51
|
+
operationId: string;
|
|
52
|
+
associatedSessionId: string;
|
|
53
|
+
actorSubjectId: string;
|
|
54
|
+
name: string;
|
|
55
|
+
initialUrl: string | null;
|
|
56
|
+
placement: InteractionPlacement;
|
|
57
|
+
driverId: string;
|
|
58
|
+
engine: BrowserSessionRow["engine"];
|
|
59
|
+
headless: boolean;
|
|
60
|
+
identityId: string | null;
|
|
61
|
+
baseRevisionId: string | null;
|
|
62
|
+
networkRouteId?: string | null;
|
|
63
|
+
linkedComputerSessionId?: string | null;
|
|
64
|
+
resolveDefaultRevision?: boolean;
|
|
65
|
+
capabilities?: BrowserSessionCapabilitiesValue;
|
|
66
|
+
};
|
|
67
|
+
export type PrepareBrowserSessionEndInput = {
|
|
68
|
+
accountId: string;
|
|
69
|
+
workspaceId: string;
|
|
70
|
+
browserSessionId: string;
|
|
71
|
+
operationId: string;
|
|
72
|
+
actorSubjectId: string;
|
|
73
|
+
};
|
|
74
|
+
export type PrepareBrowserSessionLifecycleInput = PrepareBrowserSessionEndInput;
|
|
75
|
+
export type BrowserPrivateCheckpointAuthority = {
|
|
76
|
+
artifactId: string;
|
|
77
|
+
sourceBrowserSessionId: string;
|
|
78
|
+
objectKey: string;
|
|
79
|
+
encryptedDataKey: string;
|
|
80
|
+
format: string;
|
|
81
|
+
artifactDigest: string;
|
|
82
|
+
contentDigest: string;
|
|
83
|
+
manifestDigest: string;
|
|
84
|
+
sizeBytes: number;
|
|
85
|
+
materialization: BrowserRevisionMaterializationValue;
|
|
86
|
+
};
|
|
87
|
+
/** Internal executor view of one BrowserSession. Plaintext controller
|
|
88
|
+
* credentials are deliberately absent; callers derive them from this fenced
|
|
89
|
+
* durable state. */
|
|
90
|
+
export type BrowserSessionControlRecord = {
|
|
91
|
+
session: BrowserSession;
|
|
92
|
+
tokenGeneration: number;
|
|
93
|
+
sourceSessionId: string;
|
|
94
|
+
createOperationId: string;
|
|
95
|
+
operation: null | {
|
|
96
|
+
operationId: string;
|
|
97
|
+
kind: InteractionLifecycleOperationKind;
|
|
98
|
+
state: InteractionOperationRow["state"];
|
|
99
|
+
controllerGeneration: string | null;
|
|
100
|
+
actorSubjectId: string;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
export declare function browserSessionCreateRequestDigest(input: PrepareBrowserSessionCreateInput): string;
|
|
104
|
+
export declare function listBrowserSessions(db: Database, input: {
|
|
105
|
+
accountId: string;
|
|
106
|
+
workspaceId: string;
|
|
107
|
+
}): Promise<BrowserSessionListResponseValue>;
|
|
108
|
+
export declare function getBrowserSession(db: Database, input: {
|
|
109
|
+
accountId: string;
|
|
110
|
+
workspaceId: string;
|
|
111
|
+
browserSessionId: string;
|
|
112
|
+
}): Promise<{
|
|
113
|
+
id: string;
|
|
114
|
+
accountId: string;
|
|
115
|
+
workspaceId: string;
|
|
116
|
+
name: string;
|
|
117
|
+
lifecycle: "active" | "ended" | "ending" | "failed" | "lost" | "repair_required" | "restoring" | "starting" | "suspended" | "suspending";
|
|
118
|
+
placement: {
|
|
119
|
+
kind: "sandbox_group";
|
|
120
|
+
sandboxGroupId: string;
|
|
121
|
+
} | {
|
|
122
|
+
kind: "connected_machine";
|
|
123
|
+
sandboxId: string;
|
|
124
|
+
} | {
|
|
125
|
+
kind: "attached_device";
|
|
126
|
+
deviceId: string;
|
|
127
|
+
} | {
|
|
128
|
+
kind: "external_provider";
|
|
129
|
+
providerId: string;
|
|
130
|
+
placementId: string;
|
|
131
|
+
};
|
|
132
|
+
controller: {
|
|
133
|
+
controllerId: string;
|
|
134
|
+
controllerGeneration: string;
|
|
135
|
+
placementInstanceId: string;
|
|
136
|
+
} | null;
|
|
137
|
+
driverId: string;
|
|
138
|
+
engine: "chrome" | "chromium" | "external" | "firefox" | "lightpanda" | "webkit";
|
|
139
|
+
engineVersion: string | null;
|
|
140
|
+
headless: boolean;
|
|
141
|
+
identityId: string | null;
|
|
142
|
+
baseRevisionId: string | null;
|
|
143
|
+
networkRouteId: string | null;
|
|
144
|
+
linkedComputerSessionId: string | null;
|
|
145
|
+
capabilities: {
|
|
146
|
+
semanticObservation: boolean;
|
|
147
|
+
screenshots: boolean;
|
|
148
|
+
liveFrames: boolean;
|
|
149
|
+
humanInput: boolean;
|
|
150
|
+
tabs: boolean;
|
|
151
|
+
downloads: boolean;
|
|
152
|
+
uploads: boolean;
|
|
153
|
+
clipboard: boolean;
|
|
154
|
+
diagnostics: boolean;
|
|
155
|
+
rawCdp: boolean;
|
|
156
|
+
linkedComputer: boolean;
|
|
157
|
+
privateCheckpoint: boolean;
|
|
158
|
+
identityPublication: boolean;
|
|
159
|
+
parallelTargets: boolean;
|
|
160
|
+
};
|
|
161
|
+
associations: {
|
|
162
|
+
sessionId: string;
|
|
163
|
+
turnId: string | null;
|
|
164
|
+
attemptId: string | null;
|
|
165
|
+
relationship: "created" | "observing" | "related" | "using";
|
|
166
|
+
actorSubjectId: string;
|
|
167
|
+
lastUsedAt: string;
|
|
168
|
+
}[];
|
|
169
|
+
createdBySubjectId: string;
|
|
170
|
+
createdAt: string;
|
|
171
|
+
lastUsedAt: string;
|
|
172
|
+
failureCode: string | null;
|
|
173
|
+
}>;
|
|
174
|
+
export declare function getBrowserSessionControlRecord(db: Database, input: {
|
|
175
|
+
accountId: string;
|
|
176
|
+
workspaceId: string;
|
|
177
|
+
browserSessionId: string;
|
|
178
|
+
operationId?: string;
|
|
179
|
+
}): Promise<BrowserSessionControlRecord>;
|
|
180
|
+
export declare function getBrowserPrivateCheckpointAuthority(db: Database, input: {
|
|
181
|
+
accountId: string;
|
|
182
|
+
workspaceId: string;
|
|
183
|
+
browserSessionId: string;
|
|
184
|
+
}): Promise<BrowserPrivateCheckpointAuthority | null>;
|
|
185
|
+
/** Resolve an idempotency key before inspecting mutable placement. This keeps
|
|
186
|
+
* a retried create bound to its original BrowserSession even if the source
|
|
187
|
+
* session's active sandbox pointer has since changed. */
|
|
188
|
+
export declare function findBrowserSessionControlRecordByOperation(db: Database, input: {
|
|
189
|
+
accountId: string;
|
|
190
|
+
workspaceId: string;
|
|
191
|
+
operationId: string;
|
|
192
|
+
}): Promise<BrowserSessionControlRecord | null>;
|
|
193
|
+
export declare function prepareBrowserSessionCreate(db: Database, input: PrepareBrowserSessionCreateInput): Promise<BrowserSessionMutationResponseValue>;
|
|
194
|
+
export declare function dispatchBrowserSessionOperation(db: Database, input: {
|
|
195
|
+
accountId: string;
|
|
196
|
+
workspaceId: string;
|
|
197
|
+
operationId: string;
|
|
198
|
+
browserSessionId: string;
|
|
199
|
+
controllerGeneration: string;
|
|
200
|
+
controller?: InteractionControllerBinding;
|
|
201
|
+
}): Promise<InteractionLifecycleOperationReceiptValue>;
|
|
202
|
+
export declare function activateBrowserSession(db: Database, input: {
|
|
203
|
+
accountId: string;
|
|
204
|
+
workspaceId: string;
|
|
205
|
+
operationId: string;
|
|
206
|
+
browserSessionId: string;
|
|
207
|
+
controller: InteractionControllerBinding;
|
|
208
|
+
engineVersion: string | null;
|
|
209
|
+
}): Promise<BrowserSessionMutationResponseValue>;
|
|
210
|
+
export declare function failBrowserSessionOperation(db: Database, input: {
|
|
211
|
+
accountId: string;
|
|
212
|
+
workspaceId: string;
|
|
213
|
+
operationId: string;
|
|
214
|
+
browserSessionId: string;
|
|
215
|
+
state?: "failed" | "outcome_unknown";
|
|
216
|
+
error: InteractionErrorValue;
|
|
217
|
+
}): Promise<BrowserSessionMutationResponseValue>;
|
|
218
|
+
export declare function prepareBrowserSessionSuspend(db: Database, input: PrepareBrowserSessionLifecycleInput): Promise<BrowserSessionMutationResponseValue>;
|
|
219
|
+
export declare function prepareBrowserSessionResume(db: Database, input: PrepareBrowserSessionLifecycleInput): Promise<BrowserSessionMutationResponseValue>;
|
|
220
|
+
export declare function commitBrowserSessionSuspension(db: Database, input: {
|
|
221
|
+
accountId: string;
|
|
222
|
+
workspaceId: string;
|
|
223
|
+
operationId: string;
|
|
224
|
+
browserSessionId: string;
|
|
225
|
+
controllerGeneration: string;
|
|
226
|
+
artifact: BrowserStateArtifactCommitInput;
|
|
227
|
+
}): Promise<BrowserSessionMutationResponseValue>;
|
|
228
|
+
export declare function clearSuspendedBrowserSessionController(db: Database, input: {
|
|
229
|
+
accountId: string;
|
|
230
|
+
workspaceId: string;
|
|
231
|
+
browserSessionId: string;
|
|
232
|
+
expectedControllerGeneration: string;
|
|
233
|
+
}): Promise<boolean>;
|
|
234
|
+
export declare function failBrowserSessionSuspension(db: Database, input: {
|
|
235
|
+
accountId: string;
|
|
236
|
+
workspaceId: string;
|
|
237
|
+
operationId: string;
|
|
238
|
+
browserSessionId: string;
|
|
239
|
+
controllerGeneration: string;
|
|
240
|
+
state?: "failed" | "outcome_unknown";
|
|
241
|
+
error: InteractionErrorValue;
|
|
242
|
+
}): Promise<BrowserSessionMutationResponseValue>;
|
|
243
|
+
export declare function failBrowserSessionResume(db: Database, input: {
|
|
244
|
+
accountId: string;
|
|
245
|
+
workspaceId: string;
|
|
246
|
+
operationId: string;
|
|
247
|
+
browserSessionId: string;
|
|
248
|
+
controllerGeneration: string;
|
|
249
|
+
error: InteractionErrorValue;
|
|
250
|
+
}): Promise<BrowserSessionMutationResponseValue>;
|
|
251
|
+
export declare function failBrowserSessionResumePreparation(db: Database, input: {
|
|
252
|
+
accountId: string;
|
|
253
|
+
workspaceId: string;
|
|
254
|
+
operationId: string;
|
|
255
|
+
browserSessionId: string;
|
|
256
|
+
error: InteractionErrorValue;
|
|
257
|
+
}): Promise<BrowserSessionMutationResponseValue>;
|
|
258
|
+
export declare function prepareBrowserSessionEnd(db: Database, input: PrepareBrowserSessionEndInput): Promise<BrowserSessionMutationResponseValue>;
|
|
259
|
+
export declare function completeBrowserSessionEnd(db: Database, input: {
|
|
260
|
+
accountId: string;
|
|
261
|
+
workspaceId: string;
|
|
262
|
+
operationId: string;
|
|
263
|
+
browserSessionId: string;
|
|
264
|
+
expectedControllerGeneration: string | null;
|
|
265
|
+
}): Promise<BrowserSessionMutationResponseValue>;
|
|
266
|
+
export declare function touchBrowserSessionController(db: Database, input: {
|
|
267
|
+
accountId: string;
|
|
268
|
+
workspaceId: string;
|
|
269
|
+
browserSessionId: string;
|
|
270
|
+
controllerGeneration: string;
|
|
271
|
+
}): Promise<boolean>;
|
|
272
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type BrowserRevisionMaterialization as BrowserRevisionMaterializationValue } from "@opengeni/contracts";
|
|
2
|
+
import type * as schema from "./schema.js";
|
|
3
|
+
type BrowserStateArtifactRow = typeof schema.browserStateArtifacts.$inferSelect;
|
|
4
|
+
export type BrowserStateArtifactCommitInput = {
|
|
5
|
+
kind: BrowserStateArtifactRow["kind"];
|
|
6
|
+
format: string;
|
|
7
|
+
artifactDigest: string;
|
|
8
|
+
contentDigest: string;
|
|
9
|
+
manifestDigest: string;
|
|
10
|
+
objectKey: string;
|
|
11
|
+
encryptedDataKey: string;
|
|
12
|
+
sizeBytes: number;
|
|
13
|
+
materialization: BrowserRevisionMaterializationValue;
|
|
14
|
+
};
|
|
15
|
+
/** Validate storage authority before it can become durable state. */
|
|
16
|
+
export declare function validateBrowserStateArtifactCommitInput(workspaceId: string, value: BrowserStateArtifactCommitInput): BrowserStateArtifactCommitInput;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { sql, type SQLWrapper } from "drizzle-orm";
|
|
2
|
+
import type { Database } from "./database.js";
|
|
3
|
+
export type CapabilityComponentOwnerIdentity = {
|
|
4
|
+
kind: "direct" | "plugin" | "pack" | "migration";
|
|
5
|
+
id: string;
|
|
6
|
+
};
|
|
7
|
+
export declare class CapabilityComponentVersionConflictError extends Error {
|
|
8
|
+
readonly pluginKey: string;
|
|
9
|
+
readonly name = "CapabilityComponentVersionConflictError";
|
|
10
|
+
constructor(pluginKey: string);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* An owner row is runtime-effective only while its lifecycle-owning Plugin or
|
|
14
|
+
* v2 Pack installation is active. Direct, migration, and legacy textual Pack
|
|
15
|
+
* ownership is intrinsic so the rolling migration does not hide pre-v2 shared
|
|
16
|
+
* components before those Packs are reinstalled into the normalized ledger.
|
|
17
|
+
*/
|
|
18
|
+
export declare function effectiveCapabilityOwnerSql(ownerKind: SQLWrapper, ownerId: SQLWrapper): ReturnType<typeof sql>;
|
|
19
|
+
/** Serialize one workspace-local component identity across direct, Plugin, and Pack installers. */
|
|
20
|
+
export declare function lockCapabilityComponentIdentity(db: Database, workspaceId: string, pluginKey: string): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* A child installation selects exactly one immutable Plugin version. Changing
|
|
23
|
+
* that version is safe only when every retained facet owner is the caller.
|
|
24
|
+
*/
|
|
25
|
+
export declare function assertCapabilityComponentVersionCanChange(db: Database, input: {
|
|
26
|
+
workspaceId: string;
|
|
27
|
+
pluginKey: string;
|
|
28
|
+
pluginInstallationId: string;
|
|
29
|
+
owner: CapabilityComponentOwnerIdentity;
|
|
30
|
+
}): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Delete physically ownerless facet installations and disable now-empty child
|
|
33
|
+
* components. Inactive lifecycle owners still preserve storage: a Pack may
|
|
34
|
+
* have claimed a component while its installation is pending or repairing,
|
|
35
|
+
* even though that owner is intentionally hidden from runtime reads.
|
|
36
|
+
*/
|
|
37
|
+
export declare function cleanupOrphanedCapabilityComponents(db: Database, workspaceId: string, facetInstallationIds: string[]): Promise<void>;
|