This is an automated email from the ASF dual-hosted git repository.

tiagobento pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git


The following commit(s) were added to refs/heads/main by this push:
     new 72ffd4249c4 NO-ISSUE: Expose own Shared values to Micro-frontends 
Multiplying Architecture Envelopes themselves (#2940)
72ffd4249c4 is described below

commit 72ffd4249c4f5182d24451395ea82e9bf33eb795
Author: Tiago Bento <[email protected]>
AuthorDate: Thu Feb 27 15:40:36 2025 -0500

    NO-ISSUE: Expose own Shared values to Micro-frontends Multiplying 
Architecture Envelopes themselves (#2940)
---
 .../src/Base64PngEditor.tsx                        |  4 +--
 .../src/Base64PngEditorFactory.ts                  |  7 +++--
 .../src/Base64PngEditorInterface.tsx               |  3 +-
 .../README.md                                      |  2 +-
 .../src/TodoListViewPage.tsx                       | 13 +++++++-
 .../src/api/TodoListEnvelopeApi.ts                 |  3 ++
 .../src/envelope/TodoListEnvelope.tsx              |  6 ++--
 .../src/envelope/TodoListEnvelopeApiImpl.ts        | 10 ++++++
 .../src/envelope/TodoListEnvelopeView.tsx          | 36 ++++++++++++++++++++--
 package.json                                       |  2 +-
 .../src/editor/DashbuilderEditorFactory.ts         |  7 +++--
 .../src/editor/DashbuilderEditorView.tsx           |  6 +++-
 .../src/impl/DashbuilderEditorEnvelopeApiImpl.ts   |  4 +--
 .../src/monaco/DashbuilderMonacoEditor.tsx         |  3 +-
 .../src/envelope/DashbuilderViewerFactory.ts       |  7 +++--
 .../src/envelope/DashbuilderViewerView.tsx         |  6 +++-
 .../src/DmnEditorEnvelopeApiFactory.ts             |  2 +-
 .../dmn-editor-envelope/src/DmnEditorFactory.tsx   |  9 +++---
 .../src/NewDmnEditorEnvelopeApiFactory.ts          |  2 +-
 .../src/NewDmnEditorFactory.tsx                    |  7 +++--
 packages/editor/src/api/EditorFactory.ts           |  8 +++--
 .../editor/src/api/KogitoEditorEnvelopeContext.ts  | 10 ++++--
 .../editor/src/envelope/KogitoEditorEnvelope.tsx   |  7 +++--
 .../src/envelope/KogitoEditorEnvelopeApiImpl.ts    |  4 +--
 packages/editor/src/envelope/index.ts              |  6 ++--
 packages/editor/tests/envelope/utils.tsx           |  9 ++++--
 .../envelope-bus/src/envelope/EnvelopeClient.ts    |  4 +++
 packages/envelope/src/Envelope.ts                  |  4 +++
 .../src/bpmn/envelope/BpmnEditorFactory.ts         | 13 +++++---
 .../src/bpmn/envelope/BpmnEnvelopeApiFactory.ts    |  2 +-
 .../envelope/vscode/VsCodeBpmnEditorFactory.ts     | 11 +++++--
 .../src/common/GwtEditorWrapperFactory.ts          |  9 ++++--
 .../src/dmn/envelope/DmnEditorFactory.ts           |  6 ++--
 .../src/dmn/envelope/DmnEnvelopeApiFactory.ts      |  2 +-
 .../dmn/envelope/vscode/VsCodeDmnEditorFactory.ts  |  7 +++--
 .../src/scesim/envelope/SceSimEditorFactory.ts     |  8 +++--
 .../scesim/envelope/SceSimEnvelopeApiFactory.ts    |  2 +-
 .../tests/GwtEditorWrapperFactory.test.ts          |  1 +
 .../pmml-editor/src/editor/PMMLEditorFactory.ts    |  5 +--
 .../pmml-editor/src/editor/PMMLEditorInterface.tsx | 11 +++++--
 .../tests/editor/PMMLEditorFactory.test.ts         |  4 ++-
 .../tests/editor/PMMLEditorInterface.test.ts       |  9 ++++--
 .../src/TestScenarioEditorEnvelopeApiFactory.ts    |  2 +-
 .../src/TestScenarioEditorFactory.tsx              | 11 ++++---
 .../editor/ServerlessWorkflowCombinedEditor.tsx    | 11 +++++--
 .../ServerlessWorkflowCombinedEditorFactory.ts     | 10 ++++--
 .../ServerlessWorkflowCombinedEditorView.tsx       | 11 +++++--
 ...verlessWorkflowCombinedEditorEnvelopeApiImpl.ts | 11 +++++--
 .../src/api/DiagramService.ts                      |  6 +++-
 ...rverlessWorkflowDiagramEditorEnvelopeApiImpl.ts |  8 +++--
 .../ServerlessWorkflowDiagramEditorFactory.ts      | 18 +++++++++--
 ...VsCodeServerlessWorkflowDiagramEditorFactory.ts | 18 +++++++++--
 .../editor/ServerlessWorkflowTextEditorFactory.ts  |  9 ++++--
 .../editor/ServerlessWorkflowTextEditorView.tsx    | 11 +++++--
 .../src/editor/textEditor/SwfTextEditor.tsx        |  7 +++--
 .../ServerlessWorkflowTextEditorEnvelopeApiImpl.ts |  8 +++--
 .../text-editor/src/editor/TextEditorFactory.ts    |  8 +++--
 packages/text-editor/src/editor/TextEditorView.tsx |  3 +-
 .../text-editor/src/editor/monaco/MonacoEditor.tsx |  9 ++++--
 .../yard-editor/src/editor/YardEditorFactory.ts    |  9 ++++--
 packages/yard-editor/src/editor/YardEditorView.tsx |  4 +--
 .../src/impl/YardEditorEnvelopeApiImpl.ts          |  4 +--
 .../yard-editor/src/textEditor/YardTextEditor.tsx  |  4 +--
 63 files changed, 344 insertions(+), 119 deletions(-)

diff --git 
a/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditor.tsx
 
b/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditor.tsx
index 66c5d721237..8da8414673c 100644
--- 
a/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditor.tsx
+++ 
b/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditor.tsx
@@ -19,7 +19,7 @@
 
 import * as React from "react";
 import { useCallback, useEffect, useImperativeHandle, useMemo, useRef, 
useState } from "react";
-import { EditorApi, KogitoEditorEnvelopeContextType } from 
"@kie-tools-core/editor/dist/api";
+import { EditorApi, KogitoEditorEnvelopeApi, KogitoEditorEnvelopeContextType } 
from "@kie-tools-core/editor/dist/api";
 import { EmptyState, EmptyStateIcon } from 
"@patternfly/react-core/dist/js/components/EmptyState";
 import { Nav, NavItem, NavList } from 
"@patternfly/react-core/dist/js/components/Nav";
 import { Page } from "@patternfly/react-core/dist/js/components/Page";
@@ -41,7 +41,7 @@ const INITIAL_INVERT = "0";
  * envelopeContext All the features and information provided by the Apache KIE 
Tools Envelope.
  */
 interface Props {
-  envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>;
+  envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>;
 }
 
 /**
diff --git 
a/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditorFactory.ts
 
b/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditorFactory.ts
index 92b84dfe6fd..7d80899dd3e 100644
--- 
a/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditorFactory.ts
+++ 
b/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditorFactory.ts
@@ -21,6 +21,7 @@ import {
   EditorFactory,
   EditorInitArgs,
   KogitoEditorChannelApi,
+  KogitoEditorEnvelopeApi,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
 import { Base64PngEditorInterface } from "./Base64PngEditorInterface";
@@ -29,13 +30,15 @@ import { Base64PngEditorInterface } from 
"./Base64PngEditorInterface";
  * Factory to be used by the Envelope to create a Base64 PNG Editor, It 
implements an EditorFactory.
  * It tells which extension the Editor supports and how to create a new Editor
  */
-export class Base64PngEditorFactory implements 
EditorFactory<Base64PngEditorInterface, KogitoEditorChannelApi> {
+export class Base64PngEditorFactory
+  implements EditorFactory<Base64PngEditorInterface, KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>
+{
   public supports(fileExtension: string) {
     return fileExtension === "base64png";
   }
 
   public createEditor(
-    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>,
+    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>,
     initArgs: EditorInitArgs
   ) {
     return Promise.resolve(new Base64PngEditorInterface(envelopeContext, 
initArgs));
diff --git 
a/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditorInterface.tsx
 
b/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditorInterface.tsx
index 49f8a3586d9..4fbdaa318e7 100644
--- 
a/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditorInterface.tsx
+++ 
b/examples/micro-frontends-multiplying-architecture-base64png-editor/src/Base64PngEditorInterface.tsx
@@ -24,6 +24,7 @@ import {
   EditorInitArgs,
   EditorTheme,
   KogitoEditorChannelApi,
+  KogitoEditorEnvelopeApi,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
 import { Notification } from "@kie-tools-core/notifications/dist/api";
@@ -59,7 +60,7 @@ export class Base64PngEditorInterface implements Editor {
   public af_componentTitle: "Base64 PNG Editor";
 
   constructor(
-    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>,
+    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>,
     private readonly initArgs: EditorInitArgs
   ) {
     this.editorRef = React.createRef<EditorApi>();
diff --git 
a/examples/micro-frontends-multiplying-architecture-todo-list-view-on-webapp/README.md
 
b/examples/micro-frontends-multiplying-architecture-todo-list-view-on-webapp/README.md
index 6d884eff7be..1d45351bef1 100644
--- 
a/examples/micro-frontends-multiplying-architecture-todo-list-view-on-webapp/README.md
+++ 
b/examples/micro-frontends-multiplying-architecture-todo-list-view-on-webapp/README.md
@@ -17,7 +17,7 @@
 
 # Example :: Micro-frontends Multiplying Architecture :: 'To do' List View on 
webapp
 
-This package contains a web application that features a 'To do' List View, a 
simple component wrapped inside an Envelope with a simple API for manging 'To 
do' items. It also features a very simple demo of Multiplying Architecture's 
Shared Value.
+This package contains a web application that features a 'To do' List View, a 
simple component wrapped inside an Envelope with a simple API for manging 'To 
do' items. It also features a very simple demo of Multiplying Architecture's 
Shared value.
 
 ### Building the dependencies
 
diff --git 
a/examples/micro-frontends-multiplying-architecture-todo-list-view-on-webapp/src/TodoListViewPage.tsx
 
b/examples/micro-frontends-multiplying-architecture-todo-list-view-on-webapp/src/TodoListViewPage.tsx
index 37415e9ebdc..cbe48dc841b 100644
--- 
a/examples/micro-frontends-multiplying-architecture-todo-list-view-on-webapp/src/TodoListViewPage.tsx
+++ 
b/examples/micro-frontends-multiplying-architecture-todo-list-view-on-webapp/src/TodoListViewPage.tsx
@@ -24,11 +24,12 @@ import {
   EmbeddedTodoListRef,
 } from 
"@kie-tools-examples/micro-frontends-multiplying-architecture-todo-list-view/dist/embedded";
 import { Brand } from "@patternfly/react-core/dist/js/components/Brand";
+import { Divider } from "@patternfly/react-core/dist/js/components/Divider";
 import { Stack, StackItem } from 
"@patternfly/react-core/dist/js/layouts/Stack";
 import { Page, PageHeader, PageSection } from 
"@patternfly/react-core/dist/js/components/Page";
 import { Button, ButtonVariant } from 
"@patternfly/react-core/dist/js/components/Button/Button";
 
-import { useStateAsSharedValue } from 
"@kie-tools-core/envelope-bus/dist/hooks";
+import { useSharedValue, useStateAsSharedValue } from 
"@kie-tools-core/envelope-bus/dist/hooks";
 
 export function TodoListViewPage() {
   const embeddedTodoListRef = useRef<EmbeddedTodoListRef>(null);
@@ -55,6 +56,10 @@ export function TodoListViewPage() {
     
embeddedTodoListRef.current?.envelopeServer.shared.todoList__potentialNewItem
   );
 
+  const [itemsCount, _] = useSharedValue(
+    
embeddedTodoListRef.current?.envelopeServer.envelopeApi.shared.todoList__itemsCount
+  );
+
   const apiImpl = useMemo(() => {
     return {
       todoList__itemRemoved: handleItemRemoved,
@@ -84,6 +89,12 @@ export function TodoListViewPage() {
               Mark all as completed
             </Button>
           </StackItem>
+
+          <Divider />
+
+          <StackItem>
+            <span># of items: {itemsCount}</span>
+          </StackItem>
         </Stack>
       }
     >
diff --git 
a/examples/micro-frontends-multiplying-architecture-todo-list-view/src/api/TodoListEnvelopeApi.ts
 
b/examples/micro-frontends-multiplying-architecture-todo-list-view/src/api/TodoListEnvelopeApi.ts
index 52cc67bff15..5b27a94d1a3 100644
--- 
a/examples/micro-frontends-multiplying-architecture-todo-list-view/src/api/TodoListEnvelopeApi.ts
+++ 
b/examples/micro-frontends-multiplying-architecture-todo-list-view/src/api/TodoListEnvelopeApi.ts
@@ -17,6 +17,8 @@
  * under the License.
  */
 
+import { SharedValueProvider } from "@kie-tools-core/envelope-bus/dist/api";
+
 /**
  * Methods provided by the Envelope that can be consumed by the Channel.
  */
@@ -25,6 +27,7 @@ export interface TodoListEnvelopeApi {
   todoList__addItem(item: string): Promise<void>;
   todoList__getItems(): Promise<Item[]>;
   todoList__markAllAsCompleted(): void;
+  todoList__itemsCount(): SharedValueProvider<number>;
 }
 
 export interface Association {
diff --git 
a/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelope.tsx
 
b/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelope.tsx
index 33e90043268..054ca125e8f 100644
--- 
a/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelope.tsx
+++ 
b/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelope.tsx
@@ -53,8 +53,10 @@ export function init(args: { container: HTMLElement; bus: 
EnvelopeBus }) {
   const envelopeViewDelegate = async () => {
     const ref = React.createRef<TodoListEnvelopeViewApi>();
     return new Promise<() => TodoListEnvelopeViewApi>((res) => {
-      ReactDOM.render(<TodoListEnvelopeView ref={ref} 
channelApi={envelope.channelApi} />, args.container, () =>
-        res(() => ref.current!)
+      ReactDOM.render(
+        <TodoListEnvelopeView ref={ref} channelApi={envelope.channelApi} 
shared={envelope.shared} />,
+        args.container,
+        () => res(() => ref.current!)
       );
     });
   };
diff --git 
a/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelopeApiImpl.ts
 
b/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelopeApiImpl.ts
index ca03ca50082..939f53f9030 100644
--- 
a/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelopeApiImpl.ts
+++ 
b/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelopeApiImpl.ts
@@ -21,6 +21,7 @@ import { TodoListEnvelopeContext } from 
"./TodoListEnvelopeContext";
 import { Association, TodoListChannelApi, TodoListEnvelopeApi, 
TodoListInitArgs } from "../api";
 import { TodoListEnvelopeViewApi } from "./TodoListEnvelopeView";
 import { EnvelopeApiFactoryArgs } from "@kie-tools-core/envelope";
+import { SharedValueProvider } from "@kie-tools-core/envelope-bus/dist/api";
 
 /**
  * Implements the TodoListEnvelopeApi.
@@ -74,4 +75,13 @@ export class TodoListEnvelopeApiImpl implements 
TodoListEnvelopeApi {
   public todoList__markAllAsCompleted() {
     this.view().markAllAsCompleted();
   }
+
+  /**
+   * Holds the current count of items in the list
+   */
+  public todoList__itemsCount(): SharedValueProvider<number> {
+    return {
+      defaultValue: 0,
+    };
+  }
 }
diff --git 
a/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelopeView.tsx
 
b/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelopeView.tsx
index 172d5267a8a..b8a80d4681d 100644
--- 
a/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelopeView.tsx
+++ 
b/examples/micro-frontends-multiplying-architecture-todo-list-view/src/envelope/TodoListEnvelopeView.tsx
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-import { MessageBusClientApi } from "@kie-tools-core/envelope-bus/dist/api";
+import { ApiSharedValueConsumers, MessageBusClientApi } from 
"@kie-tools-core/envelope-bus/dist/api";
 import * as React from "react";
-import { useCallback, useImperativeHandle, useMemo, useState } from "react";
-import { Item, TodoListChannelApi } from "../api";
+import { useCallback, useEffect, useImperativeHandle, useMemo, useState } from 
"react";
+import { Item, TodoListChannelApi, TodoListEnvelopeApi } from "../api";
 import "./styles.scss";
 import { useSharedValue } from "@kie-tools-core/envelope-bus/dist/hooks";
 
@@ -33,6 +33,7 @@ export interface TodoListEnvelopeViewApi {
 
 interface Props {
   channelApi: MessageBusClientApi<TodoListChannelApi>;
+  shared: ApiSharedValueConsumers<TodoListEnvelopeApi>;
 }
 
 /**
@@ -88,8 +89,37 @@ export const TodoListEnvelopeView = 
React.forwardRef<TodoListEnvelopeViewApi, Pr
     [items]
   );
 
+  // State that is updated whenever the Channel changes the `potentialNewItem` 
Shared value.
+  // Making the Envelope able to react to changes done to it.
   const [potentialNewItem, _] = 
useSharedValue(props.channelApi.shared.todoList__potentialNewItem);
 
+  // Keeps the `itemsCount` Shared value current.
+  useEffect(() => {
+    props.shared.todoList__itemsCount.set(items.length);
+  }, [items.length, props.shared.todoList__itemsCount]);
+
+  // Handles set operations to `itemsCount` that do not match items.length.
+  // As a Channel also has write access to a Shared value, there no way to 
tell if an
+  // invalid attempt to change this directly will be done, so we need to 
handle it properly.
+  useEffect(() => {
+    if (!props.shared.todoList__itemsCount) {
+      return;
+    }
+
+    const itemsCountSubs = 
props.shared.todoList__itemsCount.subscribe((newItemsCount) => {
+      if (newItemsCount !== items.length) {
+        console.log("Rejecting operation on `itemsCount` Shared value because 
it doesn't match the actual value.");
+        props.shared.todoList__itemsCount.set(items.length); // Reverts 
whatever value was set.
+      } else {
+        // Ignore, itemsCount matches actual value.
+      }
+    });
+
+    return () => {
+      props.shared.todoList__itemsCount.unsubscribe(itemsCountSubs);
+    };
+  }, [items.length, props.shared.todoList__itemsCount]);
+
   return (
     <>
       {user && (
diff --git a/package.json b/package.json
index 10dab0172d6..240cb3b181b 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
     "on-affected": "pnpm -F '...[HEAD]'",
     "on-affected-only": "pnpm -F '...^[HEAD]'",
     "on-changed": "pnpm -F '[HEAD]'",
-    "on-changed-deps-only": "pnpm -F '[HEAD]^...'",
+    "on-changed-deps-only": "pnpm -F '[HEAD]^...' -F '![HEAD]'",
     "prepare": "husky install",
     "update-kogito-version-to": "kie-tools--update-kogito-version-to",
     "update-stream-name-to": "kie-tools--update-stream-name-to",
diff --git a/packages/dashbuilder-editor/src/editor/DashbuilderEditorFactory.ts 
b/packages/dashbuilder-editor/src/editor/DashbuilderEditorFactory.ts
index c969cc2299f..3eb2f300ba7 100644
--- a/packages/dashbuilder-editor/src/editor/DashbuilderEditorFactory.ts
+++ b/packages/dashbuilder-editor/src/editor/DashbuilderEditorFactory.ts
@@ -25,10 +25,13 @@ import {
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
 import { DashbuilderEditorChannelApi as DashbuilderEditorChannelApi } from 
"../api/DashbuilderEditorChannelApi";
+import { DashbuilderEditorEnvelopeApi } from "../api";
 
-export class DashbuilderEditorFactory implements EditorFactory<Editor, 
DashbuilderEditorChannelApi> {
+export class DashbuilderEditorFactory
+  implements EditorFactory<Editor, DashbuilderEditorEnvelopeApi, 
DashbuilderEditorChannelApi>
+{
   public async createEditor(
-    ctx: KogitoEditorEnvelopeContextType<DashbuilderEditorChannelApi>,
+    ctx: KogitoEditorEnvelopeContextType<DashbuilderEditorEnvelopeApi, 
DashbuilderEditorChannelApi>,
     initArgs: EditorInitArgs
   ) {
     return new DashbuilderEditorView(ctx, initArgs);
diff --git a/packages/dashbuilder-editor/src/editor/DashbuilderEditorView.tsx 
b/packages/dashbuilder-editor/src/editor/DashbuilderEditorView.tsx
index 9ed8d7c7a5f..346c48d9de3 100644
--- a/packages/dashbuilder-editor/src/editor/DashbuilderEditorView.tsx
+++ b/packages/dashbuilder-editor/src/editor/DashbuilderEditorView.tsx
@@ -23,6 +23,7 @@ import { DashbuilderEditor } from "./DashbuilderEditor";
 import { DashbuilderEditorChannelApi } from 
"../api/DashbuilderEditorChannelApi";
 import { DashbuilderEditorApi } from "../api/DashbuilderEditorApi";
 import { Position } from "monaco-editor";
+import { DashbuilderEditorEnvelopeApi } from "../api";
 
 export class DashbuilderEditorView implements DashbuilderEditorApi {
   private readonly editorRef: React.RefObject<DashbuilderEditorApi>;
@@ -31,7 +32,10 @@ export class DashbuilderEditorView implements 
DashbuilderEditorApi {
   public af_componentTitle: "Dashbuilder Editor";
 
   constructor(
-    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<DashbuilderEditorChannelApi>,
+    private readonly envelopeContext: KogitoEditorEnvelopeContextType<
+      DashbuilderEditorEnvelopeApi,
+      DashbuilderEditorChannelApi
+    >,
     private readonly initArgs: EditorInitArgs
   ) {
     this.editorRef = React.createRef<DashbuilderEditorApi>();
diff --git 
a/packages/dashbuilder-editor/src/impl/DashbuilderEditorEnvelopeApiImpl.ts 
b/packages/dashbuilder-editor/src/impl/DashbuilderEditorEnvelopeApiImpl.ts
index 3260e98b2d9..8fa982bd384 100644
--- a/packages/dashbuilder-editor/src/impl/DashbuilderEditorEnvelopeApiImpl.ts
+++ b/packages/dashbuilder-editor/src/impl/DashbuilderEditorEnvelopeApiImpl.ts
@@ -28,7 +28,7 @@ export type DashbuilderEnvelopeApiFactoryArgs = 
EnvelopeApiFactoryArgs<
   DashbuilderEditorEnvelopeApi,
   DashbuilderEditorChannelApi,
   EditorEnvelopeViewApi<DashbuilderEditorApi>,
-  KogitoEditorEnvelopeContextType<DashbuilderEditorChannelApi>
+  KogitoEditorEnvelopeContextType<DashbuilderEditorEnvelopeApi, 
DashbuilderEditorChannelApi>
 >;
 
 export class DashbuilderEditorEnvelopeApiImpl
@@ -37,7 +37,7 @@ export class DashbuilderEditorEnvelopeApiImpl
 {
   constructor(
     private readonly factoryArgs: DashbuilderEnvelopeApiFactoryArgs,
-    editorFactory: EditorFactory<DashbuilderEditorApi, 
DashbuilderEditorChannelApi>
+    editorFactory: EditorFactory<DashbuilderEditorApi, 
DashbuilderEditorEnvelopeApi, DashbuilderEditorChannelApi>
   ) {
     super(factoryArgs, editorFactory);
   }
diff --git a/packages/dashbuilder-editor/src/monaco/DashbuilderMonacoEditor.tsx 
b/packages/dashbuilder-editor/src/monaco/DashbuilderMonacoEditor.tsx
index cf68409acd3..c1551b08161 100644
--- a/packages/dashbuilder-editor/src/monaco/DashbuilderMonacoEditor.tsx
+++ b/packages/dashbuilder-editor/src/monaco/DashbuilderMonacoEditor.tsx
@@ -26,6 +26,7 @@ import { EditorTheme } from 
"@kie-tools-core/editor/dist/api/EditorTheme";
 import { initCodeLenses } from "./augmentation/codeLenses";
 import { initAugmentationCommands } from "./augmentation/commands";
 import { initCompletion } from "./augmentation/completion";
+import { DashbuilderEditorEnvelopeApi } from "../api";
 
 interface Props {
   content: string;
@@ -39,7 +40,7 @@ const RefForwardingDashbuilderMonacoEditor: 
React.ForwardRefRenderFunction<
   Props
 > = ({ content, fileName, onContentChange, channelType }, forwardedRef) => {
   const container = useRef<HTMLDivElement>(null);
-  const editorEnvelopeCtx = 
useKogitoEditorEnvelopeContext<DashbuilderEditorChannelApi>();
+  const editorEnvelopeCtx = 
useKogitoEditorEnvelopeContext<DashbuilderEditorEnvelopeApi, 
DashbuilderEditorChannelApi>();
   const theme = EditorTheme.LIGHT;
 
   const controller: DashbuilderMonacoEditorApi = 
useMemo<DashbuilderMonacoEditorApi>(
diff --git 
a/packages/dashbuilder-viewer/src/envelope/DashbuilderViewerFactory.ts 
b/packages/dashbuilder-viewer/src/envelope/DashbuilderViewerFactory.ts
index e9910e7334a..7e8e1d2437c 100644
--- a/packages/dashbuilder-viewer/src/envelope/DashbuilderViewerFactory.ts
+++ b/packages/dashbuilder-viewer/src/envelope/DashbuilderViewerFactory.ts
@@ -22,14 +22,17 @@ import {
   Editor,
   EditorFactory,
   EditorInitArgs,
+  KogitoEditorEnvelopeApi,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
 import { DashbuilderViewerChannelApi } from "./DashbuilderViewerChannelApi";
 import { getDashbuilderLanguageData, Resource } from 
"../api/DashbuilderLanguageData";
 
-export class DashbuilderViewerFactory implements EditorFactory<Editor, 
DashbuilderViewerChannelApi> {
+export class DashbuilderViewerFactory
+  implements EditorFactory<Editor, KogitoEditorEnvelopeApi, 
DashbuilderViewerChannelApi>
+{
   public async createEditor(
-    ctx: KogitoEditorEnvelopeContextType<DashbuilderViewerChannelApi>,
+    ctx: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
DashbuilderViewerChannelApi>,
     initArgs: EditorInitArgs
   ) {
     appendLoaderContainer();
diff --git a/packages/dashbuilder-viewer/src/envelope/DashbuilderViewerView.tsx 
b/packages/dashbuilder-viewer/src/envelope/DashbuilderViewerView.tsx
index 960fb011855..6f3063e94a0 100644
--- a/packages/dashbuilder-viewer/src/envelope/DashbuilderViewerView.tsx
+++ b/packages/dashbuilder-viewer/src/envelope/DashbuilderViewerView.tsx
@@ -22,6 +22,7 @@ import {
   EditorApi,
   EditorInitArgs,
   EditorTheme,
+  KogitoEditorEnvelopeApi,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
 import { Notification } from "@kie-tools-core/notifications/dist/api";
@@ -36,7 +37,10 @@ export class DashbuilderViewerView implements Editor {
   public af_componentTitle: "Dashbuilder Editor";
 
   constructor(
-    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<DashbuilderViewerChannelApi>,
+    private readonly envelopeContext: KogitoEditorEnvelopeContextType<
+      KogitoEditorEnvelopeApi,
+      DashbuilderViewerChannelApi
+    >,
     private readonly initArgs: EditorInitArgs
   ) {
     this.editorRef = React.createRef<EditorApi>();
diff --git a/packages/dmn-editor-envelope/src/DmnEditorEnvelopeApiFactory.ts 
b/packages/dmn-editor-envelope/src/DmnEditorEnvelopeApiFactory.ts
index 572f25ab196..48a4e9b4f48 100644
--- a/packages/dmn-editor-envelope/src/DmnEditorEnvelopeApiFactory.ts
+++ b/packages/dmn-editor-envelope/src/DmnEditorEnvelopeApiFactory.ts
@@ -31,7 +31,7 @@ export type DmnEnvelopeApiFactoryArgs = 
EnvelopeApiFactoryArgs<
   KogitoEditorEnvelopeApi,
   KogitoEditorChannelApi,
   EditorEnvelopeViewApi<Editor>,
-  KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>
+  KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>
 >;
 
 export class DmnEditorEnvelopeApiImpl
diff --git a/packages/dmn-editor-envelope/src/DmnEditorFactory.tsx 
b/packages/dmn-editor-envelope/src/DmnEditorFactory.tsx
index ca44d6f5bcb..c89de8179f9 100644
--- a/packages/dmn-editor-envelope/src/DmnEditorFactory.tsx
+++ b/packages/dmn-editor-envelope/src/DmnEditorFactory.tsx
@@ -26,15 +26,16 @@ import {
   KogitoEditorChannelApi,
   EditorTheme,
   DEFAULT_WORKSPACE_ROOT_ABSOLUTE_POSIX_PATH,
+  KogitoEditorEnvelopeApi,
 } from "@kie-tools-core/editor/dist/api";
 import { Notification } from "@kie-tools-core/notifications/dist/api";
 import { DmnEditorRoot } from "./DmnEditorRoot";
 import { ResourceContent, ResourcesList, WorkspaceEdit } from 
"@kie-tools-core/workspace/dist/api";
 import { useCallback } from "react";
 
-export class DmnEditorFactory implements EditorFactory<Editor, 
KogitoEditorChannelApi> {
+export class DmnEditorFactory implements EditorFactory<Editor, 
KogitoEditorEnvelopeApi, KogitoEditorChannelApi> {
   public createEditor(
-    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>,
+    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>,
     initArgs: EditorInitArgs
   ): Promise<Editor> {
     return Promise.resolve(new DmnEditorInterface(envelopeContext, initArgs));
@@ -48,7 +49,7 @@ export class DmnEditorInterface implements Editor {
   public af_componentTitle: "DMN Editor";
 
   constructor(
-    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>,
+    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>,
     private readonly initArgs: EditorInitArgs
   ) {}
 
@@ -106,7 +107,7 @@ function DmnEditorRootWrapper({
   workspaceRootAbsolutePosixPath,
   isReadOnly,
 }: {
-  envelopeContext?: KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>;
+  envelopeContext?: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>;
   exposing: (s: DmnEditorRoot) => void;
   workspaceRootAbsolutePosixPath: string;
   isReadOnly: boolean;
diff --git a/packages/dmn-editor-envelope/src/NewDmnEditorEnvelopeApiFactory.ts 
b/packages/dmn-editor-envelope/src/NewDmnEditorEnvelopeApiFactory.ts
index 8c58c9dbdcf..b8772e3d58a 100644
--- a/packages/dmn-editor-envelope/src/NewDmnEditorEnvelopeApiFactory.ts
+++ b/packages/dmn-editor-envelope/src/NewDmnEditorEnvelopeApiFactory.ts
@@ -29,7 +29,7 @@ export type NewDmnEnvelopeApiFactoryArgs = 
EnvelopeApiFactoryArgs<
   NewDmnEditorEnvelopeApi,
   NewDmnEditorChannelApi,
   EditorEnvelopeViewApi<NewDmnEditorInterface>,
-  KogitoEditorEnvelopeContextType<NewDmnEditorChannelApi>
+  KogitoEditorEnvelopeContextType<NewDmnEditorEnvelopeApi, 
NewDmnEditorChannelApi>
 >;
 
 export class NewDmnEditorEnvelopeApiImpl
diff --git a/packages/dmn-editor-envelope/src/NewDmnEditorFactory.tsx 
b/packages/dmn-editor-envelope/src/NewDmnEditorFactory.tsx
index ca94144d6c6..80dcfb511b4 100644
--- a/packages/dmn-editor-envelope/src/NewDmnEditorFactory.tsx
+++ b/packages/dmn-editor-envelope/src/NewDmnEditorFactory.tsx
@@ -21,10 +21,13 @@ import * as React from "react";
 import { EditorFactory, EditorInitArgs, KogitoEditorEnvelopeContextType } from 
"@kie-tools-core/editor/dist/api";
 import { NewDmnEditorChannelApi } from "./NewDmnEditorChannelApi";
 import { DmnEditorInterface } from "./DmnEditorFactory";
+import { NewDmnEditorEnvelopeApi } from "./NewDmnEditorEnvelopeApi";
 
-export class NewDmnEditorFactory implements 
EditorFactory<NewDmnEditorInterface, NewDmnEditorChannelApi> {
+export class NewDmnEditorFactory
+  implements EditorFactory<NewDmnEditorInterface, NewDmnEditorEnvelopeApi, 
NewDmnEditorChannelApi>
+{
   public createEditor(
-    envelopeContext: KogitoEditorEnvelopeContextType<NewDmnEditorChannelApi>,
+    envelopeContext: KogitoEditorEnvelopeContextType<NewDmnEditorEnvelopeApi, 
NewDmnEditorChannelApi>,
     initArgs: EditorInitArgs
   ): Promise<NewDmnEditorInterface> {
     return Promise.resolve(new NewDmnEditorInterface(envelopeContext, 
initArgs));
diff --git a/packages/editor/src/api/EditorFactory.ts 
b/packages/editor/src/api/EditorFactory.ts
index e0528b27674..1d3e262871a 100644
--- a/packages/editor/src/api/EditorFactory.ts
+++ b/packages/editor/src/api/EditorFactory.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { EditorInitArgs } from "./KogitoEditorEnvelopeApi";
+import { EditorInitArgs, KogitoEditorEnvelopeApi } from 
"./KogitoEditorEnvelopeApi";
 import { Editor } from "./Editor";
 import { KogitoEditorEnvelopeContextType } from 
"./KogitoEditorEnvelopeContext";
 import { ApiDefinition } from "@kie-tools-core/envelope-bus/dist/api";
@@ -28,6 +28,7 @@ import { KogitoEditorChannelApi } from 
"./KogitoEditorChannelApi";
  */
 export interface EditorFactory<
   E extends Editor,
+  EnvelopeApi extends KogitoEditorEnvelopeApi & ApiDefinition<EnvelopeApi>,
   ChannelApi extends KogitoEditorChannelApi & ApiDefinition<ChannelApi>,
 > {
   /**
@@ -35,5 +36,8 @@ export interface EditorFactory<
    * @param envelopeContext The context to be used by Editor implementation.
    * @param initArgs Initial arguments required for the Editor to initialize 
itself properly.
    */
-  createEditor(envelopeContext: KogitoEditorEnvelopeContextType<ChannelApi>, 
initArgs: EditorInitArgs): Promise<E>;
+  createEditor(
+    envelopeContext: KogitoEditorEnvelopeContextType<EnvelopeApi, ChannelApi>,
+    initArgs: EditorInitArgs
+  ): Promise<E>;
 }
diff --git a/packages/editor/src/api/KogitoEditorEnvelopeContext.ts 
b/packages/editor/src/api/KogitoEditorEnvelopeContext.ts
index 481486ff6d5..a80d55480ae 100644
--- a/packages/editor/src/api/KogitoEditorEnvelopeContext.ts
+++ b/packages/editor/src/api/KogitoEditorEnvelopeContext.ts
@@ -19,16 +19,19 @@
 
 import * as React from "react";
 import { useContext } from "react";
-import { ApiDefinition, MessageBusClientApi } from 
"@kie-tools-core/envelope-bus/dist/api";
+import { ApiDefinition, ApiSharedValueConsumers, MessageBusClientApi } from 
"@kie-tools-core/envelope-bus/dist/api";
 import { KogitoEditorChannelApi } from "./KogitoEditorChannelApi";
 import { I18nService } from "@kie-tools-core/i18n/dist/envelope";
 import { OperatingSystem } from "@kie-tools-core/operating-system";
 import { KeyboardShortcutsService } from 
"@kie-tools-core/keyboard-shortcuts/dist/envelope/KeyboardShortcutsService";
 import { EditorTheme } from "./EditorTheme";
+import { KogitoEditorEnvelopeApi } from "./KogitoEditorEnvelopeApi";
 
 export interface KogitoEditorEnvelopeContextType<
+  EnvelopeApi extends KogitoEditorEnvelopeApi & ApiDefinition<EnvelopeApi>,
   ChannelApi extends KogitoEditorChannelApi & ApiDefinition<ChannelApi>,
 > {
+  shared: ApiSharedValueConsumers<EnvelopeApi>;
   channelApi: MessageBusClientApi<ChannelApi>;
   operatingSystem?: OperatingSystem;
   services: {
@@ -38,10 +41,11 @@ export interface KogitoEditorEnvelopeContextType<
   supportedThemes: EditorTheme[];
 }
 
-export const KogitoEditorEnvelopeContext = 
React.createContext<KogitoEditorEnvelopeContextType<any>>({} as any);
+export const KogitoEditorEnvelopeContext = 
React.createContext<KogitoEditorEnvelopeContextType<any, any>>({} as any);
 
 export function useKogitoEditorEnvelopeContext<
+  EnvelopeApi extends KogitoEditorEnvelopeApi & ApiDefinition<EnvelopeApi> = 
KogitoEditorEnvelopeApi,
   ChannelApi extends KogitoEditorChannelApi & ApiDefinition<ChannelApi> = 
KogitoEditorChannelApi,
 >() {
-  return useContext(KogitoEditorEnvelopeContext) as 
KogitoEditorEnvelopeContextType<ChannelApi>;
+  return useContext(KogitoEditorEnvelopeContext) as 
KogitoEditorEnvelopeContextType<EnvelopeApi, ChannelApi>;
 }
diff --git a/packages/editor/src/envelope/KogitoEditorEnvelope.tsx 
b/packages/editor/src/envelope/KogitoEditorEnvelope.tsx
index e14fcc0f680..4e91daa001b 100644
--- a/packages/editor/src/envelope/KogitoEditorEnvelope.tsx
+++ b/packages/editor/src/envelope/KogitoEditorEnvelope.tsx
@@ -45,7 +45,7 @@ export class KogitoEditorEnvelope<
       EnvelopeApi,
       ChannelApi,
       EditorEnvelopeViewApi<E>,
-      KogitoEditorEnvelopeContextType<ChannelApi>
+      KogitoEditorEnvelopeContextType<EnvelopeApi, ChannelApi>
     >,
     private readonly keyboardShortcutsService: KeyboardShortcutsService,
     private readonly i18nService: I18nService,
@@ -53,9 +53,10 @@ export class KogitoEditorEnvelope<
       EnvelopeApi,
       ChannelApi,
       EditorEnvelopeViewApi<E>,
-      KogitoEditorEnvelopeContextType<ChannelApi>
+      KogitoEditorEnvelopeContextType<EnvelopeApi, ChannelApi>
     >,
-    private readonly context: KogitoEditorEnvelopeContextType<ChannelApi> = {
+    private readonly context: KogitoEditorEnvelopeContextType<EnvelopeApi, 
ChannelApi> = {
+      shared: envelope.shared,
       channelApi: envelope.channelApi,
       operatingSystem: getOperatingSystem(),
       services: {
diff --git a/packages/editor/src/envelope/KogitoEditorEnvelopeApiImpl.ts 
b/packages/editor/src/envelope/KogitoEditorEnvelopeApiImpl.ts
index 3af26fd882f..3a637be01ee 100644
--- a/packages/editor/src/envelope/KogitoEditorEnvelopeApiImpl.ts
+++ b/packages/editor/src/envelope/KogitoEditorEnvelopeApiImpl.ts
@@ -53,9 +53,9 @@ export class KogitoEditorEnvelopeApiImpl<
       EnvelopeApi,
       ChannelApi,
       EditorEnvelopeViewApi<E>,
-      KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>
+      KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>
     >,
-    private readonly editorFactory: EditorFactory<E, KogitoEditorChannelApi>,
+    private readonly editorFactory: EditorFactory<E, KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>,
     private readonly i18n: I18n<EditorEnvelopeI18n> = new 
I18n<EditorEnvelopeI18n>(
       editorEnvelopeI18nDefaults,
       editorEnvelopeI18nDictionaries
diff --git a/packages/editor/src/envelope/index.ts 
b/packages/editor/src/envelope/index.ts
index 728af9b5fd3..948919d20b4 100644
--- a/packages/editor/src/envelope/index.ts
+++ b/packages/editor/src/envelope/index.ts
@@ -45,7 +45,7 @@ import { KeyboardShortcutsService } from 
"@kie-tools-core/keyboard-shortcuts/dis
 export function init(args: {
   container: HTMLElement;
   bus: EnvelopeBus;
-  editorFactory: EditorFactory<Editor, KogitoEditorChannelApi>;
+  editorFactory: EditorFactory<Editor, KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>;
   keyboardShortcutsService?: KeyboardShortcutsService;
 }) {
   initCustom({
@@ -69,7 +69,7 @@ export function initCustom<
     EnvelopeApi,
     ChannelApi,
     EditorEnvelopeViewApi<E>,
-    KogitoEditorEnvelopeContextType<ChannelApi>
+    KogitoEditorEnvelopeContextType<EnvelopeApi, ChannelApi>
   >;
   keyboardShortcutsService?: KeyboardShortcutsService;
 }) {
@@ -80,7 +80,7 @@ export function initCustom<
     EnvelopeApi,
     ChannelApi,
     EditorEnvelopeViewApi<E>,
-    KogitoEditorEnvelopeContextType<ChannelApi>
+    KogitoEditorEnvelopeContextType<EnvelopeApi, ChannelApi>
   >(args.bus);
 
   return new KogitoEditorEnvelope(args.apiImplFactory, 
keyboardShortcutsService, i18nService, envelope).start(
diff --git a/packages/editor/tests/envelope/utils.tsx 
b/packages/editor/tests/envelope/utils.tsx
index ba0689ba4b4..f0d34c2eea2 100644
--- a/packages/editor/tests/envelope/utils.tsx
+++ b/packages/editor/tests/envelope/utils.tsx
@@ -20,6 +20,7 @@
 import {
   ChannelType,
   KogitoEditorChannelApi,
+  KogitoEditorEnvelopeApi,
   KogitoEditorEnvelopeContext,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
@@ -34,7 +35,11 @@ import {
   editorEnvelopeI18nDictionaries,
 } from "@kie-tools-core/editor/dist/envelope/i18n";
 
-export const DEFAULT_TESTING_ENVELOPE_CONTEXT: 
KogitoEditorEnvelopeContextType<KogitoEditorChannelApi> = {
+export const DEFAULT_TESTING_ENVELOPE_CONTEXT: KogitoEditorEnvelopeContextType<
+  KogitoEditorEnvelopeApi,
+  KogitoEditorChannelApi
+> = {
+  shared: {} as any,
   channelApi: {} as any,
   services: {
     keyboardShortcuts: new DefaultKeyboardShortcutsService({} as any),
@@ -45,7 +50,7 @@ export const DEFAULT_TESTING_ENVELOPE_CONTEXT: 
KogitoEditorEnvelopeContextType<K
 
 export function usingEnvelopeContext(
   children: React.ReactElement,
-  ctx?: Partial<KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>>
+  ctx?: Partial<KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>>
 ) {
   const usedCtx = { ...DEFAULT_TESTING_ENVELOPE_CONTEXT, ...ctx };
   return {
diff --git a/packages/envelope-bus/src/envelope/EnvelopeClient.ts 
b/packages/envelope-bus/src/envelope/EnvelopeClient.ts
index e25baf6f25d..c4fcea8124c 100644
--- a/packages/envelope-bus/src/envelope/EnvelopeClient.ts
+++ b/packages/envelope-bus/src/envelope/EnvelopeClient.ts
@@ -40,6 +40,10 @@ export class EnvelopeClient<
     return this.manager.clientApi;
   }
 
+  public get shared() {
+    return this.manager.shared;
+  }
+
   constructor(
     private readonly bus: EnvelopeBus,
     private readonly envelopeId?: string
diff --git a/packages/envelope/src/Envelope.ts 
b/packages/envelope/src/Envelope.ts
index b27d0fe572b..09b8a4047b8 100644
--- a/packages/envelope/src/Envelope.ts
+++ b/packages/envelope/src/Envelope.ts
@@ -50,6 +50,10 @@ export class Envelope<
     return this.envelopeClient.channelApi;
   }
 
+  public get shared() {
+    return this.envelopeClient.shared;
+  }
+
   public async start(
     viewDelegate: () => Promise<() => ViewType>,
     envelopeContext: ContextType,
diff --git a/packages/kie-bc-editors/src/bpmn/envelope/BpmnEditorFactory.ts 
b/packages/kie-bc-editors/src/bpmn/envelope/BpmnEditorFactory.ts
index 631e66def69..076a9240532 100644
--- a/packages/kie-bc-editors/src/bpmn/envelope/BpmnEditorFactory.ts
+++ b/packages/kie-bc-editors/src/bpmn/envelope/BpmnEditorFactory.ts
@@ -18,8 +18,13 @@
  */
 
 import { GwtEditorWrapperFactory, XmlFormatter } from "../../common";
-import { BpmnEditorChannelApi, getBpmnLanguageData } from "../api";
-import { EditorFactory, EditorInitArgs, KogitoEditorEnvelopeContextType } from 
"@kie-tools-core/editor/dist/api";
+import { BpmnEditorChannelApi, BpmnEditorEnvelopeApi, getBpmnLanguageData } 
from "../api";
+import {
+  EditorFactory,
+  EditorInitArgs,
+  KogitoEditorEnvelopeApi,
+  KogitoEditorEnvelopeContextType,
+} from "@kie-tools-core/editor/dist/api";
 import { BpmnEditor, BpmnEditorImpl } from "./BpmnEditor";
 import { DmnLanguageServiceExposedInteropApi } from 
"./exposedInteropApi/DmnLanguageServiceExposedInteropApi";
 import { DmnLanguageService } from "@kie-tools/dmn-language-service";
@@ -32,11 +37,11 @@ export interface CustomWindow extends Window {
 
 declare let window: CustomWindow;
 
-export class BpmnEditorFactory implements EditorFactory<BpmnEditor, 
BpmnEditorChannelApi> {
+export class BpmnEditorFactory implements EditorFactory<BpmnEditor, 
BpmnEditorEnvelopeApi, BpmnEditorChannelApi> {
   constructor(private readonly gwtEditorEnvelopeConfig: { 
shouldLoadResourcesDynamically: boolean }) {}
 
   public async createEditor(
-    ctx: KogitoEditorEnvelopeContextType<BpmnEditorChannelApi>,
+    ctx: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
BpmnEditorChannelApi>,
     initArgs: EditorInitArgs
   ): Promise<BpmnEditor> {
     const dmnLs = new DmnLanguageService({
diff --git 
a/packages/kie-bc-editors/src/bpmn/envelope/BpmnEnvelopeApiFactory.ts 
b/packages/kie-bc-editors/src/bpmn/envelope/BpmnEnvelopeApiFactory.ts
index eede7cf4aec..ecd6a5037cd 100644
--- a/packages/kie-bc-editors/src/bpmn/envelope/BpmnEnvelopeApiFactory.ts
+++ b/packages/kie-bc-editors/src/bpmn/envelope/BpmnEnvelopeApiFactory.ts
@@ -28,7 +28,7 @@ export type BpmnEnvelopeApiFactoryArgs = 
EnvelopeApiFactoryArgs<
   BpmnEditorEnvelopeApi,
   BpmnEditorChannelApi,
   EditorEnvelopeViewApi<BpmnEditor>,
-  KogitoEditorEnvelopeContextType<BpmnEditorChannelApi>
+  KogitoEditorEnvelopeContextType<BpmnEditorEnvelopeApi, BpmnEditorChannelApi>
 >;
 
 export class BpmnEditorEnvelopeApiImpl
diff --git 
a/packages/kie-bc-editors/src/bpmn/envelope/vscode/VsCodeBpmnEditorFactory.ts 
b/packages/kie-bc-editors/src/bpmn/envelope/vscode/VsCodeBpmnEditorFactory.ts
index 67a81508b78..551e40de2ef 100644
--- 
a/packages/kie-bc-editors/src/bpmn/envelope/vscode/VsCodeBpmnEditorFactory.ts
+++ 
b/packages/kie-bc-editors/src/bpmn/envelope/vscode/VsCodeBpmnEditorFactory.ts
@@ -22,6 +22,7 @@ import { BpmnEditor } from "../BpmnEditor";
 import { JavaCodeCompletionApi } from 
"@kie-tools-core/vscode-java-code-completion/dist/api";
 import { BpmnEditorFactory } from "../BpmnEditorFactory";
 import { VsCodeBpmnEditorChannelApi } from "./VsCodeBpmnEditorChannelApi";
+import { BpmnEditorEnvelopeApi } from "../../api";
 
 export interface CustomWindow extends Window {
   envelope: {
@@ -32,7 +33,9 @@ export interface CustomWindow extends Window {
 declare let window: CustomWindow;
 
 class JavaCodeCompletionService implements JavaCodeCompletionApi {
-  constructor(private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<VsCodeBpmnEditorChannelApi>) {}
+  constructor(
+    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<BpmnEditorEnvelopeApi, 
VsCodeBpmnEditorChannelApi>
+  ) {}
   getAccessors(fqcn: string, query: string) {
     return 
this.envelopeContext.channelApi.requests.kogitoJavaCodeCompletion__getAccessors(fqcn,
 query);
   }
@@ -44,11 +47,13 @@ class JavaCodeCompletionService implements 
JavaCodeCompletionApi {
   }
 }
 
-export class VsCodeBpmnEditorFactory implements EditorFactory<BpmnEditor, 
VsCodeBpmnEditorChannelApi> {
+export class VsCodeBpmnEditorFactory
+  implements EditorFactory<BpmnEditor, BpmnEditorEnvelopeApi, 
VsCodeBpmnEditorChannelApi>
+{
   constructor(private readonly gwtEditorEnvelopeConfig: { 
shouldLoadResourcesDynamically: boolean }) {}
 
   public createEditor(
-    ctx: KogitoEditorEnvelopeContextType<VsCodeBpmnEditorChannelApi>,
+    ctx: KogitoEditorEnvelopeContextType<BpmnEditorEnvelopeApi, 
VsCodeBpmnEditorChannelApi>,
     initArgs: EditorInitArgs
   ): Promise<BpmnEditor> {
     window.envelope = {
diff --git a/packages/kie-bc-editors/src/common/GwtEditorWrapperFactory.ts 
b/packages/kie-bc-editors/src/common/GwtEditorWrapperFactory.ts
index eb4fd7aa8f3..02b23ef0a99 100644
--- a/packages/kie-bc-editors/src/common/GwtEditorWrapperFactory.ts
+++ b/packages/kie-bc-editors/src/common/GwtEditorWrapperFactory.ts
@@ -23,6 +23,7 @@ import {
   EditorFactory,
   EditorInitArgs,
   KogitoEditorChannelApi,
+  KogitoEditorEnvelopeApi,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
 import { I18n } from "@kie-tools-core/i18n/dist/core";
@@ -60,7 +61,9 @@ export interface CustomWindow extends Window {
 
 declare let window: CustomWindow;
 
-export class GwtEditorWrapperFactory<E extends GwtEditorWrapper> implements 
EditorFactory<E, KogitoEditorChannelApi> {
+export class GwtEditorWrapperFactory<E extends GwtEditorWrapper>
+  implements EditorFactory<E, KogitoEditorEnvelopeApi, KogitoEditorChannelApi>
+{
   constructor(
     private readonly languageData: GwtLanguageData,
     private readonly gwtEditorDelegate: (factory: GwtEditorWrapperFactory<E>, 
initArgs: EditorInitArgs) => E,
@@ -74,7 +77,7 @@ export class GwtEditorWrapperFactory<E extends 
GwtEditorWrapper> implements Edit
   public gwtEditor: E;
 
   public createEditor(
-    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>,
+    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>,
     initArgs: EditorInitArgs
   ) {
     this.kieBcEditorsI18n.setLocale(initArgs.initialLocale);
@@ -105,7 +108,7 @@ export class GwtEditorWrapperFactory<E extends 
GwtEditorWrapper> implements Edit
   }
 
   private exposeEnvelopeContext(
-    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>,
+    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>,
     initArgs: EditorInitArgs
   ) {
     window.gwt = {
diff --git a/packages/kie-bc-editors/src/dmn/envelope/DmnEditorFactory.ts 
b/packages/kie-bc-editors/src/dmn/envelope/DmnEditorFactory.ts
index 15f6b9dcace..b95e70425bb 100644
--- a/packages/kie-bc-editors/src/dmn/envelope/DmnEditorFactory.ts
+++ b/packages/kie-bc-editors/src/dmn/envelope/DmnEditorFactory.ts
@@ -18,7 +18,7 @@
  */
 
 import { GwtEditorWrapperFactory, XmlFormatter } from "../../common";
-import { DmnEditorChannelApi, getDmnLanguageData } from "../api";
+import { DmnEditorChannelApi, DmnEditorEnvelopeApi, getDmnLanguageData } from 
"../api";
 import { EditorFactory, EditorInitArgs, KogitoEditorEnvelopeContextType } from 
"@kie-tools-core/editor/dist/api";
 import { DmnEditor, DmnEditorImpl } from "./DmnEditor";
 import { PmmlEditorMarshallerExposedInteropApi } from 
"./exposedInteropApi/PmmlEditorMarshallerExposedInteropApi";
@@ -32,11 +32,11 @@ export interface CustomWindow extends Window {
 
 declare let window: CustomWindow;
 
-export class DmnEditorFactory implements EditorFactory<DmnEditor, 
DmnEditorChannelApi> {
+export class DmnEditorFactory implements EditorFactory<DmnEditor, 
DmnEditorEnvelopeApi, DmnEditorChannelApi> {
   constructor(private readonly gwtEditorEnvelopeConfig: { 
shouldLoadResourcesDynamically: boolean }) {}
 
   public createEditor(
-    ctx: KogitoEditorEnvelopeContextType<DmnEditorChannelApi>,
+    ctx: KogitoEditorEnvelopeContextType<DmnEditorEnvelopeApi, 
DmnEditorChannelApi>,
     initArgs: EditorInitArgs
   ): Promise<DmnEditor> {
     const exposedInteropApi: CustomWindow["envelope"] = {
diff --git a/packages/kie-bc-editors/src/dmn/envelope/DmnEnvelopeApiFactory.ts 
b/packages/kie-bc-editors/src/dmn/envelope/DmnEnvelopeApiFactory.ts
index fc9e2808d8d..94b4f0663a5 100644
--- a/packages/kie-bc-editors/src/dmn/envelope/DmnEnvelopeApiFactory.ts
+++ b/packages/kie-bc-editors/src/dmn/envelope/DmnEnvelopeApiFactory.ts
@@ -28,7 +28,7 @@ export type DmnEnvelopeApiFactoryArgs = 
EnvelopeApiFactoryArgs<
   DmnEditorEnvelopeApi,
   DmnEditorChannelApi,
   EditorEnvelopeViewApi<DmnEditor>,
-  KogitoEditorEnvelopeContextType<DmnEditorChannelApi>
+  KogitoEditorEnvelopeContextType<DmnEditorEnvelopeApi, DmnEditorChannelApi>
 >;
 
 export class DmnEditorEnvelopeApiImpl
diff --git 
a/packages/kie-bc-editors/src/dmn/envelope/vscode/VsCodeDmnEditorFactory.ts 
b/packages/kie-bc-editors/src/dmn/envelope/vscode/VsCodeDmnEditorFactory.ts
index 02cb38a5589..126a59c183a 100644
--- a/packages/kie-bc-editors/src/dmn/envelope/vscode/VsCodeDmnEditorFactory.ts
+++ b/packages/kie-bc-editors/src/dmn/envelope/vscode/VsCodeDmnEditorFactory.ts
@@ -25,6 +25,7 @@ import {
   JavaCodeCompletionAccessor,
   JavaCodeCompletionClass,
 } from "@kie-tools-core/vscode-java-code-completion/dist/api";
+import { DmnEditorEnvelopeApi } from "../../api";
 
 /**
  * EXPOSED INTEROP API
@@ -45,11 +46,13 @@ export interface CustomWindow extends Window {
 
 declare let window: CustomWindow;
 
-export class VsCodeDmnEditorFactory implements EditorFactory<DmnEditor, 
VsCodeDmnEditorChannelApi> {
+export class VsCodeDmnEditorFactory
+  implements EditorFactory<DmnEditor, DmnEditorEnvelopeApi, 
VsCodeDmnEditorChannelApi>
+{
   constructor(private readonly gwtEditorEnvelopeConfig: { 
shouldLoadResourcesDynamically: boolean }) {}
 
   public createEditor(
-    ctx: KogitoEditorEnvelopeContextType<VsCodeDmnEditorChannelApi>,
+    ctx: KogitoEditorEnvelopeContextType<DmnEditorEnvelopeApi, 
VsCodeDmnEditorChannelApi>,
     initArgs: EditorInitArgs
   ): Promise<DmnEditor> {
     const exposedInteropApi: CustomWindow["envelope"] = {
diff --git a/packages/kie-bc-editors/src/scesim/envelope/SceSimEditorFactory.ts 
b/packages/kie-bc-editors/src/scesim/envelope/SceSimEditorFactory.ts
index d57bcbef490..3b4a8984ccc 100644
--- a/packages/kie-bc-editors/src/scesim/envelope/SceSimEditorFactory.ts
+++ b/packages/kie-bc-editors/src/scesim/envelope/SceSimEditorFactory.ts
@@ -18,15 +18,17 @@
  */
 
 import { SceSimEditor, SceSimEditorImpl } from "./SceSimEditor";
-import { getSceSimLanguageData, SceSimEditorChannelApi } from "../api";
+import { getSceSimLanguageData, SceSimEditorChannelApi, 
SceSimEditorEnvelopeApi } from "../api";
 import { GwtEditorWrapperFactory, XmlFormatter } from "../../common";
 import { EditorFactory, EditorInitArgs, KogitoEditorEnvelopeContextType } from 
"@kie-tools-core/editor/dist/api";
 
-export class SceSimEditorFactory implements EditorFactory<SceSimEditor, 
SceSimEditorChannelApi> {
+export class SceSimEditorFactory
+  implements EditorFactory<SceSimEditor, SceSimEditorEnvelopeApi, 
SceSimEditorChannelApi>
+{
   constructor(private readonly gwtEditorEnvelopeConfig: { 
shouldLoadResourcesDynamically: boolean }) {}
 
   public createEditor(
-    ctx: KogitoEditorEnvelopeContextType<SceSimEditorChannelApi>,
+    ctx: KogitoEditorEnvelopeContextType<SceSimEditorEnvelopeApi, 
SceSimEditorChannelApi>,
     initArgs: EditorInitArgs
   ): Promise<SceSimEditor> {
     const languageData = getSceSimLanguageData(initArgs.resourcesPathPrefix);
diff --git 
a/packages/kie-bc-editors/src/scesim/envelope/SceSimEnvelopeApiFactory.ts 
b/packages/kie-bc-editors/src/scesim/envelope/SceSimEnvelopeApiFactory.ts
index b7cb860ffa8..791e415b065 100644
--- a/packages/kie-bc-editors/src/scesim/envelope/SceSimEnvelopeApiFactory.ts
+++ b/packages/kie-bc-editors/src/scesim/envelope/SceSimEnvelopeApiFactory.ts
@@ -28,7 +28,7 @@ export type SceSimEnvelopeApiFactoryArgs = 
EnvelopeApiFactoryArgs<
   SceSimEditorEnvelopeApi,
   SceSimEditorChannelApi,
   EditorEnvelopeViewApi<SceSimEditor>,
-  KogitoEditorEnvelopeContextType<SceSimEditorChannelApi>
+  KogitoEditorEnvelopeContextType<SceSimEditorEnvelopeApi, 
SceSimEditorChannelApi>
 >;
 
 export class SceSimEditorEnvelopeApiImpl
diff --git a/packages/kie-bc-editors/tests/GwtEditorWrapperFactory.test.ts 
b/packages/kie-bc-editors/tests/GwtEditorWrapperFactory.test.ts
index 8e68863c9c1..3f2df1fe419 100644
--- a/packages/kie-bc-editors/tests/GwtEditorWrapperFactory.test.ts
+++ b/packages/kie-bc-editors/tests/GwtEditorWrapperFactory.test.ts
@@ -107,6 +107,7 @@ describe("GwtEditorWrapperFactory", () => {
 
     const editorCreation = gwtEditorWrapperFactory.createEditor(
       {
+        shared: {} as any,
         channelApi: channelApiMock,
         services: {
           keyboardShortcuts: {} as any,
diff --git a/packages/pmml-editor/src/editor/PMMLEditorFactory.ts 
b/packages/pmml-editor/src/editor/PMMLEditorFactory.ts
index fd988f2e14c..66507b2f42b 100644
--- a/packages/pmml-editor/src/editor/PMMLEditorFactory.ts
+++ b/packages/pmml-editor/src/editor/PMMLEditorFactory.ts
@@ -24,13 +24,14 @@ import {
   EditorInitArgs,
   KogitoEditorEnvelopeContextType,
   KogitoEditorChannelApi,
+  KogitoEditorEnvelopeApi,
 } from "@kie-tools-core/editor/dist/api";
 
 export const FACTORY_TYPE = "pmml";
 
-export class PMMLEditorFactory implements EditorFactory<Editor, 
KogitoEditorChannelApi> {
+export class PMMLEditorFactory implements EditorFactory<Editor, 
KogitoEditorEnvelopeApi, KogitoEditorChannelApi> {
   public createEditor(
-    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>,
+    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>,
     initArgs: EditorInitArgs
   ): Promise<Editor> {
     return Promise.resolve(new PMMLEditorInterface(envelopeContext));
diff --git a/packages/pmml-editor/src/editor/PMMLEditorInterface.tsx 
b/packages/pmml-editor/src/editor/PMMLEditorInterface.tsx
index 67d9f74812b..0aec6360651 100644
--- a/packages/pmml-editor/src/editor/PMMLEditorInterface.tsx
+++ b/packages/pmml-editor/src/editor/PMMLEditorInterface.tsx
@@ -16,7 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { Editor, KogitoEditorChannelApi, KogitoEditorEnvelopeContextType } 
from "@kie-tools-core/editor/dist/api";
+import {
+  Editor,
+  KogitoEditorChannelApi,
+  KogitoEditorEnvelopeApi,
+  KogitoEditorEnvelopeContextType,
+} from "@kie-tools-core/editor/dist/api";
 import { Notification } from "@kie-tools-core/notifications/dist/api";
 import * as React from "react";
 import { PMMLEditor } from "./PMMLEditor";
@@ -27,7 +32,9 @@ export class PMMLEditorInterface implements Editor {
   public af_componentId: "pmml-editor";
   public af_componentTitle: "PMML Editor";
 
-  constructor(private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>) {}
+  constructor(
+    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, KogitoEditorChannelApi>
+  ) {}
 
   public setContent(normalizedPosixPathRelativeToTheWorkspaceRoot: string, 
content: string): Promise<void> {
     return this.self.setContent(normalizedPosixPathRelativeToTheWorkspaceRoot, 
content);
diff --git a/packages/pmml-editor/tests/editor/PMMLEditorFactory.test.ts 
b/packages/pmml-editor/tests/editor/PMMLEditorFactory.test.ts
index f1ebbf71222..d42a222dc71 100644
--- a/packages/pmml-editor/tests/editor/PMMLEditorFactory.test.ts
+++ b/packages/pmml-editor/tests/editor/PMMLEditorFactory.test.ts
@@ -22,6 +22,7 @@ import {
   DEFAULT_WORKSPACE_ROOT_ABSOLUTE_POSIX_PATH,
   Editor,
   KogitoEditorChannelApi,
+  KogitoEditorEnvelopeApi,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
 import { PMMLEditorFactory, PMMLEditorInterface } from 
"@kie-tools/pmml-editor";
@@ -32,7 +33,8 @@ import { I18nService } from 
"@kie-tools-core/i18n/dist/envelope";
 
 const channelApi = messageBusClientApiMock<KogitoEditorChannelApi>();
 
-const envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorChannelApi> 
= {
+const envelopeContext: 
KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi> = {
+  shared: {} as any,
   channelApi: channelApi,
   operatingSystem: OperatingSystem.LINUX,
   services: {
diff --git a/packages/pmml-editor/tests/editor/PMMLEditorInterface.test.ts 
b/packages/pmml-editor/tests/editor/PMMLEditorInterface.test.ts
index b3c889f788e..6c9f4148b53 100644
--- a/packages/pmml-editor/tests/editor/PMMLEditorInterface.test.ts
+++ b/packages/pmml-editor/tests/editor/PMMLEditorInterface.test.ts
@@ -17,7 +17,11 @@
  * under the License.
  */
 
-import { KogitoEditorChannelApi, KogitoEditorEnvelopeContextType } from 
"@kie-tools-core/editor/dist/api";
+import {
+  KogitoEditorChannelApi,
+  KogitoEditorEnvelopeApi,
+  KogitoEditorEnvelopeContextType,
+} from "@kie-tools-core/editor/dist/api";
 import { render } from "@testing-library/react";
 import { ReactElement } from "react";
 import { PMMLEditor, PMMLEditorInterface } from "@kie-tools/pmml-editor";
@@ -28,7 +32,8 @@ import { I18nService } from 
"@kie-tools-core/i18n/dist/envelope";
 
 const channelApi = messageBusClientApiMock<KogitoEditorChannelApi>();
 
-const envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorChannelApi> 
= {
+const envelopeContext: 
KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi> = {
+  shared: {} as any,
   channelApi: channelApi,
   operatingSystem: OperatingSystem.LINUX,
   services: {
diff --git 
a/packages/scesim-editor-envelope/src/TestScenarioEditorEnvelopeApiFactory.ts 
b/packages/scesim-editor-envelope/src/TestScenarioEditorEnvelopeApiFactory.ts
index 394581f8575..9ac21ad254a 100644
--- 
a/packages/scesim-editor-envelope/src/TestScenarioEditorEnvelopeApiFactory.ts
+++ 
b/packages/scesim-editor-envelope/src/TestScenarioEditorEnvelopeApiFactory.ts
@@ -31,7 +31,7 @@ export type TestScenarioEnvelopeApiFactoryArgs = 
EnvelopeApiFactoryArgs<
   KogitoEditorEnvelopeApi,
   KogitoEditorChannelApi,
   EditorEnvelopeViewApi<Editor>,
-  KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>
+  KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>
 >;
 
 export class TestScenarioEditorEnvelopeApiImpl
diff --git a/packages/scesim-editor-envelope/src/TestScenarioEditorFactory.tsx 
b/packages/scesim-editor-envelope/src/TestScenarioEditorFactory.tsx
index 8957ffaf43f..ebf8402d76d 100644
--- a/packages/scesim-editor-envelope/src/TestScenarioEditorFactory.tsx
+++ b/packages/scesim-editor-envelope/src/TestScenarioEditorFactory.tsx
@@ -27,14 +27,17 @@ import {
   KogitoEditorChannelApi,
   EditorTheme,
   DEFAULT_WORKSPACE_ROOT_ABSOLUTE_POSIX_PATH,
+  KogitoEditorEnvelopeApi,
 } from "@kie-tools-core/editor/dist/api";
 import { Notification } from "@kie-tools-core/notifications/dist/api";
 import { ResourceContent, ResourcesList, WorkspaceEdit } from 
"@kie-tools-core/workspace/dist/api";
 import { TestScenarioEditorRoot } from "./TestScenarioEditorRoot";
 
-export class TestScenarioEditorFactory implements EditorFactory<Editor, 
KogitoEditorChannelApi> {
+export class TestScenarioEditorFactory
+  implements EditorFactory<Editor, KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>
+{
   public createEditor(
-    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>,
+    envelopeContext: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>,
     initArgs: EditorInitArgs
   ): Promise<Editor> {
     return Promise.resolve(new TestScenarioEditorInterface(envelopeContext, 
initArgs));
@@ -48,7 +51,7 @@ export class TestScenarioEditorInterface implements Editor {
   public af_componentTitle: "Test Scenario Editor";
 
   constructor(
-    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>,
+    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>,
     private readonly initArgs: EditorInitArgs
   ) {}
 
@@ -106,7 +109,7 @@ function TestScenarioEditorRootWrapper({
   workspaceRootAbsolutePosixPath,
   isReadOnly,
 }: {
-  envelopeContext?: KogitoEditorEnvelopeContextType<KogitoEditorChannelApi>;
+  envelopeContext?: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
KogitoEditorChannelApi>;
   exposing: (s: TestScenarioEditorRoot) => void;
   workspaceRootAbsolutePosixPath: string;
   isReadOnly: boolean;
diff --git 
a/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditor.tsx
 
b/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditor.tsx
index 670029baf36..15d0447349a 100644
--- 
a/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditor.tsx
+++ 
b/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditor.tsx
@@ -64,7 +64,11 @@ import {
   useState,
 } from "react";
 import { Position } from "monaco-editor";
-import { ServerlessWorkflowCombinedEditorChannelApi, SwfPreviewOptions } from 
"../api";
+import {
+  ServerlessWorkflowCombinedEditorChannelApi,
+  ServerlessWorkflowCombinedEditorEnvelopeApi,
+  SwfPreviewOptions,
+} from "../api";
 import { useSwfDiagramEditorChannelApi } from 
"./hooks/useSwfDiagramEditorChannelApi";
 import { UseSwfTextEditorChannelApiArgs, useSwfTextEditorChannelApi } from 
"./hooks/useSwfTextEditorChannelApi";
 import { colorNodes } from "./helpers/ColorNodes";
@@ -106,7 +110,10 @@ const RefForwardingServerlessWorkflowCombinedEditor: 
ForwardRefRenderFunction<
   const [file, setFile] = useState<File | undefined>(undefined);
   const [embeddedTextEditorFile, setEmbeddedTextEditorFile] = 
useState<EmbeddedEditorFile>();
   const [embeddedDiagramEditorFile, setEmbeddedDiagramEditorFile] = 
useState<EmbeddedEditorFile>();
-  const editorEnvelopeCtx = 
useKogitoEditorEnvelopeContext<ServerlessWorkflowCombinedEditorChannelApi>();
+  const editorEnvelopeCtx = useKogitoEditorEnvelopeContext<
+    ServerlessWorkflowCombinedEditorEnvelopeApi,
+    ServerlessWorkflowCombinedEditorChannelApi
+  >();
   const [diagramEditorEnvelopeContent] = useSharedValue<string>(
     
editorEnvelopeCtx.channelApi.shared.kogitoSwfGetDiagramEditorEnvelopeContent
   );
diff --git 
a/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditorFactory.ts
 
b/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditorFactory.ts
index db049fc1dd9..eee93386503 100644
--- 
a/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditorFactory.ts
+++ 
b/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditorFactory.ts
@@ -23,14 +23,18 @@ import {
   EditorInitArgs,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
-import { ServerlessWorkflowCombinedEditorChannelApi } from "../api";
+import { ServerlessWorkflowCombinedEditorChannelApi, 
ServerlessWorkflowCombinedEditorEnvelopeApi } from "../api";
 import { ServerlessWorkflowCombinedEditorView } from 
"./ServerlessWorkflowCombinedEditorView";
 
 export class ServerlessWorkflowCombinedEditorFactory
-  implements EditorFactory<Editor, ServerlessWorkflowCombinedEditorChannelApi>
+  implements
+    EditorFactory<Editor, ServerlessWorkflowCombinedEditorEnvelopeApi, 
ServerlessWorkflowCombinedEditorChannelApi>
 {
   public async createEditor(
-    ctx: 
KogitoEditorEnvelopeContextType<ServerlessWorkflowCombinedEditorChannelApi>,
+    ctx: KogitoEditorEnvelopeContextType<
+      ServerlessWorkflowCombinedEditorEnvelopeApi,
+      ServerlessWorkflowCombinedEditorChannelApi
+    >,
     initArgs: EditorInitArgs
   ) {
     return new ServerlessWorkflowCombinedEditorView(ctx, initArgs);
diff --git 
a/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditorView.tsx
 
b/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditorView.tsx
index 9bed9479b5e..bbf205d1e6e 100644
--- 
a/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditorView.tsx
+++ 
b/packages/serverless-workflow-combined-editor/src/editor/ServerlessWorkflowCombinedEditorView.tsx
@@ -20,7 +20,11 @@
 import { EditorInitArgs, EditorTheme, KogitoEditorEnvelopeContextType } from 
"@kie-tools-core/editor/dist/api";
 import { Notification } from "@kie-tools-core/notifications/dist/api";
 import * as React from "react";
-import { ServerlessWorkflowCombinedEditorApi, 
ServerlessWorkflowCombinedEditorChannelApi } from "../api";
+import {
+  ServerlessWorkflowCombinedEditorApi,
+  ServerlessWorkflowCombinedEditorChannelApi,
+  ServerlessWorkflowCombinedEditorEnvelopeApi,
+} from "../api";
 import { ServerlessWorkflowCombinedEditor } from 
"./ServerlessWorkflowCombinedEditor";
 import { Position } from "monaco-editor";
 
@@ -31,7 +35,10 @@ export class ServerlessWorkflowCombinedEditorView implements 
ServerlessWorkflowC
   public af_componentTitle: "Serverless Workflow Combined Editor";
 
   constructor(
-    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<ServerlessWorkflowCombinedEditorChannelApi>,
+    private readonly envelopeContext: KogitoEditorEnvelopeContextType<
+      ServerlessWorkflowCombinedEditorEnvelopeApi,
+      ServerlessWorkflowCombinedEditorChannelApi
+    >,
     private readonly initArgs: EditorInitArgs
   ) {
     this.editorRef = React.createRef<ServerlessWorkflowCombinedEditorApi>();
diff --git 
a/packages/serverless-workflow-combined-editor/src/envelope/ServerlessWorkflowCombinedEditorEnvelopeApiImpl.ts
 
b/packages/serverless-workflow-combined-editor/src/envelope/ServerlessWorkflowCombinedEditorEnvelopeApiImpl.ts
index dde1dbea755..4c378471597 100644
--- 
a/packages/serverless-workflow-combined-editor/src/envelope/ServerlessWorkflowCombinedEditorEnvelopeApiImpl.ts
+++ 
b/packages/serverless-workflow-combined-editor/src/envelope/ServerlessWorkflowCombinedEditorEnvelopeApiImpl.ts
@@ -28,7 +28,10 @@ export type ServerlessWorkflowCombinedEnvelopeApiFactoryArgs 
= EnvelopeApiFactor
   ServerlessWorkflowCombinedEditorEnvelopeApi,
   ServerlessWorkflowCombinedEditorChannelApi,
   EditorEnvelopeViewApi<ServerlessWorkflowCombinedEditorApi>,
-  KogitoEditorEnvelopeContextType<ServerlessWorkflowCombinedEditorChannelApi>
+  KogitoEditorEnvelopeContextType<
+    ServerlessWorkflowCombinedEditorEnvelopeApi,
+    ServerlessWorkflowCombinedEditorChannelApi
+  >
 >;
 
 export class ServerlessWorkflowCombinedEditorEnvelopeApiImpl
@@ -41,7 +44,11 @@ export class ServerlessWorkflowCombinedEditorEnvelopeApiImpl
 {
   constructor(
     private readonly serverlessWorkflowArgs: 
ServerlessWorkflowCombinedEnvelopeApiFactoryArgs,
-    editorFactory: EditorFactory<ServerlessWorkflowCombinedEditorApi, 
ServerlessWorkflowCombinedEditorChannelApi>
+    editorFactory: EditorFactory<
+      ServerlessWorkflowCombinedEditorApi,
+      ServerlessWorkflowCombinedEditorEnvelopeApi,
+      ServerlessWorkflowCombinedEditorChannelApi
+    >
   ) {
     super(serverlessWorkflowArgs, editorFactory);
   }
diff --git 
a/packages/serverless-workflow-diagram-editor-envelope/src/api/DiagramService.ts
 
b/packages/serverless-workflow-diagram-editor-envelope/src/api/DiagramService.ts
index 1f9b9bcc198..c73d9dd784a 100644
--- 
a/packages/serverless-workflow-diagram-editor-envelope/src/api/DiagramService.ts
+++ 
b/packages/serverless-workflow-diagram-editor-envelope/src/api/DiagramService.ts
@@ -20,13 +20,17 @@
 import { KogitoEditorEnvelopeContextType } from 
"@kie-tools-core/editor/dist/api";
 import { DiagramExposedInteropApi } from "./DiagramExposedInteropApi";
 import { ServerlessWorkflowDiagramEditorChannelApi } from 
"./ServerlessWorkflowDiagramEditorChannelApi";
+import { ServerlessWorkflowDiagramEditorEnvelopeApi } from 
"./ServerlessWorkflowDiagramEditorEnvelopeApi";
 
 /**
  * Class for diagram window interactions.
  */
 export class DiagramService implements DiagramExposedInteropApi {
   constructor(
-    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<ServerlessWorkflowDiagramEditorChannelApi>
+    private readonly envelopeContext: KogitoEditorEnvelopeContextType<
+      ServerlessWorkflowDiagramEditorEnvelopeApi,
+      ServerlessWorkflowDiagramEditorChannelApi
+    >
   ) {}
 
   public onNodeSelected(nodeName: string) {
diff --git 
a/packages/serverless-workflow-diagram-editor-envelope/src/envelope/ServerlessWorkflowDiagramEditorEnvelopeApiImpl.ts
 
b/packages/serverless-workflow-diagram-editor-envelope/src/envelope/ServerlessWorkflowDiagramEditorEnvelopeApiImpl.ts
index 917608a3ea8..80298ec0253 100644
--- 
a/packages/serverless-workflow-diagram-editor-envelope/src/envelope/ServerlessWorkflowDiagramEditorEnvelopeApiImpl.ts
+++ 
b/packages/serverless-workflow-diagram-editor-envelope/src/envelope/ServerlessWorkflowDiagramEditorEnvelopeApiImpl.ts
@@ -30,7 +30,7 @@ export type ServerlessWorkflowDiagramEnvelopeApiFactoryArgs = 
EnvelopeApiFactory
   ServerlessWorkflowDiagramEditorEnvelopeApi,
   ServerlessWorkflowDiagramEditorChannelApi,
   EditorEnvelopeViewApi<ServerlessWorkflowDiagramEditor>,
-  KogitoEditorEnvelopeContextType<ServerlessWorkflowDiagramEditorChannelApi>
+  KogitoEditorEnvelopeContextType<ServerlessWorkflowDiagramEditorEnvelopeApi, 
ServerlessWorkflowDiagramEditorChannelApi>
 >;
 
 export class ServerlessWorkflowDiagramEditorEnvelopeApiImpl
@@ -43,7 +43,11 @@ export class ServerlessWorkflowDiagramEditorEnvelopeApiImpl
 {
   constructor(
     private readonly serverlessWorkflowArgs: 
ServerlessWorkflowDiagramEnvelopeApiFactoryArgs,
-    editorFactory: EditorFactory<ServerlessWorkflowDiagramEditor, 
ServerlessWorkflowDiagramEditorChannelApi>
+    editorFactory: EditorFactory<
+      ServerlessWorkflowDiagramEditor,
+      ServerlessWorkflowDiagramEditorEnvelopeApi,
+      ServerlessWorkflowDiagramEditorChannelApi
+    >
   ) {
     super(serverlessWorkflowArgs, editorFactory);
   }
diff --git 
a/packages/serverless-workflow-diagram-editor-envelope/src/envelope/ServerlessWorkflowDiagramEditorFactory.ts
 
b/packages/serverless-workflow-diagram-editor-envelope/src/envelope/ServerlessWorkflowDiagramEditorFactory.ts
index f5e540e209d..9a6d4d6c2e2 100644
--- 
a/packages/serverless-workflow-diagram-editor-envelope/src/envelope/ServerlessWorkflowDiagramEditorFactory.ts
+++ 
b/packages/serverless-workflow-diagram-editor-envelope/src/envelope/ServerlessWorkflowDiagramEditorFactory.ts
@@ -24,7 +24,11 @@ import {
   EditorTheme,
 } from "@kie-tools-core/editor/dist/api";
 import { GwtEditorWrapperFactory } from 
"@kie-tools/kie-bc-editors/dist/common";
-import { getServerlessWorkflowLanguageData, 
ServerlessWorkflowDiagramEditorChannelApi } from "../api";
+import {
+  getServerlessWorkflowLanguageData,
+  ServerlessWorkflowDiagramEditorChannelApi,
+  ServerlessWorkflowDiagramEditorEnvelopeApi,
+} from "../api";
 import { DiagramExposedInteropApi } from "../api/DiagramExposedInteropApi";
 import { DiagramService } from "../api/DiagramService";
 import {
@@ -41,12 +45,20 @@ export interface CustomWindow {
 declare let window: CustomWindow;
 
 export class ServerlessWorkflowDiagramEditorFactory
-  implements EditorFactory<ServerlessWorkflowDiagramEditor, 
ServerlessWorkflowDiagramEditorChannelApi>
+  implements
+    EditorFactory<
+      ServerlessWorkflowDiagramEditor,
+      ServerlessWorkflowDiagramEditorEnvelopeApi,
+      ServerlessWorkflowDiagramEditorChannelApi
+    >
 {
   constructor(private readonly gwtEditorEnvelopeConfig: { 
shouldLoadResourcesDynamically: boolean }) {}
 
   public createEditor(
-    ctx: 
KogitoEditorEnvelopeContextType<ServerlessWorkflowDiagramEditorChannelApi>,
+    ctx: KogitoEditorEnvelopeContextType<
+      ServerlessWorkflowDiagramEditorEnvelopeApi,
+      ServerlessWorkflowDiagramEditorChannelApi
+    >,
     initArgs: EditorInitArgs
   ): Promise<ServerlessWorkflowDiagramEditor> {
     window.envelope = {
diff --git 
a/packages/serverless-workflow-diagram-editor-envelope/src/vscode/envelope/VsCodeServerlessWorkflowDiagramEditorFactory.ts
 
b/packages/serverless-workflow-diagram-editor-envelope/src/vscode/envelope/VsCodeServerlessWorkflowDiagramEditorFactory.ts
index a2c36adb7b5..20daf6ca787 100644
--- 
a/packages/serverless-workflow-diagram-editor-envelope/src/vscode/envelope/VsCodeServerlessWorkflowDiagramEditorFactory.ts
+++ 
b/packages/serverless-workflow-diagram-editor-envelope/src/vscode/envelope/VsCodeServerlessWorkflowDiagramEditorFactory.ts
@@ -23,6 +23,7 @@ import { DiagramExposedInteropApi } from 
"../../api/DiagramExposedInteropApi";
 import { DiagramService } from "../../api/DiagramService";
 import { ServerlessWorkflowDiagramEditor, 
ServerlessWorkflowDiagramEditorFactory } from "../../envelope";
 import { VsCodeServerlessWorkflowDiagramEditorChannelApi } from 
"../api/VsCodeServerlessWorkflowDiagramEditorChannelApi";
+import { ServerlessWorkflowDiagramEditorEnvelopeApi } from "../../api";
 
 export interface CustomWindow extends Window {
   envelope: {
@@ -35,7 +36,10 @@ declare let window: CustomWindow;
 
 class JavaCodeCompletionService implements JavaCodeCompletionApi {
   constructor(
-    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<VsCodeServerlessWorkflowDiagramEditorChannelApi>
+    private readonly envelopeContext: KogitoEditorEnvelopeContextType<
+      ServerlessWorkflowDiagramEditorEnvelopeApi,
+      VsCodeServerlessWorkflowDiagramEditorChannelApi
+    >
   ) {}
   getAccessors(fqcn: string, query: string) {
     return 
this.envelopeContext.channelApi.requests.kogitoJavaCodeCompletion__getAccessors(fqcn,
 query);
@@ -49,12 +53,20 @@ class JavaCodeCompletionService implements 
JavaCodeCompletionApi {
 }
 
 export class VsCodeServerlessWorkflowDiagramEditorFactory
-  implements EditorFactory<ServerlessWorkflowDiagramEditor, 
VsCodeServerlessWorkflowDiagramEditorChannelApi>
+  implements
+    EditorFactory<
+      ServerlessWorkflowDiagramEditor,
+      ServerlessWorkflowDiagramEditorEnvelopeApi,
+      VsCodeServerlessWorkflowDiagramEditorChannelApi
+    >
 {
   constructor(private readonly gwtEditorEnvelopeConfig: { 
shouldLoadResourcesDynamically: boolean }) {}
 
   public createEditor(
-    ctx: 
KogitoEditorEnvelopeContextType<VsCodeServerlessWorkflowDiagramEditorChannelApi>,
+    ctx: KogitoEditorEnvelopeContextType<
+      ServerlessWorkflowDiagramEditorEnvelopeApi,
+      VsCodeServerlessWorkflowDiagramEditorChannelApi
+    >,
     initArgs: EditorInitArgs
   ): Promise<ServerlessWorkflowDiagramEditor> {
     window.envelope = {
diff --git 
a/packages/serverless-workflow-text-editor/src/editor/ServerlessWorkflowTextEditorFactory.ts
 
b/packages/serverless-workflow-text-editor/src/editor/ServerlessWorkflowTextEditorFactory.ts
index 338268e2f1e..2a88bdb991b 100644
--- 
a/packages/serverless-workflow-text-editor/src/editor/ServerlessWorkflowTextEditorFactory.ts
+++ 
b/packages/serverless-workflow-text-editor/src/editor/ServerlessWorkflowTextEditorFactory.ts
@@ -24,14 +24,17 @@ import {
   EditorTheme,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
-import { ServerlessWorkflowTextEditorChannelApi } from "../api";
+import { ServerlessWorkflowTextEditorChannelApi, 
ServerlessWorkflowTextEditorEnvelopeApi } from "../api";
 import { ServerlessWorkflowTextEditorView } from 
"./ServerlessWorkflowTextEditorView";
 
 export class ServerlessWorkflowTextEditorFactory
-  implements EditorFactory<Editor, ServerlessWorkflowTextEditorChannelApi>
+  implements EditorFactory<Editor, ServerlessWorkflowTextEditorEnvelopeApi, 
ServerlessWorkflowTextEditorChannelApi>
 {
   public async createEditor(
-    ctx: 
KogitoEditorEnvelopeContextType<ServerlessWorkflowTextEditorChannelApi>,
+    ctx: KogitoEditorEnvelopeContextType<
+      ServerlessWorkflowTextEditorEnvelopeApi,
+      ServerlessWorkflowTextEditorChannelApi
+    >,
     initArgs: EditorInitArgs
   ) {
     ctx.supportedThemes = [EditorTheme.LIGHT, EditorTheme.DARK];
diff --git 
a/packages/serverless-workflow-text-editor/src/editor/ServerlessWorkflowTextEditorView.tsx
 
b/packages/serverless-workflow-text-editor/src/editor/ServerlessWorkflowTextEditorView.tsx
index 56ae8a6cfbf..a0666e97571 100644
--- 
a/packages/serverless-workflow-text-editor/src/editor/ServerlessWorkflowTextEditorView.tsx
+++ 
b/packages/serverless-workflow-text-editor/src/editor/ServerlessWorkflowTextEditorView.tsx
@@ -21,7 +21,11 @@ import { EditorInitArgs, EditorTheme, 
KogitoEditorEnvelopeContextType } from "@k
 import { Notification } from "@kie-tools-core/notifications/dist/api";
 import { Position } from "monaco-editor";
 import * as React from "react";
-import { ServerlessWorkflowTextEditorApi, 
ServerlessWorkflowTextEditorChannelApi } from "../api";
+import {
+  ServerlessWorkflowTextEditorApi,
+  ServerlessWorkflowTextEditorChannelApi,
+  ServerlessWorkflowTextEditorEnvelopeApi,
+} from "../api";
 import { ServerlessWorkflowTextEditor } from "./ServerlessWorkflowTextEditor";
 
 export class ServerlessWorkflowTextEditorView implements 
ServerlessWorkflowTextEditorApi {
@@ -31,7 +35,10 @@ export class ServerlessWorkflowTextEditorView implements 
ServerlessWorkflowTextE
   public af_componentTitle: "Serverless Workflow Text Editor";
 
   constructor(
-    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<ServerlessWorkflowTextEditorChannelApi>,
+    private readonly envelopeContext: KogitoEditorEnvelopeContextType<
+      ServerlessWorkflowTextEditorEnvelopeApi,
+      ServerlessWorkflowTextEditorChannelApi
+    >,
     private readonly initArgs: EditorInitArgs
   ) {
     this.editorRef = React.createRef<ServerlessWorkflowTextEditorApi>();
diff --git 
a/packages/serverless-workflow-text-editor/src/editor/textEditor/SwfTextEditor.tsx
 
b/packages/serverless-workflow-text-editor/src/editor/textEditor/SwfTextEditor.tsx
index 71fdbd51743..f01a1bc1f03 100644
--- 
a/packages/serverless-workflow-text-editor/src/editor/textEditor/SwfTextEditor.tsx
+++ 
b/packages/serverless-workflow-text-editor/src/editor/textEditor/SwfTextEditor.tsx
@@ -26,7 +26,7 @@ import { initAugmentationCommands } from 
"./augmentation/commands";
 import { ChannelType, EditorTheme, useKogitoEditorEnvelopeContext } from 
"@kie-tools-core/editor/dist/api";
 import { useSharedValue } from "@kie-tools-core/envelope-bus/dist/hooks";
 import { getFileLanguage } from 
"@kie-tools/serverless-workflow-language-service/dist/api";
-import { ServerlessWorkflowTextEditorChannelApi } from "../../api";
+import { ServerlessWorkflowTextEditorChannelApi, 
ServerlessWorkflowTextEditorEnvelopeApi } from "../../api";
 import { editor } from "monaco-editor";
 
 interface Props {
@@ -43,7 +43,10 @@ const RefForwardingSwfTextEditor: 
React.ForwardRefRenderFunction<SwfTextEditorAp
   forwardedRef
 ) => {
   const container = useRef<HTMLDivElement>(null);
-  const editorEnvelopeCtx = 
useKogitoEditorEnvelopeContext<ServerlessWorkflowTextEditorChannelApi>();
+  const editorEnvelopeCtx = useKogitoEditorEnvelopeContext<
+    ServerlessWorkflowTextEditorEnvelopeApi,
+    ServerlessWorkflowTextEditorChannelApi
+  >();
   const [theme] = 
useSharedValue(editorEnvelopeCtx.channelApi?.shared.kogitoEditor_theme);
   const [services] = 
useSharedValue(editorEnvelopeCtx.channelApi?.shared.kogitoSwfServiceCatalog_services);
   const [serviceRegistriesSettings] = useSharedValue(
diff --git 
a/packages/serverless-workflow-text-editor/src/envelope/ServerlessWorkflowTextEditorEnvelopeApiImpl.ts
 
b/packages/serverless-workflow-text-editor/src/envelope/ServerlessWorkflowTextEditorEnvelopeApiImpl.ts
index f0ef5bc6840..cefb23bc139 100644
--- 
a/packages/serverless-workflow-text-editor/src/envelope/ServerlessWorkflowTextEditorEnvelopeApiImpl.ts
+++ 
b/packages/serverless-workflow-text-editor/src/envelope/ServerlessWorkflowTextEditorEnvelopeApiImpl.ts
@@ -31,7 +31,7 @@ export type ServerlessWorkflowTextEnvelopeApiFactoryArgs = 
EnvelopeApiFactoryArg
   ServerlessWorkflowTextEditorEnvelopeApi,
   ServerlessWorkflowTextEditorChannelApi,
   EditorEnvelopeViewApi<ServerlessWorkflowTextEditorApi>,
-  KogitoEditorEnvelopeContextType<ServerlessWorkflowTextEditorChannelApi>
+  KogitoEditorEnvelopeContextType<ServerlessWorkflowTextEditorEnvelopeApi, 
ServerlessWorkflowTextEditorChannelApi>
 >;
 
 export class ServerlessWorkflowTextEditorEnvelopeApiImpl
@@ -44,7 +44,11 @@ export class ServerlessWorkflowTextEditorEnvelopeApiImpl
 {
   constructor(
     private readonly serverlessWorkflowArgs: 
ServerlessWorkflowTextEnvelopeApiFactoryArgs,
-    editorFactory: EditorFactory<ServerlessWorkflowTextEditorApi, 
ServerlessWorkflowTextEditorChannelApi>
+    editorFactory: EditorFactory<
+      ServerlessWorkflowTextEditorApi,
+      ServerlessWorkflowTextEditorEnvelopeApi,
+      ServerlessWorkflowTextEditorChannelApi
+    >
   ) {
     super(serverlessWorkflowArgs, editorFactory);
   }
diff --git a/packages/text-editor/src/editor/TextEditorFactory.ts 
b/packages/text-editor/src/editor/TextEditorFactory.ts
index 95fc1e56ac2..c3098702c11 100644
--- a/packages/text-editor/src/editor/TextEditorFactory.ts
+++ b/packages/text-editor/src/editor/TextEditorFactory.ts
@@ -21,13 +21,17 @@ import {
   Editor,
   EditorFactory,
   EditorInitArgs,
+  KogitoEditorEnvelopeApi,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
 import { TextEditorChannelApi } from "../api";
 import { TextEditorView } from "./TextEditorView";
 
-export class TextEditorFactory implements EditorFactory<Editor, 
TextEditorChannelApi> {
-  public async createEditor(ctx: 
KogitoEditorEnvelopeContextType<TextEditorChannelApi>, initArgs: 
EditorInitArgs) {
+export class TextEditorFactory implements EditorFactory<Editor, 
KogitoEditorEnvelopeApi, TextEditorChannelApi> {
+  public async createEditor(
+    ctx: KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, 
TextEditorChannelApi>,
+    initArgs: EditorInitArgs
+  ) {
     return new TextEditorView(ctx, initArgs);
   }
 }
diff --git a/packages/text-editor/src/editor/TextEditorView.tsx 
b/packages/text-editor/src/editor/TextEditorView.tsx
index 7318f90a0d8..e39d668a237 100644
--- a/packages/text-editor/src/editor/TextEditorView.tsx
+++ b/packages/text-editor/src/editor/TextEditorView.tsx
@@ -22,6 +22,7 @@ import {
   EditorApi,
   EditorInitArgs,
   EditorTheme,
+  KogitoEditorEnvelopeApi,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
 import { Notification } from "@kie-tools-core/notifications/dist/api";
@@ -36,7 +37,7 @@ export class TextEditorView implements Editor {
   public af_componentTitle: "Text Editor";
 
   constructor(
-    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<TextEditorChannelApi>,
+    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<KogitoEditorEnvelopeApi, TextEditorChannelApi>,
     private readonly initArgs: EditorInitArgs
   ) {
     this.editorRef = React.createRef<EditorApi>();
diff --git a/packages/text-editor/src/editor/monaco/MonacoEditor.tsx 
b/packages/text-editor/src/editor/monaco/MonacoEditor.tsx
index 53f924cb409..ae71b4c64e4 100644
--- a/packages/text-editor/src/editor/monaco/MonacoEditor.tsx
+++ b/packages/text-editor/src/editor/monaco/MonacoEditor.tsx
@@ -17,7 +17,12 @@
  * under the License.
  */
 
-import { ChannelType, EditorTheme, useKogitoEditorEnvelopeContext } from 
"@kie-tools-core/editor/dist/api";
+import {
+  ChannelType,
+  EditorTheme,
+  KogitoEditorEnvelopeApi,
+  useKogitoEditorEnvelopeContext,
+} from "@kie-tools-core/editor/dist/api";
 import { useSharedValue } from "@kie-tools-core/envelope-bus/dist/hooks";
 import { editor } from "monaco-editor";
 import { extname } from "path";
@@ -50,7 +55,7 @@ const RefForwardingMonacoEditor: 
React.ForwardRefRenderFunction<MonacoEditorApi
   forwardedRef
 ) => {
   const container = useRef<HTMLDivElement>(null);
-  const editorEnvelopeCtx = 
useKogitoEditorEnvelopeContext<TextEditorChannelApi>();
+  const editorEnvelopeCtx = 
useKogitoEditorEnvelopeContext<KogitoEditorEnvelopeApi, TextEditorChannelApi>();
   const [theme] = 
useSharedValue(editorEnvelopeCtx.channelApi?.shared.kogitoEditor_theme);
 
   const controller: MonacoEditorApi = useMemo<MonacoEditorApi>(() => {
diff --git a/packages/yard-editor/src/editor/YardEditorFactory.ts 
b/packages/yard-editor/src/editor/YardEditorFactory.ts
index d00cef8c512..c86d48b364d 100644
--- a/packages/yard-editor/src/editor/YardEditorFactory.ts
+++ b/packages/yard-editor/src/editor/YardEditorFactory.ts
@@ -24,10 +24,13 @@ import {
   EditorInitArgs,
   KogitoEditorEnvelopeContextType,
 } from "@kie-tools-core/editor/dist/api";
-import { YardEditorChannelApi } from "../api";
+import { YardEditorChannelApi, YardEditorEnvelopeApi } from "../api";
 
-export class YardEditorFactory implements EditorFactory<Editor, 
YardEditorChannelApi> {
-  public async createEditor(ctx: 
KogitoEditorEnvelopeContextType<YardEditorChannelApi>, initArgs: 
EditorInitArgs) {
+export class YardEditorFactory implements EditorFactory<Editor, 
YardEditorEnvelopeApi, YardEditorChannelApi> {
+  public async createEditor(
+    ctx: KogitoEditorEnvelopeContextType<YardEditorEnvelopeApi, 
YardEditorChannelApi>,
+    initArgs: EditorInitArgs
+  ) {
     return new YardEditorView(ctx, initArgs);
   }
 }
diff --git a/packages/yard-editor/src/editor/YardEditorView.tsx 
b/packages/yard-editor/src/editor/YardEditorView.tsx
index e583bed9481..40cdd42ba80 100644
--- a/packages/yard-editor/src/editor/YardEditorView.tsx
+++ b/packages/yard-editor/src/editor/YardEditorView.tsx
@@ -20,7 +20,7 @@ import { Editor, EditorInitArgs, EditorTheme, 
KogitoEditorEnvelopeContextType }
 import { Notification } from "@kie-tools-core/notifications/dist/api";
 import * as React from "react";
 import { YardEditor } from "./YardEditor";
-import { YardEditorApi, YardEditorChannelApi } from "../api";
+import { YardEditorApi, YardEditorChannelApi, YardEditorEnvelopeApi } from 
"../api";
 import { Position } from "monaco-editor";
 import { validationPromise } from "@kie-tools/yard-validator/dist/";
 
@@ -33,7 +33,7 @@ export class YardEditorView implements Editor {
   private path: string;
 
   constructor(
-    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<YardEditorChannelApi>,
+    private readonly envelopeContext: 
KogitoEditorEnvelopeContextType<YardEditorEnvelopeApi, YardEditorChannelApi>,
     initArgs: EditorInitArgs
   ) {
     this.editorRef = React.createRef<YardEditorApi>();
diff --git a/packages/yard-editor/src/impl/YardEditorEnvelopeApiImpl.ts 
b/packages/yard-editor/src/impl/YardEditorEnvelopeApiImpl.ts
index 26749ac32bf..3888db228c1 100644
--- a/packages/yard-editor/src/impl/YardEditorEnvelopeApiImpl.ts
+++ b/packages/yard-editor/src/impl/YardEditorEnvelopeApiImpl.ts
@@ -27,7 +27,7 @@ export type YardEnvelopeApiFactoryArgs = 
EnvelopeApiFactoryArgs<
   YardEditorEnvelopeApi,
   YardEditorChannelApi,
   EditorEnvelopeViewApi<YardEditorApi>,
-  KogitoEditorEnvelopeContextType<YardEditorChannelApi>
+  KogitoEditorEnvelopeContextType<YardEditorEnvelopeApi, YardEditorChannelApi>
 >;
 
 export class YardEditorEnvelopeApiImpl
@@ -36,7 +36,7 @@ export class YardEditorEnvelopeApiImpl
 {
   constructor(
     private readonly factoryArgs: YardEnvelopeApiFactoryArgs,
-    editorFactory: EditorFactory<YardEditorApi, YardEditorChannelApi>
+    editorFactory: EditorFactory<YardEditorApi, YardEditorEnvelopeApi, 
YardEditorChannelApi>
   ) {
     super(factoryArgs, editorFactory);
   }
diff --git a/packages/yard-editor/src/textEditor/YardTextEditor.tsx 
b/packages/yard-editor/src/textEditor/YardTextEditor.tsx
index c34601f8e31..71bdcc7a55c 100644
--- a/packages/yard-editor/src/textEditor/YardTextEditor.tsx
+++ b/packages/yard-editor/src/textEditor/YardTextEditor.tsx
@@ -22,7 +22,7 @@ import { useEffect, useImperativeHandle, useMemo, useRef } 
from "react";
 import { YardTextEditorController, YardTextEditorApi } from 
"./YardTextEditorController";
 import { ChannelType, EditorTheme, useKogitoEditorEnvelopeContext } from 
"@kie-tools-core/editor/dist/api";
 import { useSharedValue } from "@kie-tools-core/envelope-bus/dist/hooks";
-import { YardEditorChannelApi } from "../api";
+import { YardEditorChannelApi, YardEditorEnvelopeApi } from "../api";
 import { editor } from "monaco-editor";
 import { YardFile } from "../types";
 import { initCodeLenses } from "./augmentation/codeLenses";
@@ -42,7 +42,7 @@ const RefForwardingYardTextEditor: 
React.ForwardRefRenderFunction<YardTextEditor
   forwardedRef
 ) => {
   const container = useRef<HTMLDivElement>(null);
-  const editorEnvelopeCtx = 
useKogitoEditorEnvelopeContext<YardEditorChannelApi>();
+  const editorEnvelopeCtx = 
useKogitoEditorEnvelopeContext<YardEditorEnvelopeApi, YardEditorChannelApi>();
   const [theme] = 
useSharedValue(editorEnvelopeCtx.channelApi?.shared.kogitoEditor_theme);
 
   const controller: YardTextEditorApi = useMemo<YardTextEditorApi>(() => {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to