@taskforcehq/taskforce 0.3.329 → 0.3.332
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 +7 -2
- package/dist/Taskforce.module.css +290 -45
- package/dist/components/features/AiProfilesModule.js +3 -5
- package/dist/components/features/TaskSettings.js +70 -14
- package/dist/components/features/TaskforceAgentsModule.d.ts +1 -2
- package/dist/components/features/TaskforceAgentsModule.js +586 -116
- package/dist/components/features/agentCapabilities/AgentCapabilitiesPrototype.d.ts +2 -2
- package/dist/components/features/agentCapabilities/AgentCapabilitiesPrototype.js +2 -2
- package/dist/components/features/agentConnections/AgentConnectionControl.d.ts +15 -0
- package/dist/components/features/agentConnections/AgentConnectionControl.js +125 -0
- package/dist/components/features/agentConnections/ModelConnectionsPanel.d.ts +18 -0
- package/dist/components/features/agentConnections/ModelConnectionsPanel.js +393 -0
- package/dist/components/features/agentConnections/modelConnectionsApi.d.ts +65 -0
- package/dist/components/features/agentConnections/modelConnectionsApi.js +129 -0
- package/dist/components/features/planning/PlanningModule.js +15 -3
- package/dist/components/features/planning/planningMetadata.d.ts +10 -0
- package/dist/components/features/planning/planningMetadata.js +8 -0
- package/dist/components/features/taskforceAgentAssignments/AgentBehaviorAssignments.js +15 -24
- package/dist/components/features/taskforceAgentEditorModel.d.ts +2 -1
- package/dist/components/features/taskforceAgentEditorModel.js +3 -1
- package/dist/components/features/workflowManager/workflowManagerApi.d.ts +1 -1
- package/dist/components/features/workflowManager/workflowManagerApi.js +3 -0
- package/dist/components/task/TaskWorkflowAssignmentField.js +68 -10
- package/dist/components/views/StandaloneLayout.js +62 -27
- package/dist/components/views/panels/PlanningDrawer.d.ts +2 -1
- package/dist/components/views/panels/PlanningDrawer.js +12 -8
- package/dist/components/views/standalone/modals/SyncStatusModal.d.ts +4 -3
- package/dist/components/views/standalone/modals/SyncStatusModal.js +33 -38
- package/dist/config/envSchema.js +55 -1
- package/dist/core/McpTokenService.d.ts +25 -1
- package/dist/core/McpTokenService.js +106 -15
- package/dist/core/TaskChecklistCommandService.d.ts +27 -0
- package/dist/core/TaskChecklistCommandService.js +83 -5
- package/dist/core/TaskLifecycleCommandService.d.ts +3 -1
- package/dist/core/TaskLifecycleCommandService.js +6 -2
- package/dist/core/Taskforce.d.ts +43 -3
- package/dist/core/Taskforce.js +158 -7
- package/dist/core/types.d.ts +9 -0
- package/dist/documentReviews/DocumentReviewCommentStore.d.ts +2 -0
- package/dist/documentReviews/DocumentReviewCommentStore.js +28 -9
- package/dist/documentReviews/commandService.d.ts +2 -1
- package/dist/documentReviews/commandService.js +6 -3
- package/dist/hooks/sync/orchestratorShared.d.ts +1 -0
- package/dist/hooks/sync/orchestratorShared.js +2 -0
- package/dist/hooks/sync/useLocalSyncCoordinatorSnapshot.d.ts +3 -0
- package/dist/hooks/sync/useLocalSyncCoordinatorSnapshot.js +85 -9
- package/dist/hooks/sync/useSyncStatusControls.d.ts +4 -1
- package/dist/hooks/sync/useSyncStatusControls.js +47 -11
- package/dist/hooks/useSyncOrchestrator.d.ts +3 -0
- package/dist/hooks/useSyncOrchestrator.js +111 -2
- package/dist/hooks/useTaskData.d.ts +31 -1
- package/dist/hooks/useTaskData.js +29 -7
- package/dist/hooks/useTaskMutations.d.ts +3 -1
- package/dist/hooks/useTaskMutations.js +46 -12
- package/dist/hooks/useTaskforce.d.ts +2 -0
- package/dist/hooks/useTaskforce.js +11 -2
- package/dist/mcp/clientRegistry.d.ts +2 -2
- package/dist/mcp/clientRegistry.js +1 -1
- package/dist/mcp/documentAssetRegistrar.js +9 -6
- package/dist/mcp/durableTaskMutationRouter.d.ts +4 -1
- package/dist/mcp/durableTaskMutationRouter.js +10 -0
- package/dist/mcp/durableTaskRelationshipMutationRouter.js +4 -0
- package/dist/mcp/httpProtocolRouting.d.ts +11 -0
- package/dist/mcp/httpProtocolRouting.js +22 -0
- package/dist/mcp/localCliHealth.d.ts +2 -2
- package/dist/mcp/localCliHealth.js +2 -2
- package/dist/mcp/localServiceProxy.d.ts +1 -0
- package/dist/mcp/localServiceProxy.js +530 -68
- package/dist/mcp/planningAttachmentCommandAdapter.d.ts +3 -1
- package/dist/mcp/planningAttachmentCommandAdapter.js +20 -2
- package/dist/mcp/runtime.d.ts +54 -79
- package/dist/mcp/runtime.js +408 -102
- package/dist/mcp/taskPlanningRegistrar.js +25 -6
- package/dist/mcp/toolProfiles.d.ts +2 -0
- package/dist/mcp/toolProfiles.js +11 -0
- package/dist/mcp/toolRegistry.d.ts +1 -0
- package/dist/mcp/toolRegistry.js +9 -8
- package/dist/mcp/workflowExecutionRegistrar.js +4 -4
- package/dist/migrations/taskSchemaMigrations.d.ts +5 -0
- package/dist/migrations/taskSchemaMigrations.js +415 -0
- package/dist/runtime/appGates.d.ts +2 -1
- package/dist/runtime/appGates.js +7 -0
- package/dist/server/buildInfo.d.ts +1 -0
- package/dist/server/buildInfo.js +5 -1
- package/dist/server/cloudMcpCapacityTelemetry.d.ts +68 -0
- package/dist/server/cloudMcpCapacityTelemetry.js +221 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.js +108 -11
- package/dist/server/localDatabaseIdentity.js +4 -1
- package/dist/server/localServiceLease.js +2 -1
- package/dist/server/localServiceSessions.d.ts +14 -17
- package/dist/server/localServiceSessions.js +308 -94
- package/dist/server/localWorkspaceSyncServerRuntime.js +25 -19
- package/dist/server/routes/admin.d.ts +4 -0
- package/dist/server/routes/admin.js +126 -5
- package/dist/server/routes/agents.d.ts +7 -0
- package/dist/server/routes/agents.js +277 -24
- package/dist/server/routes/billing.js +5 -1
- package/dist/server/routes/durableTaskHttpRouters.d.ts +2 -0
- package/dist/server/routes/executorPhaseAApprovals.d.ts +19 -0
- package/dist/server/routes/executorPhaseAApprovals.js +140 -0
- package/dist/server/routes/executorPhaseAIssuerRedemptions.d.ts +11 -0
- package/dist/server/routes/executorPhaseAIssuerRedemptions.js +24 -0
- package/dist/server/routes/githubReviewEvidence.d.ts +19 -0
- package/dist/server/routes/githubReviewEvidence.js +116 -0
- package/dist/server/routes/localService.d.ts +15 -4
- package/dist/server/routes/localService.js +136 -40
- package/dist/server/routes/modelConnections.d.ts +24 -0
- package/dist/server/routes/modelConnections.js +205 -0
- package/dist/server/routes/shared.d.ts +22 -0
- package/dist/server/routes/shared.js +298 -182
- package/dist/server/routes/sync.js +1 -0
- package/dist/server/routes/syncAuxRoutes.js +5 -1
- package/dist/server/routes/syncPushRoutes.d.ts +1 -0
- package/dist/server/routes/syncPushRoutes.js +1 -0
- package/dist/server/routes/syncV3FeedRoutes.js +10 -1
- package/dist/server/routes/syncV3OperationRoutes.js +35 -9
- package/dist/server/routes/tasks.js +21 -2
- package/dist/server/routes/workflows.js +9 -1
- package/dist/server/routes.js +59 -0
- package/dist/service/localServiceCli.d.ts +2 -2
- package/dist/service/localServiceCli.js +4 -3
- package/dist/services/codexAppServerModelGateway.d.ts +54 -5
- package/dist/services/codexAppServerModelGateway.js +246 -21
- package/dist/services/codexDeviceCodeLoginManager.d.ts +39 -0
- package/dist/services/codexDeviceCodeLoginManager.js +265 -0
- package/dist/services/codexModelProviderConnectionLifecycle.d.ts +8 -0
- package/dist/services/codexModelProviderConnectionLifecycle.js +73 -0
- package/dist/services/executorPhaseAApprovalRuntime.d.ts +14 -0
- package/dist/services/executorPhaseAApprovalRuntime.js +24 -0
- package/dist/services/executorPhaseAApprovalService.d.ts +40 -0
- package/dist/services/executorPhaseAApprovalService.js +609 -0
- package/dist/services/executorPhaseADriftEvaluator.d.ts +78 -0
- package/dist/services/executorPhaseADriftEvaluator.js +93 -0
- package/dist/services/executorPhaseAIssuerCore.d.ts +139 -0
- package/dist/services/executorPhaseAIssuerCore.js +402 -0
- package/dist/services/executorPhaseAIssuerRedemptionService.d.ts +34 -0
- package/dist/services/executorPhaseAIssuerRedemptionService.js +158 -0
- package/dist/services/githubReviewEvidenceRuntime.d.ts +14 -0
- package/dist/services/githubReviewEvidenceRuntime.js +30 -0
- package/dist/services/githubReviewEvidenceService.d.ts +93 -0
- package/dist/services/githubReviewEvidenceService.js +336 -0
- package/dist/services/modelGateway.d.ts +7 -0
- package/dist/services/modelProviderConnectionService.d.ts +71 -0
- package/dist/services/modelProviderConnectionService.js +279 -0
- package/dist/services/modelProviderCredentialHome.d.ts +32 -0
- package/dist/services/modelProviderCredentialHome.js +271 -0
- package/dist/services/ownerScopedModelConnectionGateway.d.ts +12 -0
- package/dist/services/ownerScopedModelConnectionGateway.js +30 -0
- package/dist/services/taskforceAgentConnectionBindingService.d.ts +66 -0
- package/dist/services/taskforceAgentConnectionBindingService.js +185 -0
- package/dist/services/taskforceAgentMcpBridge.d.ts +2 -2
- package/dist/services/taskforceAgentMcpBridge.js +42 -29
- package/dist/shared/adminEdgeProxy.d.ts +5 -0
- package/dist/shared/adminEdgeProxy.js +94 -0
- package/dist/shared/adminProxySessionCookies.d.ts +16 -0
- package/dist/shared/adminProxySessionCookies.js +86 -0
- package/dist/shared/aiProfileColors.d.ts +31 -1
- package/dist/shared/aiProfileColors.js +14 -6
- package/dist/shared/executorPhaseAApprovalGoldenVector.json +269 -0
- package/dist/shared/executorPhaseAApprovalReceipt.d.ts +112 -0
- package/dist/shared/executorPhaseAApprovalReceipt.js +58 -0
- package/dist/shared/executorPhaseAApprovalTrustPolicy.json +10 -0
- package/dist/shared/executorPhaseADriftContracts.d.ts +37 -0
- package/dist/shared/executorPhaseADriftContracts.js +63 -0
- package/dist/shared/executorPhaseAIssuerContracts.d.ts +75 -0
- package/dist/shared/executorPhaseAIssuerContracts.js +90 -0
- package/dist/shared/executorPhaseARunAuthorization.d.ts +120 -0
- package/dist/shared/executorPhaseARunAuthorization.js +232 -0
- package/dist/shared/executorPhaseASchemaValidation.d.ts +7 -0
- package/dist/shared/executorPhaseASchemaValidation.js +53 -0
- package/dist/shared/executorPhaseASchemas/approval-receipt.schema.json +106 -0
- package/dist/shared/executorPhaseASchemas/drift-attestation.schema.json +54 -0
- package/dist/shared/executorPhaseASchemas/drift-request.schema.json +47 -0
- package/dist/shared/executorPhaseASchemas/foundation-manifest.schema.json +29 -0
- package/dist/shared/executorPhaseASchemas/issuer-audit-record.schema.json +24 -0
- package/dist/shared/executorPhaseASchemas/issuer-proof.schema.json +43 -0
- package/dist/shared/executorPhaseASchemas/issuer-redemption-request.schema.json +18 -0
- package/dist/shared/executorPhaseASchemas/issuer-redemption-response.schema.json +39 -0
- package/dist/shared/executorPhaseASchemas/logical-envelope.schema.json +149 -0
- package/dist/shared/executorPhaseASchemas/preflight-report.schema.json +216 -0
- package/dist/shared/executorPhaseASchemas/run-capability.schema.json +111 -0
- package/dist/shared/executorPhaseASchemas/sender-proof.schema.json +37 -0
- package/dist/shared/executorPhaseASchemas/workload-grant.schema.json +68 -0
- package/dist/shared/executorPhaseASchemas/workload-jwt-claims.schema.json +67 -0
- package/dist/shared/executorPhaseATiming.d.ts +1 -0
- package/dist/shared/executorPhaseATiming.js +1 -0
- package/dist/shared/planningIdentity.js +1 -1
- package/dist/shared/productLogoKeys.d.ts +2 -0
- package/dist/shared/productLogoKeys.js +18 -0
- package/dist/shared/taskforceAgentDefinition.d.ts +0 -1
- package/dist/shared/taskforceAgentDefinition.js +6 -9
- package/dist/shared/taskforceAgentModels.js +7 -3
- package/dist/shared/userFeatureGrants.d.ts +4 -0
- package/dist/shared/userFeatureGrants.js +7 -0
- package/dist/storage/executorPhaseAApprovalReceiptStore.d.ts +37 -0
- package/dist/storage/executorPhaseAApprovalReceiptStore.js +81 -0
- package/dist/storage/executorPhaseARunAuthorizationStore.d.ts +103 -0
- package/dist/storage/executorPhaseARunAuthorizationStore.js +492 -0
- package/dist/storage/githubReviewEvidenceInstallationStore.d.ts +26 -0
- package/dist/storage/githubReviewEvidenceInstallationStore.js +89 -0
- package/dist/storage/modelProviderConnectionStore.d.ts +99 -0
- package/dist/storage/modelProviderConnectionStore.js +446 -0
- package/dist/storage/postgresAdapter.d.ts +4 -0
- package/dist/storage/postgresAdapter.js +14 -1
- package/dist/storage/postgresRequestDiagnostics.d.ts +9 -1
- package/dist/storage/postgresRequestDiagnostics.js +15 -2
- package/dist/storage/postgresWorker.js +20 -2
- package/dist/storage/postgresWorkerProtocol.d.ts +7 -0
- package/dist/storage/taskforceAgentConnectionBindingStore.d.ts +31 -0
- package/dist/storage/taskforceAgentConnectionBindingStore.js +84 -0
- package/dist/storage/workflowStore.d.ts +2 -0
- package/dist/storage/workflowStore.js +39 -2
- package/dist/sync/cloudSyncApi.js +4 -2
- package/dist/sync/collaborationSyncState.js +5 -0
- package/dist/sync/coordinator/localSyncExecutionPermitStore.js +60 -29
- package/dist/sync/coordinator/localWorkspaceSyncPendingV2PushProgress.d.ts +10 -0
- package/dist/sync/coordinator/localWorkspaceSyncPendingV2PushProgress.js +29 -0
- package/dist/sync/coordinator/localWorkspaceSyncRunner.d.ts +3 -1
- package/dist/sync/coordinator/localWorkspaceSyncRunner.js +18 -0
- package/dist/sync/coordinator/localWorkspaceSyncRunnerState.d.ts +15 -1
- package/dist/sync/coordinator/localWorkspaceSyncRunnerState.js +99 -2
- package/dist/sync/coordinator/workspaceSyncCredentialBroker.d.ts +1 -0
- package/dist/sync/coordinator/workspaceSyncCredentialBroker.js +33 -4
- package/dist/sync/engine/workspaceSyncContentLifecycleAdapter.d.ts +2 -1
- package/dist/sync/engine/workspaceSyncContentVersionStore.d.ts +38 -0
- package/dist/sync/engine/workspaceSyncContentVersionStore.js +50 -1
- package/dist/sync/engine/workspaceSyncEngineLifecyclePolicy.js +6 -6
- package/dist/sync/engine/workspaceSyncEnginePushCompletion.d.ts +14 -0
- package/dist/sync/engine/workspaceSyncEnginePushCompletion.js +84 -0
- package/dist/sync/engine/workspaceSyncEngineRecovery.js +1 -0
- package/dist/sync/engine/workspaceSyncEngineRuntime.d.ts +1 -0
- package/dist/sync/engine/workspaceSyncEngineRuntime.js +1 -0
- package/dist/sync/engine/workspaceSyncEngineServerRunnerOperations.js +112 -38
- package/dist/sync/engine/workspaceSyncEngineServerSnapshotReader.js +6 -0
- package/dist/sync/engine/workspaceSyncEngineTransfers.js +3 -1
- package/dist/sync/engine/workspaceSyncV2ChangeDispatcher.d.ts +1 -0
- package/dist/sync/engine/workspaceSyncV2ChangeDispatcher.js +31 -0
- package/dist/sync/syncApplyHandlers.d.ts +3 -0
- package/dist/sync/syncApplyHandlers.js +81 -15
- package/dist/sync/syncService.d.ts +15 -0
- package/dist/sync/syncService.js +83 -18
- package/dist/sync/taskforceAgentSyncAuthorization.d.ts +16 -0
- package/dist/sync/taskforceAgentSyncAuthorization.js +20 -0
- package/dist/sync/v3/combinedFeedCapability.js +4 -0
- package/dist/sync/v3/durableInitiativeMutationRouter.js +18 -10
- package/dist/sync/v3/durableOperationReplay.d.ts +14 -0
- package/dist/sync/v3/durableOperationReplay.js +18 -0
- package/dist/sync/v3/durableTaskAttachmentLinksMutationRouter.js +3 -0
- package/dist/sync/v3/durableTaskChecklistMutationRouter.d.ts +2 -1
- package/dist/sync/v3/durableTaskChecklistMutationRouter.js +58 -15
- package/dist/sync/v3/durableTaskCommentMutationRouter.js +3 -0
- package/dist/sync/v3/durableTaskHttpRootMutationRouter.d.ts +1 -1
- package/dist/sync/v3/durableTaskHttpRootMutationRouter.js +10 -0
- package/dist/sync/v3/durableTaxonomyMutationRouter.js +5 -0
- package/dist/sync/v3/durableWorkflowRuntimeMutationRouter.d.ts +18 -7
- package/dist/sync/v3/durableWorkflowRuntimeMutationRouter.js +89 -23
- package/dist/sync/v3/durableWorkstreamMutationRouter.js +18 -10
- package/dist/sync/v3/durableWorkstreamTaskOrderMutationRouter.js +16 -5
- package/dist/sync/v3/localOutboxDispatchRuntime.js +2 -2
- package/dist/sync/v3/localOutboxRecoveryPreparationService.js +8 -2
- package/dist/sync/v3/localTaskChecklistOutboxHandler.js +16 -2
- package/dist/sync/v3/localTaskChecklistOutboxService.d.ts +4 -0
- package/dist/sync/v3/localTaskChecklistOutboxService.js +14 -1
- package/dist/sync/v3/localTaskCreateOutboxService.d.ts +3 -1
- package/dist/sync/v3/localTaskCreateOutboxService.js +6 -1
- package/dist/sync/v3/localTaskDeleteOutboxService.js +1 -0
- package/dist/sync/v3/localTaskLifecycleOutboxService.d.ts +2 -1
- package/dist/sync/v3/localTaskLifecycleOutboxService.js +5 -1
- package/dist/sync/v3/localTaskMetadataOutboxService.d.ts +2 -1
- package/dist/sync/v3/localTaskMetadataOutboxService.js +6 -2
- package/dist/sync/v3/localTaskStatusOutboxService.d.ts +10 -1
- package/dist/sync/v3/localTaskStatusOutboxService.js +238 -16
- package/dist/sync/v3/syncDurabilityStore.d.ts +36 -1
- package/dist/sync/v3/syncDurabilityStore.js +202 -8
- package/dist/sync/v3/taskChecklistMutationService.d.ts +11 -0
- package/dist/sync/v3/taskChecklistMutationService.js +44 -1
- package/dist/sync/v3/taskStatusMutationService.d.ts +29 -1
- package/dist/sync/v3/taskStatusMutationService.js +119 -3
- package/dist/sync/v3/workflowAssignmentSync.d.ts +5 -0
- package/dist/sync/v3/workflowAssignmentSync.js +27 -0
- package/dist/sync/v3/workflowRuntimeMutationService.d.ts +5 -0
- package/dist/sync/v3/workflowRuntimeMutationService.js +124 -71
- package/dist/sync/v3/workspaceSyncJournalReader.js +1 -1
- package/dist/sync/v3/workspaceSyncOperationRetentionService.d.ts +16 -0
- package/dist/sync/v3/workspaceSyncOperationRetentionService.js +83 -0
- package/dist/sync/v3/workspaceSyncV3CloudOperationHandler.d.ts +1 -0
- package/dist/sync/v3/workspaceSyncV3CloudOperationHandler.js +9 -2
- package/dist/sync/v3/workspaceSyncV3CombinedLocalApply.js +25 -3
- package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.d.ts +7 -0
- package/dist/sync/v3/workspaceSyncV3CombinedRepairBaseline.js +44 -32
- package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.d.ts +9 -5
- package/dist/sync/v3/workspaceSyncV3CombinedRepairMaterialization.js +54 -38
- package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.d.ts +10 -0
- package/dist/sync/v3/workspaceSyncV3CombinedRepairSnapshot.js +70 -31
- package/dist/sync/v3/workspaceSyncV3CombinedWireContract.d.ts +2 -1
- package/dist/sync/v3/workspaceSyncV3CombinedWireContract.js +16 -0
- package/dist/sync/v3/workspaceSyncV3CoverageRegistry.js +6 -0
- package/dist/sync/v3/workspaceSyncV3Feed.d.ts +1 -0
- package/dist/sync/v3/workspaceSyncV3Feed.js +6 -1
- package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.d.ts +2 -0
- package/dist/sync/v3/workspaceSyncV3NestedTaskProjection.js +49 -18
- package/dist/sync/v3/workspaceSyncV3OperationProtocol.d.ts +3 -0
- package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.d.ts +5 -0
- package/dist/sync/v3/workspaceSyncV3OperatorDiagnostics.js +36 -2
- package/dist/sync/v3/workspaceSyncV3RepairSnapshotRetentionService.d.ts +17 -0
- package/dist/sync/v3/workspaceSyncV3RepairSnapshotRetentionService.js +64 -0
- package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeApply.d.ts +1 -0
- package/dist/sync/v3/workspaceSyncV3WorkflowRuntimeApply.js +50 -5
- package/dist/sync/v3/workspaceSyncV3WorkflowTaskCoverCoverage.d.ts +7 -0
- package/dist/sync/v3/workspaceSyncV3WorkflowTaskCoverCoverage.js +33 -0
- package/dist/sync/v3/workspaceSyncV3WorkflowTaskCoverWireContract.d.ts +7 -0
- package/dist/sync/v3/workspaceSyncV3WorkflowTaskCoverWireContract.js +8 -0
- package/dist/sync/workspaceRepair.d.ts +5 -2
- package/dist/sync/workspaceRepair.js +161 -6
- package/dist/sync/workspaceSyncModel.d.ts +21 -0
- package/dist/sync/workspaceSyncModel.js +35 -7
- package/dist/sync/workspaceSyncState.d.ts +1 -0
- package/dist/sync/workspaceSyncV2SnapshotBuilder.d.ts +6 -0
- package/dist/sync/workspaceSyncV2SnapshotBuilder.js +5 -0
- package/dist/ui/assets/AiIdentityRosterCard-CDMPtnbC.js +1 -0
- package/dist/ui/assets/AiProfilesModule-Cww85C4E.js +1 -0
- package/dist/ui/assets/{AnnotatedAttachmentWorkspace-B68Wg-RV.js → AnnotatedAttachmentWorkspace-Dt9TKYSH.js} +1 -1
- package/dist/ui/assets/{AssetTraySortControl-C8Rztyal.js → AssetTraySortControl-CKgapnxu.js} +1 -1
- package/dist/ui/assets/{ContextAttachmentManager-Cj3c7X9y.js → ContextAttachmentManager-T-cEVcOZ.js} +2 -2
- package/dist/ui/assets/{DocumentWorkspace-B5uvzems.js → DocumentWorkspace-HD4MUjAZ.js} +1 -1
- package/dist/ui/assets/{EntityActivityTimeline-BVFvCB5R.js → EntityActivityTimeline-_V0zfMuh.js} +1 -1
- package/dist/ui/assets/PlanningModule-mTkBygsB.js +1 -0
- package/dist/ui/assets/{PlansPage-AY4cGWco.js → PlansPage-Btiq06VO.js} +1 -1
- package/dist/ui/assets/{TaskContextUpload-DZxTVesW.js → TaskContextUpload-C00NVUpn.js} +1 -1
- package/dist/ui/assets/TaskSettings-Cp-L-4xh.js +12 -0
- package/dist/ui/assets/TaskforceAgentsModule-Coq9-PUp.js +24 -0
- package/dist/ui/assets/TaskforceAgentsModule-b-8R25cJ.css +1 -0
- package/dist/ui/assets/{WorkflowManagerModule-DEr5di_r.js → WorkflowManagerModule-CuqRzMmM.js} +1 -1
- package/dist/ui/assets/index-BZ-hdZSk.css +1 -0
- package/dist/ui/assets/index-DSQINwt9.js +7 -0
- package/dist/ui/assets/{vendor-icons-D9Lpw-j4.js → vendor-icons-Bsq-mcEn.js} +1 -1
- package/dist/ui/branding/logos/letterhead_dark.png +0 -0
- package/dist/ui/branding/logos/letterhead_light.png +0 -0
- package/dist/ui/branding/logos/signature_dark.png +0 -0
- package/dist/ui/branding/logos/signature_light.png +0 -0
- package/dist/ui/index.html +3 -3
- package/dist/utils/aiProfileDefaultLogo.js +16 -48
- package/dist/utils/httpSetCookie.d.ts +1 -0
- package/dist/utils/httpSetCookie.js +4 -1
- package/dist/utils/localRuntimeUrl.d.ts +1 -0
- package/dist/utils/localRuntimeUrl.js +14 -0
- package/dist/utils/productLogoRegistry.d.ts +2 -0
- package/dist/utils/productLogoRegistry.js +36 -0
- package/dist/utils/syncStatusPresentation.d.ts +4 -0
- package/dist/utils/syncStatusPresentation.js +17 -0
- package/dist/utils/taskEvents.d.ts +2 -0
- package/dist/utils/workspaceSyncPresentation.d.ts +1 -1
- package/dist/utils/workspaceSyncPresentation.js +23 -17
- package/package.json +24 -4
- package/dist/ui/assets/AiIdentityRosterCard-BZM4aQnM.js +0 -1
- package/dist/ui/assets/AiProfilesModule-BbAEWtHH.js +0 -1
- package/dist/ui/assets/PlanningModule-B5DWQOGz.js +0 -1
- package/dist/ui/assets/TaskSettings-BeWAuyZj.js +0 -12
- package/dist/ui/assets/TaskforceAgentsModule-BifCYtjR.js +0 -21
- package/dist/ui/assets/TaskforceAgentsModule-D6IC0S7Q.css +0 -1
- package/dist/ui/assets/index-I5zhdtgt.js +0 -7
- package/dist/ui/assets/index-VRFsx3wz.css +0 -1
|
@@ -395,6 +395,9 @@ export function useTaskforce({ config = {}, initialTaskId, initialActivityEntryI
|
|
|
395
395
|
const isCloudScopedPath = path.startsWith('/api/taskforce/auth/')
|
|
396
396
|
|| path.startsWith('/api/taskforce/account/')
|
|
397
397
|
|| path.startsWith('/api/taskforce/billing/')
|
|
398
|
+
|| /^\/api\/taskforce\/model-connections(?:[/?]|$)/i.test(path)
|
|
399
|
+
|| /^\/api\/taskforce\/agents\/model-catalog(?:\?|$)/i.test(path)
|
|
400
|
+
|| /^\/api\/taskforce\/agents\/[^/]+\/connection-binding(?:\?|$)/i.test(path)
|
|
398
401
|
|| path.startsWith('/api/taskforce/sync/')
|
|
399
402
|
|| path.startsWith('/api/taskforce/settings/mcp/');
|
|
400
403
|
if (!isCloudHost && isCloudScopedPath) {
|
|
@@ -883,6 +886,7 @@ export function useTaskforce({ config = {}, initialTaskId, initialActivityEntryI
|
|
|
883
886
|
}, [AUTH_REQUIRED_ERROR, runtimeMode]);
|
|
884
887
|
// === SECTION: Task Data ===
|
|
885
888
|
// Delegated to useTaskData — see src/hooks/useTaskData.ts
|
|
889
|
+
const pendingTaskMetadataOverlaysRef = useRef(new Map());
|
|
886
890
|
const { tasksRef, archivedTasksRef, taskDetails, staleTaskDetailRevisions, recentlyChangedTaskIds, markRecentlyChangedTasks, fetchTasks: fetchTasksBase, fetchArchive: fetchArchiveBase, loadTaskDetail, cancelTaskDetailLoad, refreshTaskCollections: refreshTaskCollectionsBase, refreshTaskCollectionsFromInvalidation: refreshTaskCollectionsFromInvalidationBase, mergeTaskFromServer, getTaskRevisionKey } = useTaskData({
|
|
887
891
|
tasks,
|
|
888
892
|
archivedTasks,
|
|
@@ -896,7 +900,8 @@ export function useTaskforce({ config = {}, initialTaskId, initialActivityEntryI
|
|
|
896
900
|
handleUnauthorized,
|
|
897
901
|
authRequiredForApi,
|
|
898
902
|
setError,
|
|
899
|
-
setLoading
|
|
903
|
+
setLoading,
|
|
904
|
+
pendingTaskMetadataOverlaysRef,
|
|
900
905
|
});
|
|
901
906
|
useEffect(() => {
|
|
902
907
|
if (workspaceTransitionEpoch === 0)
|
|
@@ -918,6 +923,7 @@ export function useTaskforce({ config = {}, initialTaskId, initialActivityEntryI
|
|
|
918
923
|
deletedHydrationRequestRef.current = null;
|
|
919
924
|
setTasks([]);
|
|
920
925
|
setArchivedTasks([]);
|
|
926
|
+
pendingTaskMetadataOverlaysRef.current.clear();
|
|
921
927
|
setInitiatives([]);
|
|
922
928
|
setWorkstreams([]);
|
|
923
929
|
setPlanningBootstrapTaskSummaries([]);
|
|
@@ -1363,7 +1369,7 @@ export function useTaskforce({ config = {}, initialTaskId, initialActivityEntryI
|
|
|
1363
1369
|
const setUserGlobalSyncErrorRef = useRef(() => undefined);
|
|
1364
1370
|
const checkAuthSessionImplRef = useRef(async () => false);
|
|
1365
1371
|
const checkAuthSession = useCallback((options) => checkAuthSessionImplRef.current(options), []);
|
|
1366
|
-
const { userGlobalSyncStatus, setUserGlobalSyncStatus, userGlobalSyncError, setUserGlobalSyncError, workspaceLastPullAt, workspaceLastPushAt, workspaceLastErrorAt, workspaceLastErrorMessage, workspaceLastSuccessfulSyncAt, workspaceCloudSyncEnabled, workspaceSyncPhase, workspaceSyncSetupIntent, workspaceSyncStatus, workspaceSyncSummary, workspaceSyncRecommendedAction, workspaceSyncBusy, workspaceSyncPendingChanges, workspaceTaskRelationships, localCoordinatorDataVersion, localCoordinatorStatus, switchLocalCoordinatorWorkspace, transferLocalCoordinatorOwnership, workspacePushInFlightRef, workspacePullInFlightRef, workspaceLastPushedSignatureRef, workspacePendingSignatureRef, workspaceLastPushedTaskIdsRef, workspaceDeletedTaskIdsRef, workspaceDeletedTaskWatermarksRef, workspacePullCursorRef, clearWorkspaceRetry, persistWorkspaceSyncPatch, loadWorkspaceSyncState, applyWorkspaceSyncStateSnapshot, syncUserGlobalSettings, buildWorkspaceSyncSignature, pushWorkspaceChangesToCloud, saveWorkspaceCloudSyncSettings, retryUserGlobalSettingsSync, retryWorkspaceCloudSync, resetWorkspaceSyncCursorAndPull, getWorkspaceSyncDiagnostics } = useSyncOrchestrator({
|
|
1372
|
+
const { userGlobalSyncStatus, setUserGlobalSyncStatus, userGlobalSyncError, setUserGlobalSyncError, workspaceLastPullAt, workspaceLastPushAt, workspaceLastErrorAt, workspaceLastErrorMessage, workspaceLastSuccessfulSyncAt, workspaceCloudSyncEnabled, workspaceSyncPhase, workspaceSyncSetupIntent, workspaceSyncStatus, workspaceSyncSummary, workspaceSyncRecommendedAction, workspaceSyncBusy, workspaceSyncPendingChanges, workspaceTaskRelationships, localCoordinatorDataVersion, localCoordinatorStatus, switchLocalCoordinatorWorkspace, transferLocalCoordinatorOwnership, clearLocalCoordinatorCredential, workspacePushInFlightRef, workspacePullInFlightRef, workspaceLastPushedSignatureRef, workspacePendingSignatureRef, workspaceLastPushedTaskIdsRef, workspaceDeletedTaskIdsRef, workspaceDeletedTaskWatermarksRef, workspacePullCursorRef, clearWorkspaceRetry, persistWorkspaceSyncPatch, loadWorkspaceSyncState, applyWorkspaceSyncStateSnapshot, syncUserGlobalSettings, buildWorkspaceSyncSignature, pushWorkspaceChangesToCloud, saveWorkspaceCloudSyncSettings, retryUserGlobalSettingsSync, retryWorkspaceCloudSync, resetWorkspaceSyncCursorAndPull, getWorkspaceSyncDiagnostics } = useSyncOrchestrator({
|
|
1367
1373
|
currentWorkspaceId,
|
|
1368
1374
|
cloudAuthConfigured,
|
|
1369
1375
|
runtimeMode,
|
|
@@ -2769,6 +2775,7 @@ export function useTaskforce({ config = {}, initialTaskId, initialActivityEntryI
|
|
|
2769
2775
|
}, [abortWorkspaceScopedRequests, resetPersistedUiStateLoad, setArchivedTasks, setTasks]);
|
|
2770
2776
|
const logout = useCallback(async () => {
|
|
2771
2777
|
try {
|
|
2778
|
+
await clearLocalCoordinatorCredential().catch(() => false);
|
|
2772
2779
|
if (cloudAuthConfigured) {
|
|
2773
2780
|
await fetch(resolveCloudAuthUrl('/api/taskforce/auth/logout'), {
|
|
2774
2781
|
method: 'POST',
|
|
@@ -2826,6 +2833,7 @@ export function useTaskforce({ config = {}, initialTaskId, initialActivityEntryI
|
|
|
2826
2833
|
}, [
|
|
2827
2834
|
abortWorkspaceScopedRequests,
|
|
2828
2835
|
authRequiredForApi,
|
|
2836
|
+
clearLocalCoordinatorCredential,
|
|
2829
2837
|
clearPersistedWorkspaceId,
|
|
2830
2838
|
commitCurrentWorkspaceId,
|
|
2831
2839
|
resolveCloudAuthUrl,
|
|
@@ -3999,6 +4007,7 @@ export function useTaskforce({ config = {}, initialTaskId, initialActivityEntryI
|
|
|
3999
4007
|
workspaceId: currentWorkspaceId,
|
|
4000
4008
|
onTaskRevisionConflict: handleTaskRevisionConflict,
|
|
4001
4009
|
onTaskMutationAccepted: handleTaskMutationAccepted,
|
|
4010
|
+
pendingTaskMetadataOverlaysRef,
|
|
4002
4011
|
});
|
|
4003
4012
|
const { resolveDraft: resolveDescriptionImageDraft } = useTaskDescriptionImageDraftRecovery(currentWorkspaceId, authUserId);
|
|
4004
4013
|
const promoteDescriptionImageDraft = useCallback(async () => {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { AiProfileSurfaceType } from '../shared/aiProfileSurfaceType.js';
|
|
2
|
+
import type { ProductLogoKey } from '../shared/productLogoKeys.js';
|
|
2
3
|
export declare const MCP_CLIENT_IDS: readonly ["general", "cursor", "cline", "vscode", "kiro", "windsurf", "antigravity", "openclaw", "codex", "grok", "claude-code", "gemini-cli", "grok-chat", "gemini-chat", "mistral-chat", "perplexity-chat", "claude-chat", "chatgpt-desktop"];
|
|
3
4
|
export type McpClientId = typeof MCP_CLIENT_IDS[number];
|
|
4
|
-
export type McpClientLogoKey = Exclude<McpClientId, 'general' | 'openclaw'>;
|
|
5
5
|
export interface McpClientRegistryEntry {
|
|
6
6
|
id: McpClientId;
|
|
7
7
|
label: string;
|
|
8
|
-
logoKey?:
|
|
8
|
+
logoKey?: ProductLogoKey;
|
|
9
9
|
surfaceHint?: AiProfileSurfaceType;
|
|
10
10
|
generatedOption?: boolean;
|
|
11
11
|
signatureColor?: string;
|
|
@@ -36,7 +36,7 @@ export const MCP_CLIENT_REGISTRY = {
|
|
|
36
36
|
openclaw: { id: 'openclaw', label: 'OpenClaw', surfaceHint: 'agent', generatedOption: true },
|
|
37
37
|
vscode: { id: 'vscode', label: 'VS Code / Copilot', logoKey: 'vscode', surfaceHint: 'ide', generatedOption: true, signatureColor: '#256ee4' },
|
|
38
38
|
windsurf: { id: 'windsurf', label: 'Windsurf', logoKey: 'windsurf', surfaceHint: 'ide', generatedOption: true, signatureColor: '#189587' },
|
|
39
|
-
'chatgpt-desktop': { id: 'chatgpt-desktop', label: 'ChatGPT Desktop', logoKey: 'chatgpt
|
|
39
|
+
'chatgpt-desktop': { id: 'chatgpt-desktop', label: 'ChatGPT Desktop', logoKey: 'chatgpt', surfaceHint: 'chat_app', signatureColor: '#10a37f' },
|
|
40
40
|
};
|
|
41
41
|
export function parseMcpClientId(value) {
|
|
42
42
|
const normalized = String(value || '').trim().toLowerCase();
|
|
@@ -460,14 +460,14 @@ export function registerDocumentAssetTools(registerTool, executeTool) {
|
|
|
460
460
|
},
|
|
461
461
|
}));
|
|
462
462
|
register('review_document', (context) => ({
|
|
463
|
-
description: context.describeTool('
|
|
463
|
+
description: context.describeTool('Add document review comments, reply to a root thread, or resolve/reopen a thread. Reply/thread modes require sessionId and are exclusive.'),
|
|
464
464
|
inputSchema: {
|
|
465
465
|
properties: {
|
|
466
|
-
documentId: stringProperty('
|
|
467
|
-
sessionId: stringProperty('
|
|
468
|
-
title: stringProperty('
|
|
469
|
-
prompt: stringProperty('
|
|
470
|
-
comments: arrayProperty('
|
|
466
|
+
documentId: stringProperty('D-123 or asset id.'),
|
|
467
|
+
sessionId: stringProperty('Existing review session id.'),
|
|
468
|
+
title: stringProperty('New-session title.'),
|
|
469
|
+
prompt: stringProperty('Single comment.'),
|
|
470
|
+
comments: arrayProperty('Comments; prompt can supply one.', {
|
|
471
471
|
type: 'object',
|
|
472
472
|
properties: {
|
|
473
473
|
body: { type: 'string' },
|
|
@@ -475,6 +475,9 @@ export function registerDocumentAssetTools(registerTool, executeTool) {
|
|
|
475
475
|
},
|
|
476
476
|
required: ['body'],
|
|
477
477
|
}),
|
|
478
|
+
parentCommentId: stringProperty('Root id for an unanchored reply.'),
|
|
479
|
+
threadCommentId: stringProperty('Root id to resolve or reopen.'),
|
|
480
|
+
threadStatus: stringProperty('Thread status.', ['open', 'resolved']),
|
|
478
481
|
},
|
|
479
482
|
},
|
|
480
483
|
}));
|
|
@@ -6,6 +6,7 @@ import { type LocalTaskStatusOutboxCore } from '../sync/v3/localTaskStatusOutbox
|
|
|
6
6
|
import { type DurableTaskLifecycleServiceCore } from '../sync/v3/taskLifecycleMutationService.js';
|
|
7
7
|
import { type DurableTaskStatusServiceCore } from '../sync/v3/taskStatusMutationService.js';
|
|
8
8
|
import { type DurableTaskWorkflowServiceCore } from '../sync/v3/taskWorkflowMutationService.js';
|
|
9
|
+
import type { TaskStatusReviewHandoff } from '../sync/v3/workflowAssignmentSync.js';
|
|
9
10
|
export type McpTaskStatusActivationCapability = {
|
|
10
11
|
taskStatusMcpActivation: boolean;
|
|
11
12
|
};
|
|
@@ -29,7 +30,9 @@ export type DurableTaskMutationRouter = {
|
|
|
29
30
|
enabled: boolean;
|
|
30
31
|
setStatus(args: {
|
|
31
32
|
taskId: string;
|
|
32
|
-
payload: DurableTaskStatusMutationPayload
|
|
33
|
+
payload: DurableTaskStatusMutationPayload & {
|
|
34
|
+
reviewHandoff?: TaskStatusReviewHandoff;
|
|
35
|
+
};
|
|
33
36
|
actorRef: string;
|
|
34
37
|
}): DurableMcpTaskMutationResult;
|
|
35
38
|
mutateLifecycle(args: {
|
|
@@ -7,6 +7,7 @@ import { runDurableTaskLifecycleMutation, } from '../sync/v3/taskLifecycleMutati
|
|
|
7
7
|
import { runDurableTaskStatusMutation, } from '../sync/v3/taskStatusMutationService.js';
|
|
8
8
|
import { runDurableTaskWorkflowMutation, } from '../sync/v3/taskWorkflowMutationService.js';
|
|
9
9
|
import { readDurableOperationReplay } from '../sync/v3/durableOperationReplay.js';
|
|
10
|
+
import { areWorkflowRuntimeMutationsFenced, resolveWorkflowRuntimeDurableTransportCapability, } from '../sync/v3/durableWorkflowRuntimeMutationRouter.js';
|
|
10
11
|
const OPERATION_LEASE_MS = 30_000;
|
|
11
12
|
function isEnabled(value) {
|
|
12
13
|
return /^(1|true|on|yes)$/i.test(String(value || '').trim());
|
|
@@ -70,6 +71,13 @@ export function createDurableTaskMutationRouter(input) {
|
|
|
70
71
|
const identityStore = new LocalSyncIdentityStore(input.core.getDatabaseAdapter());
|
|
71
72
|
const createOperationId = input.createOperationId || defaultOperationId;
|
|
72
73
|
const now = input.now || (() => new Date());
|
|
74
|
+
const workflowRuntimeJournalEnabled = resolveWorkflowRuntimeDurableTransportCapability({
|
|
75
|
+
runtimeMode: input.runtimeMode,
|
|
76
|
+
surface: 'mcp',
|
|
77
|
+
env: input.env,
|
|
78
|
+
});
|
|
79
|
+
const rejectWorkflowRuntimeActivation = workflowRuntimeJournalEnabled
|
|
80
|
+
&& areWorkflowRuntimeMutationsFenced(input.env);
|
|
73
81
|
const operationContext = (enabled, mutationKind, taskId) => {
|
|
74
82
|
if (!enabled)
|
|
75
83
|
throw new DurableTaskMutationRouterDisabledError();
|
|
@@ -156,6 +164,8 @@ export function createDurableTaskMutationRouter(input) {
|
|
|
156
164
|
const result = runDurableTaskStatusMutation({
|
|
157
165
|
...cloudCommon(taskId, actorRef, context, revisions),
|
|
158
166
|
payload: args.payload,
|
|
167
|
+
includeWorkflowRuntimeJournal: workflowRuntimeJournalEnabled,
|
|
168
|
+
rejectWorkflowRuntimeActivation,
|
|
159
169
|
});
|
|
160
170
|
if (result.state === 'in_progress')
|
|
161
171
|
throw new DurableTaskMutationRouterInProgressError(result.retryAt);
|
|
@@ -53,6 +53,10 @@ export function createDurableTaskRelationshipMutationRouter(input) {
|
|
|
53
53
|
|| persisted.mutationKind !== args.mutationKind)) {
|
|
54
54
|
throw new Error('Operation identity is already assigned to another task relationship mutation.');
|
|
55
55
|
}
|
|
56
|
+
if (persisted)
|
|
57
|
+
store.assertOutboxOperationIdentity(persisted, {
|
|
58
|
+
domain: 'task-relationship', entityId: canonical.id, mutationKind: args.mutationKind,
|
|
59
|
+
});
|
|
56
60
|
if (!persisted && args.mutationKind === 'link' && current && !current.deletedAt) {
|
|
57
61
|
return { state: 'noop', route: 'no-change', operationId: null, relationship: current, outcome: 'existing' };
|
|
58
62
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import { type McpServerFactory } from '@modelcontextprotocol/server';
|
|
3
|
+
export declare function createModernMcpHttpHandler(factory: McpServerFactory, onerror?: (error: Error) => void): import("@modelcontextprotocol/server").McpHttpHandler;
|
|
4
|
+
export declare function isModernMcpHttpRequest(req: IncomingMessage, parsedBody: unknown): Promise<boolean>;
|
|
5
|
+
export declare function handleModernMcpHttpRequest(input: {
|
|
6
|
+
req: IncomingMessage;
|
|
7
|
+
res: ServerResponse;
|
|
8
|
+
parsedBody: unknown;
|
|
9
|
+
factory: McpServerFactory;
|
|
10
|
+
onerror?: (error: Error) => void;
|
|
11
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { toNodeHandler, toWebRequest } from '@modelcontextprotocol/node';
|
|
2
|
+
import { createMcpHandler, isLegacyRequest, } from '@modelcontextprotocol/server';
|
|
3
|
+
export function createModernMcpHttpHandler(factory, onerror) {
|
|
4
|
+
return createMcpHandler(factory, {
|
|
5
|
+
legacy: 'reject',
|
|
6
|
+
responseMode: 'auto',
|
|
7
|
+
onerror,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
export async function isModernMcpHttpRequest(req, parsedBody) {
|
|
11
|
+
const request = await toWebRequest(req, parsedBody);
|
|
12
|
+
return !(await isLegacyRequest(request, parsedBody));
|
|
13
|
+
}
|
|
14
|
+
export async function handleModernMcpHttpRequest(input) {
|
|
15
|
+
const handler = createModernMcpHttpHandler(input.factory, input.onerror);
|
|
16
|
+
try {
|
|
17
|
+
await toNodeHandler(handler, { onerror: input.onerror })(input.req, input.res, input.parsedBody);
|
|
18
|
+
}
|
|
19
|
+
finally {
|
|
20
|
+
await handler.close();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Client } from '@modelcontextprotocol/
|
|
2
|
-
import { StdioClientTransport } from '@modelcontextprotocol/
|
|
1
|
+
import { Client } from '@modelcontextprotocol/client';
|
|
2
|
+
import { StdioClientTransport } from '@modelcontextprotocol/client/stdio';
|
|
3
3
|
export type LocalCliHealthState = 'healthy' | 'version-mismatch' | 'unusable';
|
|
4
4
|
export interface LocalCliHealthResult {
|
|
5
5
|
state: LocalCliHealthState;
|
|
@@ -3,8 +3,8 @@ import { constants as fsConstants, accessSync, readFileSync, statSync } from 'no
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
5
|
import { promisify } from 'node:util';
|
|
6
|
-
import { Client } from '@modelcontextprotocol/
|
|
7
|
-
import { getDefaultEnvironment, StdioClientTransport } from '@modelcontextprotocol/
|
|
6
|
+
import { Client } from '@modelcontextprotocol/client';
|
|
7
|
+
import { getDefaultEnvironment, StdioClientTransport } from '@modelcontextprotocol/client/stdio';
|
|
8
8
|
const execFileAsync = promisify(execFile);
|
|
9
9
|
const DEFAULT_TIMEOUT_MS = 5_000;
|
|
10
10
|
function stripAnsi(value) {
|
|
@@ -15,6 +15,7 @@ export interface LocalServiceProxyOptions {
|
|
|
15
15
|
requestTimeoutMs?: number;
|
|
16
16
|
onFatal?: (error: Error) => void;
|
|
17
17
|
logError?: (message: string) => void;
|
|
18
|
+
sleep?: (delayMs: number) => Promise<void>;
|
|
18
19
|
}
|
|
19
20
|
export interface LocalServiceProxyRuntime {
|
|
20
21
|
close(): Promise<void>;
|