@crewx/sdk 0.9.0-rc.115 → 0.9.0-rc.117

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.
@@ -1,5 +1,6 @@
1
1
  export declare const UPDATE_QUIESCE_LOCK_FILENAME = "update-quiesce.lock";
2
2
  export declare const UPDATE_ADMISSION_RESERVATION_DIRNAME = "update-admission";
3
+ export declare const UPDATE_ADMISSION_SCOPE_ENV = "CREWX_UPDATE_ADMISSION_SCOPE";
3
4
  export declare function resolveUpdateQuiesceLockFile(): string;
4
5
  export declare function resolveUpdateAdmissionReservationDir(): string;
5
6
  export declare function isProcessAlive(pid: number): boolean;
@@ -3,6 +3,7 @@ import type { UiPluginHandlerMetadata, UiPluginManifestV2, UiPluginNormalizedMan
3
3
  import { AppDiscoveryFsError, NodeAppDiscoveryFs, NodeAppDiscoveryFsAdapter, defaultAppDiscoveryFs, defaultNodeAppDiscoveryFs, type AppDiscoveryFsErrorCode } from './node-app-discovery-fs.js';
4
4
  import type { McpAppRegistry } from './types.js';
5
5
  export type WorkspaceAppSource = 'apps' | 'skills';
6
+ export type WorkspaceAppDiscoveryIncompleteReason = 'time_limit';
6
7
  export type WorkspaceAppDiagnosticCode = 'MANIFEST_MISSING' | 'MANIFEST_INVALID' | 'ENTRY_INVALID' | 'INITIAL_STATE_INVALID' | 'DUPLICATE_ID' | 'RESERVED_ID' | 'PATH_ESCAPED' | 'LIMIT_EXCEEDED' | 'EXEC_DENIED';
7
8
  export interface WorkspaceAppDiagnostic {
8
9
  readonly code: WorkspaceAppDiagnosticCode;
@@ -90,6 +91,8 @@ export interface WorkspaceAppCandidate {
90
91
  export interface WorkspaceAppDiscoveryResult {
91
92
  readonly apps: readonly WorkspaceAppCandidate[];
92
93
  readonly diagnostics: readonly WorkspaceAppDiagnostic[];
94
+ readonly complete: boolean;
95
+ readonly incompleteReason?: WorkspaceAppDiscoveryIncompleteReason;
93
96
  readonly candidates?: readonly WorkspaceAppCandidate[];
94
97
  }
95
98
  export declare const WORKSPACE_APP_TOOL_PREFIX = "crewx_local_app_";
@@ -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, 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, WorkspaceAppResourceSnapshot, WorkspaceAppReservedCatalog, WorkspaceAppSource, WorkspaceAppToolNames, } 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';
@@ -12,8 +12,8 @@ export { buildMcpAppsContext } from './apps-context.js';
12
12
  export type { McpAppsContext } from './apps-context.js';
13
13
  export { buildStateSetHandler, createStateSetHandler, } from './state-set.js';
14
14
  export type { StateSetHandlerBuildInput } from './state-set.js';
15
- export { SQLITE_BROWSE_ACTION_IDS, SQLITE_BROWSE_DB_IDS, SQLITE_BROWSE_HANDLER, SQLITE_BROWSE_PAGE_SIZE, SQLITE_BROWSE_PLUGIN_ID, SQLITE_BROWSE_RELATIVE_PATH, SQLITE_BROWSE_ROWID_KEY, SqliteBrowseError, buildSqliteBrowseHandler, isSqliteBrowseOrigin, planSqliteBrowse, projectSqliteBrowse, } from './sqlite-browse.js';
16
- export type { SqliteBrowseActionId, SqliteBrowseCell, SqliteBrowseDbId, SqliteBrowseErrorCode, SqliteBrowseExecutePort, SqliteBrowseExecuteResult, SqliteBrowseHandlerBuildInput, SqliteBrowseOrigin, SqliteBrowseParameter, SqliteBrowsePlan, SqliteBrowsePlanInput, SqliteBrowseRawRow, SqliteBrowseState, } from './sqlite-browse.js';
15
+ 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';
16
+ export type { SkillBackendExecutionPort, SkillBackendExecutionRequest, SkillBackendExecutionResponse, SkillBackendHandlerBuildInput, SkillBackendInfrastructureErrorCode, SkillBackendPayload, } from './skill-backend.js';
17
17
  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';
18
18
  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, McpAppLocalToolDescriptor, McpAppLocalRegistration, McpAppBuiltinRegistration, McpAppResolvedRegistration, McpAppLocalLauncher, McpAppBuiltinLauncher, McpAppLauncher, WorkspaceAppLauncher, WorkspaceAppResolvedRegistration, McpAppWorkspaceRegistry, WorkspaceAppRegistry, McpAppWorkspaceRegistryInput, } from './types.js';
19
19
  export { buildWorkspaceAppSnapshot, discoverWorkspaceAppSnapshot, reconfirmWorkspaceAppSnapshot, } from './workspace-snapshot.js';
@@ -0,0 +1,48 @@
1
+ import type { JsonObject, UiExternalActionHandlerRegistration } from '../ui-instance/types.js';
2
+ import type { UiPluginNormalizedManifestV2 } from '../ui-plugin/types.js';
3
+ import type { WorkspaceAppSource } from './discovery.js';
4
+ export declare const SKILL_BACKEND_SCHEMA_VERSION: 1;
5
+ export declare const SKILL_BACKEND_MAX_INPUT_BYTES: number;
6
+ export declare const SKILL_BACKEND_MAX_OUTPUT_BYTES: number;
7
+ export declare const SKILL_BACKEND_DEFAULT_TIMEOUT_MS = 15000;
8
+ export type SkillBackendInfrastructureErrorCode = 'EXEC_DENIED' | 'EXEC_TIMEOUT' | 'EXEC_OUTPUT_INVALID' | 'EXECUTION_FAILED' | 'ACTION_IN_FLIGHT' | 'INPUT_INVALID';
9
+ export interface SkillBackendPayload {
10
+ readonly schemaVersion: typeof SKILL_BACKEND_SCHEMA_VERSION;
11
+ readonly actionId: string;
12
+ readonly input: JsonObject;
13
+ readonly state: JsonObject;
14
+ }
15
+ export type SkillBackendExecutionResponse = {
16
+ readonly state?: JsonObject;
17
+ readonly result?: JsonObject;
18
+ } | {
19
+ readonly outcome: 'rejected' | 'failed';
20
+ readonly errorCode: string;
21
+ readonly state?: JsonObject;
22
+ readonly result?: JsonObject;
23
+ };
24
+ export interface SkillBackendExecutionRequest {
25
+ readonly instanceId: string;
26
+ readonly appId: string;
27
+ readonly definitionId: string;
28
+ readonly definitionVersion: number;
29
+ readonly definitionHash: string;
30
+ readonly actionId: string;
31
+ readonly source: WorkspaceAppSource;
32
+ readonly relativePath: string;
33
+ readonly command: readonly string[];
34
+ readonly payload: SkillBackendPayload;
35
+ }
36
+ export interface SkillBackendExecutionPort {
37
+ execute(request: SkillBackendExecutionRequest): PromiseLike<SkillBackendExecutionResponse>;
38
+ }
39
+ export interface SkillBackendHandlerBuildInput {
40
+ readonly normalized: UiPluginNormalizedManifestV2;
41
+ readonly actionId: string;
42
+ readonly source: WorkspaceAppSource;
43
+ readonly relativePath: string;
44
+ readonly execute: SkillBackendExecutionPort;
45
+ readonly definitionHash?: string;
46
+ }
47
+ export declare function buildSkillBackendHandler(normalized: UiPluginNormalizedManifestV2, actionId: string, source: WorkspaceAppSource, relativePath: string, execute: SkillBackendExecutionPort): UiExternalActionHandlerRegistration | undefined;
48
+ export declare function buildSkillBackendHandler(input: SkillBackendHandlerBuildInput): UiExternalActionHandlerRegistration | undefined;
@@ -4,7 +4,7 @@ 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';
6
6
  export type McpAppTone = 'blue' | 'violet' | 'emerald' | 'amber' | 'rose' | 'sky' | 'slate' | 'indigo';
7
- export declare const MCP_APP_HOST_TOOL_ALLOWLIST: readonly ["crewx_app_terminal_connect"];
7
+ export declare const MCP_APP_HOST_TOOL_ALLOWLIST: readonly ["crewx_app_terminal_connect", "crewx_app_html_viewer_open"];
8
8
  export type McpAppHostToolName = typeof MCP_APP_HOST_TOOL_ALLOWLIST[number];
9
9
  export interface McpUiResourceCsp {
10
10
  readonly connectDomains?: readonly string[];
@@ -1,10 +1,11 @@
1
- import { type AppDiscoveryFileSystem, type WorkspaceAppDiagnostic, type WorkspaceAppDiscoveryOptions, type WorkspaceAppDiscoveryResult } from './discovery.js';
2
- import { type SqliteBrowseExecutePort } from './sqlite-browse.js';
1
+ import { type AppDiscoveryFileSystem, type WorkspaceAppDiscoveryIncompleteReason, type WorkspaceAppDiagnostic, type WorkspaceAppDiscoveryOptions, type WorkspaceAppDiscoveryResult, type WorkspaceAppSource } from './discovery.js';
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: WorkspaceAppSource;
8
9
  }
9
10
  export interface WorkspaceAppSnapshotInitialState {
10
11
  readonly appId: string;
@@ -18,7 +19,7 @@ export interface WorkspaceAppSnapshotBuildOptions {
18
19
  readonly builtins?: McpAppRegistry;
19
20
  readonly builtin?: McpAppRegistry;
20
21
  readonly registry?: McpAppRegistry;
21
- readonly sqliteBrowse?: SqliteBrowseExecutePort;
22
+ readonly skillBackend?: SkillBackendExecutionPort;
22
23
  }
23
24
  export type WorkspaceAppSnapshotOptions = WorkspaceAppDiscoveryOptions & WorkspaceAppSnapshotBuildOptions;
24
25
  export interface WorkspaceAppSnapshot {
@@ -43,6 +44,11 @@ export type WorkspaceAppSnapshotReconfirmResult = {
43
44
  readonly previousSnapshot: WorkspaceAppSnapshot;
44
45
  readonly snapshot: WorkspaceAppSnapshot;
45
46
  readonly diagnostics: readonly WorkspaceAppDiagnostic[];
47
+ } | {
48
+ readonly kind: 'incomplete';
49
+ readonly reason: WorkspaceAppDiscoveryIncompleteReason;
50
+ readonly snapshot: WorkspaceAppSnapshot;
51
+ readonly diagnostics: readonly WorkspaceAppDiagnostic[];
46
52
  } | {
47
53
  readonly kind: 'io_error';
48
54
  readonly snapshot: WorkspaceAppSnapshot;