推进 INI 面板 workflow overview embedding mount DOM contract

This commit is contained in:
2026-06-15 21:23:53 +08:00
parent ac77de3c13
commit 861c854309
12 changed files with 200 additions and 5 deletions

View File

@@ -168,6 +168,7 @@ export function createIniPanelLaunchApiManifest(entries = getVisibleIniPanelEntr
"mountWorkflowOverviewEmbeddingState",
"getWorkflowOverviewEmbeddingMountDisplayViewModel",
"getWorkflowOverviewEmbeddingMountRenderState",
"getWorkflowOverviewEmbeddingMountDomContract",
"isSupportedShellSessionHandoffPackage",
"getLauncherLinks",
"getControlPageApiMethods",
@@ -2226,6 +2227,32 @@ export function createIniPanelShellWorkflowOverviewEmbeddingMountRenderState(
};
}
export function createIniPanelShellWorkflowOverviewEmbeddingMountDomContract({
rowDatasetPrefix = "workflowOverviewEmbeddingMount",
selectors = {},
} = {}) {
const mountSelector = selectors.mount ?? "[data-workflow-overview-embedding-mount]";
const statusSelector = selectors.status ?? "[data-workflow-overview-embedding-mount-status]";
const rowsSelector = selectors.rows ?? "[data-workflow-overview-embedding-mount-rows]";
return {
apiName: "ini-panel-shell-workflow-overview-embedding-mount-dom-contract",
contractVersion: 1,
requiredNodeIds: ["mount", "status", "rows"],
selectors: {
mount: mountSelector,
status: statusSelector,
rows: rowsSelector,
},
mountDatasetKeys: ["handoffPhase", "handoffReady", "handoffScope"],
rowDatasetPrefix,
rowDatasetKeys: {
term: [`${rowDatasetPrefix}Row`, `${rowDatasetPrefix}Status`],
detail: [`${rowDatasetPrefix}Value`, `${rowDatasetPrefix}Status`],
},
renderResultFields: ["rendered", "statusLine", "rowCount", "rowIds", "dataset"],
};
}
export function createIniPanelShellViewModel(entries = getVisibleIniPanelEntries()) {
const shellIntegrationManifest = createIniPanelShellIntegrationManifest(entries);
const shellIntegrationReadiness = createIniPanelShellIntegrationReadiness(shellIntegrationManifest);
@@ -2395,6 +2422,8 @@ export function createIniPanelShellViewModel(entries = getVisibleIniPanelEntries
createIniPanelShellWorkflowOverviewEmbeddingMountDisplayViewModel,
createWorkflowOverviewEmbeddingMountRenderState:
createIniPanelShellWorkflowOverviewEmbeddingMountRenderState,
createWorkflowOverviewEmbeddingMountDomContract:
createIniPanelShellWorkflowOverviewEmbeddingMountDomContract,
isSupportedShellSessionHandoffPackage: isSupportedIniPanelShellSessionHandoffPackage,
controlPage: {
browserApiSchema: createControlPageBrowserApiSchema(),