@crewx/sdk 0.9.0-rc.124 → 0.9.0-rc.125
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/config/models.generated.d.ts +2 -2
- package/dist/config/pricing.generated.d.ts +2 -2
- package/dist/esm/index.js +377 -252
- package/dist/esm/plugins/index.js +70 -64
- package/dist/esm/publish/index.js +2 -2
- package/dist/esm/repository/index.js +84 -78
- package/dist/esm/testing/index.js +1 -1
- package/dist/index.browser.js +4 -4
- package/dist/index.d.ts +7 -5
- package/dist/index.js +382 -257
- package/dist/mcp-app/dev-checks.d.ts +27 -0
- package/dist/mcp-app/discovery.d.ts +46 -4
- package/dist/mcp-app/index.d.ts +3 -1
- package/dist/mcp-app/skill-backend.d.ts +1 -0
- package/dist/mcp-app/types.d.ts +6 -3
- package/dist/mcp-app/workspace-snapshot.d.ts +3 -2
- package/dist/migrations/0034_keen_fallen_one.sql +36 -0
- package/dist/migrations/meta/0034_snapshot.json +3473 -0
- package/dist/migrations/meta/_journal.json +8 -1
- package/dist/plugins/index.js +71 -65
- package/dist/publish/index.js +2 -2
- package/dist/repository/index.js +86 -80
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/ui-action-receipts.d.ts +55 -0
- package/dist/schema/ui-instance-repins.d.ts +222 -0
- package/dist/testing/index.js +1 -1
- package/dist/ui-instance/index.d.ts +4 -2
- package/dist/ui-instance/json.d.ts +10 -0
- package/dist/ui-instance/lineage.d.ts +22 -0
- package/dist/ui-instance/store.d.ts +38 -1
- package/dist/ui-instance/types.d.ts +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type AppDevCheckItem = {
|
|
2
|
+
readonly rule: 'manifest' | 'external_resource' | 'output_unsafe_string' | 'output_invalid' | 'output_size' | 'call_duration';
|
|
3
|
+
readonly severity: 'error' | 'warning' | 'ok';
|
|
4
|
+
readonly code: string;
|
|
5
|
+
readonly where: string;
|
|
6
|
+
readonly detail?: Record<string, string | number>;
|
|
7
|
+
};
|
|
8
|
+
export type ExternalResourceKind = 'script' | 'style' | 'image' | 'font' | 'media' | 'frame' | 'object' | 'form' | 'navigation' | 'css' | 'script_network';
|
|
9
|
+
export interface ExternalResourceFinding {
|
|
10
|
+
readonly line: number;
|
|
11
|
+
readonly column: number;
|
|
12
|
+
readonly url: string;
|
|
13
|
+
readonly directive: string;
|
|
14
|
+
readonly kind: ExternalResourceKind;
|
|
15
|
+
}
|
|
16
|
+
export interface InspectSkillBackendOutputOptions {
|
|
17
|
+
readonly actionId: string;
|
|
18
|
+
readonly dataPaths?: readonly string[];
|
|
19
|
+
readonly durationMs?: number;
|
|
20
|
+
readonly timedOut?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface ScanExternalResourcesOptions {
|
|
23
|
+
readonly csp: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function inspectSkillBackendOutput(stdoutText: string, options: InspectSkillBackendOutputOptions): AppDevCheckItem[];
|
|
26
|
+
export declare function scanExternalResources(html: string, options: ScanExternalResourcesOptions): ExternalResourceFinding[];
|
|
27
|
+
export declare function externalResourceCheckItems(entryRelativePath: string, findings: readonly ExternalResourceFinding[]): AppDevCheckItem[];
|
|
@@ -1,14 +1,45 @@
|
|
|
1
|
+
import type { UiDefinitionLineageEntry } from '../ui-instance/lineage.js';
|
|
1
2
|
import type { JsonObject, UiDefinition } from '../ui-instance/types.js';
|
|
2
3
|
import type { UiPluginHandlerMetadata, UiPluginManifestV2, UiPluginNormalizedManifestV2 } from '../ui-plugin/types.js';
|
|
3
4
|
import { AppDiscoveryFsError, NodeAppDiscoveryFs, NodeAppDiscoveryFsAdapter, defaultAppDiscoveryFs, defaultNodeAppDiscoveryFs, type AppDiscoveryFsErrorCode } from './node-app-discovery-fs.js';
|
|
4
5
|
import type { McpAppRegistry } from './types.js';
|
|
5
6
|
export type WorkspaceAppSource = 'apps' | 'skills';
|
|
7
|
+
export type WorkspaceAppDiscoverySource = WorkspaceAppSource | 'bundled';
|
|
8
|
+
export interface ProductAppBundleInput {
|
|
9
|
+
readonly root: string;
|
|
10
|
+
readonly expectedIndexHash: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ProductAppBundleProvenance {
|
|
13
|
+
readonly kind: 'bundled';
|
|
14
|
+
readonly indexHash: string;
|
|
15
|
+
readonly packageDir: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ProductAppBundleFileHash {
|
|
18
|
+
readonly path: string;
|
|
19
|
+
readonly sha256: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ProductAppBundleDefinitionIdentity {
|
|
22
|
+
readonly id: string;
|
|
23
|
+
readonly version: number;
|
|
24
|
+
readonly hash: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ProductAppBundlePackageIndex {
|
|
27
|
+
readonly packageDir: string;
|
|
28
|
+
readonly appId: string;
|
|
29
|
+
readonly definition: ProductAppBundleDefinitionIdentity;
|
|
30
|
+
readonly lineage: readonly UiDefinitionLineageEntry[];
|
|
31
|
+
readonly files: readonly ProductAppBundleFileHash[];
|
|
32
|
+
}
|
|
33
|
+
export interface ProductAppBundleIndex {
|
|
34
|
+
readonly version: 1;
|
|
35
|
+
readonly packages: readonly ProductAppBundlePackageIndex[];
|
|
36
|
+
}
|
|
6
37
|
export type WorkspaceAppDiscoveryIncompleteReason = 'time_limit';
|
|
7
|
-
export type WorkspaceAppDiagnosticCode = 'MANIFEST_MISSING' | 'MANIFEST_INVALID' | 'ENTRY_INVALID' | 'INITIAL_STATE_INVALID' | 'DUPLICATE_ID' | 'RESERVED_ID' | 'PATH_ESCAPED' | 'LIMIT_EXCEEDED' | 'EXEC_DENIED';
|
|
38
|
+
export type WorkspaceAppDiagnosticCode = 'MANIFEST_MISSING' | 'MANIFEST_INVALID' | 'ENTRY_INVALID' | 'INITIAL_STATE_INVALID' | 'DUPLICATE_ID' | 'RESERVED_ID' | 'BUNDLE_INTEGRITY' | 'LINEAGE_INVALID' | 'LINEAGE_STALE' | 'PATH_ESCAPED' | 'LIMIT_EXCEEDED' | 'EXEC_DENIED';
|
|
8
39
|
export interface WorkspaceAppDiagnostic {
|
|
9
40
|
readonly code: WorkspaceAppDiagnosticCode;
|
|
10
41
|
readonly pluginId?: string;
|
|
11
|
-
readonly source:
|
|
42
|
+
readonly source: WorkspaceAppDiscoverySource;
|
|
12
43
|
readonly relativePath: string;
|
|
13
44
|
}
|
|
14
45
|
export type McpAppDiscoveryDiagnostic = WorkspaceAppDiagnostic;
|
|
@@ -46,12 +77,14 @@ export interface WorkspaceAppDiscoveryOptions {
|
|
|
46
77
|
readonly reservedAppIds?: Iterable<string>;
|
|
47
78
|
readonly reservedDefinitionIds?: Iterable<string>;
|
|
48
79
|
readonly reservedToolNames?: Iterable<string>;
|
|
80
|
+
readonly productBundle?: ProductAppBundleInput;
|
|
49
81
|
}
|
|
50
82
|
export interface WorkspaceAppToolNames {
|
|
51
83
|
readonly read: string;
|
|
52
84
|
readonly action?: string;
|
|
53
85
|
}
|
|
54
86
|
export interface WorkspaceAppResourceSnapshot {
|
|
87
|
+
readonly provenance?: ProductAppBundleProvenance;
|
|
55
88
|
readonly entry: {
|
|
56
89
|
readonly path: 'ui/index.html';
|
|
57
90
|
readonly hash: string;
|
|
@@ -63,12 +96,11 @@ export interface WorkspaceAppResourceSnapshot {
|
|
|
63
96
|
readonly bytes: readonly number[];
|
|
64
97
|
};
|
|
65
98
|
}
|
|
66
|
-
|
|
99
|
+
interface WorkspaceAppCandidateBase {
|
|
67
100
|
readonly appId: string;
|
|
68
101
|
readonly pluginId: string;
|
|
69
102
|
readonly definitionId: string;
|
|
70
103
|
readonly version: number;
|
|
71
|
-
readonly source: WorkspaceAppSource;
|
|
72
104
|
readonly relativePath: string;
|
|
73
105
|
readonly manifest: UiPluginManifestV2;
|
|
74
106
|
readonly normalized: UiPluginNormalizedManifestV2;
|
|
@@ -88,11 +120,21 @@ export interface WorkspaceAppCandidate {
|
|
|
88
120
|
readonly sourceHash: string;
|
|
89
121
|
readonly toolNames: WorkspaceAppToolNames;
|
|
90
122
|
}
|
|
123
|
+
export type WorkspaceAppCandidate = WorkspaceAppCandidateBase & ({
|
|
124
|
+
readonly source: WorkspaceAppSource;
|
|
125
|
+
readonly provenance?: never;
|
|
126
|
+
readonly lineage?: never;
|
|
127
|
+
} | {
|
|
128
|
+
readonly source?: never;
|
|
129
|
+
readonly provenance: ProductAppBundleProvenance;
|
|
130
|
+
readonly lineage: readonly UiDefinitionLineageEntry[];
|
|
131
|
+
});
|
|
91
132
|
export interface WorkspaceAppDiscoveryResult {
|
|
92
133
|
readonly apps: readonly WorkspaceAppCandidate[];
|
|
93
134
|
readonly diagnostics: readonly WorkspaceAppDiagnostic[];
|
|
94
135
|
readonly complete: boolean;
|
|
95
136
|
readonly incompleteReason?: WorkspaceAppDiscoveryIncompleteReason;
|
|
137
|
+
readonly productBundleIndexHash?: string;
|
|
96
138
|
readonly candidates?: readonly WorkspaceAppCandidate[];
|
|
97
139
|
}
|
|
98
140
|
export declare const WORKSPACE_APP_TOOL_PREFIX = "crewx_local_app_";
|
package/dist/mcp-app/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { INSTALLED_APP_ENTRY, InstalledAppRefError, buildInstalledAppRef, valida
|
|
|
4
4
|
export type { BuildInstalledAppRefInput, InstalledAppPackageFile, InstalledAppRef, InstalledAppRefErrorCode, } from './installed-app-ref.js';
|
|
5
5
|
export { MAX_HTML_LENGTH, createMcpAppRegistry, createBuiltinMcpAppRegistry, buildMcpAppLocalRegistration, createMcpAppLocalRegistration, registerLocalMcpApp, createMcpAppWorkspaceRegistry, createWorkspaceAppRegistry, createWorkspaceMcpAppRegistry, registerMcpApp, resolveMcpAppResource, resolveLocalMcpAppResource, requireMcpAppResource, toMcpAppToolRegistration, } from './registry.js';
|
|
6
6
|
export { AppDiscoveryFsError, NodeAppDiscoveryFs, NodeAppDiscoveryFsAdapter, defaultAppDiscoveryFs, defaultNodeAppDiscoveryFs, deriveWorkspaceAppToolName, deriveWorkspaceAppToolNames, discoverWorkspaceAppCandidates, discoverWorkspaceApps, LOCAL_APP_TOOL_PREFIX, MCP_APP_WORKSPACE_TOOL_PREFIX, scanWorkspaceApps, WORKSPACE_APP_TOOL_PREFIX, } from './discovery.js';
|
|
7
|
-
export type { AppDiscoveryBytes, AppDiscoveryDiagnostic, AppDiscoveryDirectoryEntry, AppDiscoveryDirectoryEntryKind, AppDiscoveryDirectoryListing, AppDiscoveryFileSystem, AppDiscoveryFsErrorCode, AppDiscoveryMaybePromise, WorkspaceAppDiscoveryOptions as AppDiscoveryOptions, McpAppDiscoveryDiagnostic, WorkspaceAppBuiltinCatalog, WorkspaceAppCandidate, WorkspaceAppDiscoveryIncompleteReason, WorkspaceAppDiscoveryOptions, WorkspaceAppDiscoveryResult, WorkspaceAppDiagnostic, WorkspaceAppDiagnosticCode, WorkspaceAppResourceSnapshot, WorkspaceAppReservedCatalog, WorkspaceAppSource, WorkspaceAppToolNames, } from './discovery.js';
|
|
7
|
+
export type { AppDiscoveryBytes, AppDiscoveryDiagnostic, AppDiscoveryDirectoryEntry, AppDiscoveryDirectoryEntryKind, AppDiscoveryDirectoryListing, AppDiscoveryFileSystem, AppDiscoveryFsErrorCode, AppDiscoveryMaybePromise, WorkspaceAppDiscoveryOptions as AppDiscoveryOptions, McpAppDiscoveryDiagnostic, WorkspaceAppBuiltinCatalog, WorkspaceAppCandidate, WorkspaceAppDiscoveryIncompleteReason, WorkspaceAppDiscoveryOptions, WorkspaceAppDiscoveryResult, WorkspaceAppDiagnostic, WorkspaceAppDiagnosticCode, WorkspaceAppDiscoverySource, WorkspaceAppResourceSnapshot, WorkspaceAppReservedCatalog, WorkspaceAppSource, WorkspaceAppToolNames, ProductAppBundleDefinitionIdentity, ProductAppBundleFileHash, ProductAppBundleIndex, ProductAppBundleInput, ProductAppBundlePackageIndex, ProductAppBundleProvenance, } from './discovery.js';
|
|
8
8
|
export { createWorkspaceAppCatalog, discoverWorkspaceAppCatalog, hashAppDefinition, hashCrewxAppDefinition, listWorkspaceApps, } from './catalog.js';
|
|
9
9
|
export type { CrewxAppBuiltinCatalog, CrewxAppCapability, CrewxAppCatalogOptions, CrewxAppCatalogResult, CrewxAppDefinitionHashInput, CrewxAppDefinitionSummary, CrewxAppDiagnostic, CrewxAppDiagnosticCode, CrewxAppDiagnosticSource, CrewxAppInstalledProjection, CrewxAppLocalDefinitionRef, CrewxAppOrigin, CrewxAppOwnership, CrewxAppShareability, CrewxAppSharingAvailability, CrewxAppSummary, } from './types.js';
|
|
10
10
|
export { MCP_APP_PROJECTION_MAX_BYTES, buildMcpAppStateDescriptor, buildMcpAppStateProjections, buildTerminalMcpAppStateDescriptor, buildTerminalMcpAppStateProjections, createMcpAppToolResult, serializeMcpAppStateJson, serializeMcpAppStateXml, } from './projection.js';
|
|
@@ -18,6 +18,8 @@ export { buildStateSetHandler, createStateSetHandler, } from './state-set.js';
|
|
|
18
18
|
export type { StateSetHandlerBuildInput } from './state-set.js';
|
|
19
19
|
export { SKILL_BACKEND_DEFAULT_TIMEOUT_MS, SKILL_BACKEND_MAX_INPUT_BYTES, SKILL_BACKEND_MAX_OUTPUT_BYTES, SKILL_BACKEND_SCHEMA_VERSION, buildSkillBackendHandler, } from './skill-backend.js';
|
|
20
20
|
export type { SkillBackendExecutionPort, SkillBackendExecutionRequest, SkillBackendExecutionResponse, SkillBackendHandlerBuildInput, SkillBackendInfrastructureErrorCode, SkillBackendPayload, } from './skill-backend.js';
|
|
21
|
+
export { externalResourceCheckItems, inspectSkillBackendOutput, scanExternalResources, } from './dev-checks.js';
|
|
22
|
+
export type { AppDevCheckItem, ExternalResourceFinding, ExternalResourceKind, InspectSkillBackendOutputOptions, ScanExternalResourcesOptions, } from './dev-checks.js';
|
|
21
23
|
export { MCP_APP_HOST_TOOL_ALLOWLIST, MCP_APP_LOCAL_RESOURCE_MIME_TYPE, MCP_APP_RESOURCE_MIME_TYPE, MCP_APP_RESOURCE_URI_PREFIX, } from './types.js';
|
|
22
24
|
export type { McpAppActionDispatcherToolInput, McpAppActionToolDescriptor, McpAppActionToolInput, McpAppButtonDescriptor, McpAppButtonInput, McpAppDescriptor, McpAppDescriptorInput, McpAppInputSchema, McpAppTone, McpUiResourceCsp, McpAppRegistry, McpAppResource, McpAppServerStateInput, McpAppStateDescriptor, McpAppStateProjections, McpAppHostToolInput, McpAppHostToolName, McpAppReadToolInput, McpAppSingleActionToolInput, McpAppToolCommonInput, McpAppToolDescriptor, McpAppToolInput, McpAppToolMetadata, McpAppToolRegistration, McpAppToolResult, McpAppToolVisibility, McpAppInstanceResourceBinding, McpAppMcpResourceBinding, McpAppResourceBinding, McpAppLocalResource, McpAppLocalRegistrationInput, McpAppLocalReadToolDescriptor, McpAppLocalActionToolDescriptor, McpAppLocalSingleActionToolDescriptor, McpAppLocalToolDiagnostic, McpAppLocalToolDescriptor, McpAppLocalRegistration, McpAppBuiltinRegistration, McpAppResolvedRegistration, McpAppLocalLauncher, McpAppBuiltinLauncher, McpAppLauncher, WorkspaceAppLauncher, WorkspaceAppResolvedRegistration, McpAppWorkspaceRegistry, WorkspaceAppRegistry, McpAppWorkspaceRegistryInput, } from './types.js';
|
|
23
25
|
export { buildWorkspaceAppSnapshot, discoverWorkspaceAppSnapshot, reconfirmWorkspaceAppSnapshot, } from './workspace-snapshot.js';
|
package/dist/mcp-app/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { JsonObject, UiDefinition, UiDefinitionRef, UiDefinitionDisplayMode, UiDefinitionUsage, UiInstance, UiInstanceStatus, UiActionConfirmation, UiActionHandlerRegistration } from '../ui-instance/types.js';
|
|
2
|
-
import type { AppDiscoveryFileSystem } from './discovery.js';
|
|
2
|
+
import type { AppDiscoveryFileSystem, ProductAppBundleInput, ProductAppBundleProvenance } from './discovery.js';
|
|
3
3
|
export declare const MCP_APP_RESOURCE_MIME_TYPE: "text/html;profile=mcp-app";
|
|
4
4
|
export declare const MCP_APP_RESOURCE_URI_PREFIX = "ui://crewx/";
|
|
5
5
|
export type McpAppToolVisibility = 'model' | 'app';
|
|
@@ -184,6 +184,7 @@ export interface McpAppLocalLauncher {
|
|
|
184
184
|
readonly tone?: McpAppTone;
|
|
185
185
|
readonly builtinOnly: false;
|
|
186
186
|
readonly definition: UiDefinitionRef;
|
|
187
|
+
readonly provenance?: ProductAppBundleProvenance;
|
|
187
188
|
readonly entryHash: string;
|
|
188
189
|
readonly resourceBinding: McpAppInstanceResourceBinding;
|
|
189
190
|
readonly tools: readonly McpAppLocalToolDescriptor[];
|
|
@@ -363,9 +364,10 @@ export interface CrewxAppSummary {
|
|
|
363
364
|
readonly marketplaceContentId?: string;
|
|
364
365
|
readonly slug?: string;
|
|
365
366
|
readonly definitionHash: string;
|
|
367
|
+
readonly provenance?: ProductAppBundleProvenance;
|
|
366
368
|
}
|
|
367
|
-
export type CrewxAppDiagnosticCode = 'MANIFEST_MISSING' | 'MANIFEST_INVALID' | 'ENTRY_INVALID' | 'INITIAL_STATE_INVALID' | 'DUPLICATE_ID' | 'RESERVED_ID' | 'PATH_ESCAPED' | 'LIMIT_EXCEEDED' | 'EXEC_DENIED' | 'SKILL_INVALID' | 'SKILL_READ_FAILED' | 'INSTALLED_MISSING' | 'INSTALLED_CONTENT_ID_MISSING' | 'INSTALLED_IDENTITY_MISMATCH' | 'BUILTIN_INVALID';
|
|
368
|
-
export type CrewxAppDiagnosticSource = 'apps' | 'skills' | 'node_modules' | 'builtin' | 'installed';
|
|
369
|
+
export type CrewxAppDiagnosticCode = 'MANIFEST_MISSING' | 'MANIFEST_INVALID' | 'ENTRY_INVALID' | 'INITIAL_STATE_INVALID' | 'DUPLICATE_ID' | 'RESERVED_ID' | 'BUNDLE_INTEGRITY' | 'LINEAGE_INVALID' | 'LINEAGE_STALE' | 'PATH_ESCAPED' | 'LIMIT_EXCEEDED' | 'EXEC_DENIED' | 'SKILL_INVALID' | 'SKILL_READ_FAILED' | 'INSTALLED_MISSING' | 'INSTALLED_CONTENT_ID_MISSING' | 'INSTALLED_IDENTITY_MISMATCH' | 'BUILTIN_INVALID';
|
|
370
|
+
export type CrewxAppDiagnosticSource = 'apps' | 'skills' | 'bundled' | 'node_modules' | 'builtin' | 'installed';
|
|
369
371
|
export interface CrewxAppDiagnostic {
|
|
370
372
|
readonly code: CrewxAppDiagnosticCode;
|
|
371
373
|
readonly source: CrewxAppDiagnosticSource;
|
|
@@ -384,6 +386,7 @@ export interface CrewxAppInstalledProjection {
|
|
|
384
386
|
export type CrewxAppBuiltinCatalog = Pick<McpAppRegistry, 'listMcpApps' | 'listMcpAppTools'>;
|
|
385
387
|
export interface CrewxAppCatalogOptions {
|
|
386
388
|
readonly filesystem?: AppDiscoveryFileSystem;
|
|
389
|
+
readonly productBundle?: ProductAppBundleInput;
|
|
387
390
|
readonly builtinCatalog?: CrewxAppBuiltinCatalog;
|
|
388
391
|
readonly installed?: readonly CrewxAppInstalledProjection[];
|
|
389
392
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { type AppDiscoveryFileSystem, type WorkspaceAppDiscoveryIncompleteReason, type WorkspaceAppDiagnostic, type WorkspaceAppDiscoveryOptions, type WorkspaceAppDiscoveryResult, type WorkspaceAppSource } from './discovery.js';
|
|
1
|
+
import { type AppDiscoveryFileSystem, type WorkspaceAppDiscoveryIncompleteReason, type WorkspaceAppDiagnostic, type WorkspaceAppDiscoveryOptions, type WorkspaceAppDiscoveryResult, type WorkspaceAppSource, type ProductAppBundleProvenance } from './discovery.js';
|
|
2
2
|
import { type SkillBackendExecutionPort } from './skill-backend.js';
|
|
3
3
|
import type { JsonObject, UiActionHandlerRegistration, UiDefinition, UiDefinitionRef } from '../ui-instance/types.js';
|
|
4
4
|
import type { McpAppLauncher, McpAppLocalResource, McpAppRegistry, McpAppWorkspaceRegistry } from './types.js';
|
|
5
5
|
export interface WorkspaceAppSnapshotResource extends McpAppLocalResource {
|
|
6
6
|
readonly appId: string;
|
|
7
7
|
readonly definition: UiDefinitionRef;
|
|
8
|
-
readonly source
|
|
8
|
+
readonly source?: WorkspaceAppSource;
|
|
9
|
+
readonly provenance?: ProductAppBundleProvenance;
|
|
9
10
|
}
|
|
10
11
|
export interface WorkspaceAppSnapshotInitialState {
|
|
11
12
|
readonly appId: string;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS `ui_instance_repins` (
|
|
2
|
+
`instance_id` text NOT NULL,
|
|
3
|
+
`from_version` integer NOT NULL,
|
|
4
|
+
`from_hash` text NOT NULL,
|
|
5
|
+
`to_version` integer NOT NULL,
|
|
6
|
+
`to_hash` text NOT NULL,
|
|
7
|
+
`from_revision` integer NOT NULL,
|
|
8
|
+
`to_revision` integer,
|
|
9
|
+
`status` text NOT NULL,
|
|
10
|
+
`code` text,
|
|
11
|
+
`attempts` integer DEFAULT 1 NOT NULL,
|
|
12
|
+
`first_at` integer NOT NULL,
|
|
13
|
+
`last_at` integer NOT NULL,
|
|
14
|
+
PRIMARY KEY(`instance_id`, `to_hash`),
|
|
15
|
+
CONSTRAINT "ui_instance_repins_instance_id_ck" CHECK(length("ui_instance_repins"."instance_id") BETWEEN 5 AND 128 AND "ui_instance_repins"."instance_id" GLOB 'uic_*'),
|
|
16
|
+
CONSTRAINT "ui_instance_repins_from_version_ck" CHECK("ui_instance_repins"."from_version" >= 1),
|
|
17
|
+
CONSTRAINT "ui_instance_repins_to_version_ck" CHECK("ui_instance_repins"."to_version" >= 1),
|
|
18
|
+
CONSTRAINT "ui_instance_repins_from_hash_ck" CHECK(length("ui_instance_repins"."from_hash") = 64 AND "ui_instance_repins"."from_hash" NOT GLOB '*[^0-9a-f]*'),
|
|
19
|
+
CONSTRAINT "ui_instance_repins_to_hash_ck" CHECK(length("ui_instance_repins"."to_hash") = 64 AND "ui_instance_repins"."to_hash" NOT GLOB '*[^0-9a-f]*'),
|
|
20
|
+
CONSTRAINT "ui_instance_repins_from_revision_ck" CHECK("ui_instance_repins"."from_revision" >= 0),
|
|
21
|
+
CONSTRAINT "ui_instance_repins_to_revision_ck" CHECK("ui_instance_repins"."to_revision" IS NULL OR "ui_instance_repins"."to_revision" >= 0),
|
|
22
|
+
CONSTRAINT "ui_instance_repins_status_ck" CHECK("ui_instance_repins"."status" IN ('applied', 'deferred', 'failed')),
|
|
23
|
+
CONSTRAINT "ui_instance_repins_attempts_ck" CHECK("ui_instance_repins"."attempts" >= 1),
|
|
24
|
+
CONSTRAINT "ui_instance_repins_dates_ck" CHECK("ui_instance_repins"."first_at" >= 0 AND "ui_instance_repins"."last_at" >= "ui_instance_repins"."first_at"),
|
|
25
|
+
CONSTRAINT "ui_instance_repins_result_ck" CHECK((
|
|
26
|
+
("ui_instance_repins"."status" = 'applied' AND "ui_instance_repins"."code" IS NULL
|
|
27
|
+
AND "ui_instance_repins"."to_revision" = "ui_instance_repins"."from_revision" + 1)
|
|
28
|
+
OR
|
|
29
|
+
("ui_instance_repins"."status" IN ('deferred', 'failed') AND "ui_instance_repins"."code" IS NOT NULL
|
|
30
|
+
AND "ui_instance_repins"."to_revision" IS NULL)
|
|
31
|
+
))
|
|
32
|
+
);
|
|
33
|
+
--> statement-breakpoint
|
|
34
|
+
ALTER TABLE `ui_action_receipts` ADD `definition_id` text;--> statement-breakpoint
|
|
35
|
+
ALTER TABLE `ui_action_receipts` ADD `definition_version` integer;--> statement-breakpoint
|
|
36
|
+
ALTER TABLE `ui_action_receipts` ADD `definition_hash` text;
|