推进 INI 面板 workflow overview embedding report

This commit is contained in:
2026-06-15 17:59:16 +08:00
parent 766f630dfb
commit 7095690869
12 changed files with 323 additions and 8 deletions

View File

@@ -103,6 +103,7 @@
!launchApi?.getWorkflowOverviewContract ||
!launchApi?.getWorkflowOverviewReadiness ||
!launchApi?.mountWorkflowOverviewEmbedding ||
!launchApi?.getWorkflowOverviewEmbeddingReport ||
!launchApi?.isSupportedShellSessionHandoffPackage ||
!launchApi?.getLauncherLinks ||
!launchApi?.getControlPageApiMethods
@@ -627,7 +628,8 @@
!workflowOverviewApi?.getWorkflowOverviewRenderState ||
!workflowOverviewApi?.getWorkflowOverviewContract ||
!workflowOverviewApi?.getWorkflowOverviewReadinessFromApi ||
!workflowOverviewApi?.mountWorkflowOverviewEmbedding
!workflowOverviewApi?.mountWorkflowOverviewEmbedding ||
!workflowOverviewApi?.getWorkflowOverviewEmbeddingReport
) {
throw new Error("workflow overview API namespace did not expose shell helpers");
}
@@ -637,6 +639,9 @@
const workflowOverviewEmbedding = launchApi.mountWorkflowOverviewEmbedding({
overviewApi: workflowOverviewApi,
});
const workflowOverviewEmbeddingReport = launchApi.getWorkflowOverviewEmbeddingReport(
workflowOverviewEmbedding,
);
assertEqual(workflowOverviewApi.getWorkflowOverviewContract().pageHref, "./workflow-overview.html", "workflow overview page contract");
assertEqual(workflowOverviewReadiness.ready, true, "workflow overview readiness");
assertEqual(workflowOverviewReadiness.missing.join(","), "", "workflow overview readiness missing");
@@ -647,6 +652,16 @@
assertEqual(workflowOverviewEmbedding.renderState.dataset.handoffScope, "workflow", "workflow overview embedding scope");
assertEqual(workflowOverviewEmbedding.mountResult.renderResult.rowCount, 5, "workflow overview embedding rows");
assertEqual(workflowOverviewEmbedding.error, null, "workflow overview embedding error");
assertEqual(workflowOverviewEmbeddingReport.apiName, "ini-panel-shell-workflow-overview-embedding-report", "workflow overview embedding report API name");
assertEqual(workflowOverviewEmbeddingReport.ready, false, "workflow overview embedding report readiness");
assertEqual(workflowOverviewEmbeddingReport.missingMethods.join(","), "", "workflow overview embedding report missing methods");
assertEqual(workflowOverviewEmbeddingReport.renderRowCount, 5, "workflow overview embedding report row count");
assertEqual(workflowOverviewEmbeddingReport.rows.length, 6, "workflow overview embedding report rows");
assertEqual(
workflowOverviewApi.getWorkflowOverviewEmbeddingReport(workflowOverviewEmbedding).renderRowCount,
workflowOverviewEmbeddingReport.renderRowCount,
"workflow overview self embedding report",
);
status.textContent = "browser_ini_launch_smoke=ok";
console.log("browser_ini_launch_smoke=ok");
} catch (error) {

View File

@@ -105,6 +105,7 @@ TOOL_TABLE = browser-shell-tool.tbl
!launchApi?.getWorkflowOverviewContract ||
!launchApi?.getWorkflowOverviewReadiness ||
!launchApi?.mountWorkflowOverviewEmbedding ||
!launchApi?.getWorkflowOverviewEmbeddingReport ||
!launchApi?.isSupportedShellSessionHandoffPackage
) {
throw new Error("launch API namespace did not expose shell integration helpers");
@@ -288,12 +289,19 @@ TOOL_TABLE = browser-shell-tool.tbl
const workflowOverviewEmbedding = launchApi.mountWorkflowOverviewEmbedding({
overviewApi: workflowOverviewApi,
});
const workflowOverviewEmbeddingReport = launchApi.getWorkflowOverviewEmbeddingReport(
workflowOverviewEmbedding,
);
assertEqual(workflowOverviewReadiness.ready, true, "shell workflow overview iframe readiness");
assertEqual(workflowOverviewReadiness.missing.join(","), "", "shell workflow overview iframe missing methods");
assertEqual(workflowOverviewEmbedding.apiName, "ini-panel-shell-workflow-overview-embedding", "shell workflow overview embedding API");
assertEqual(workflowOverviewEmbedding.renderState.dataset.handoffScope, "workflow", "shell workflow overview embedding scope");
assertEqual(workflowOverviewEmbedding.mountResult.renderResult.rowCount, 5, "shell workflow overview embedding rows");
assertEqual(workflowOverviewEmbedding.error, null, "shell workflow overview embedding error");
assertEqual(workflowOverviewEmbeddingReport.ready, false, "shell workflow overview embedding report readiness");
assertEqual(workflowOverviewEmbeddingReport.rows.length, 6, "shell workflow overview embedding report rows");
assertEqual(workflowOverviewEmbeddingReport.renderRowCount, 5, "shell workflow overview embedding report row count");
assertEqual(workflowOverviewEmbeddingReport.error, null, "shell workflow overview embedding report error");
const controlDoc = await loadFrame(`../../runtime/ui/ini-panel/${controlTarget.href.slice(2)}`);
const controlPageApi = controlDoc.defaultView.linuxCncIniPanelControlPageApi;

View File

@@ -35,7 +35,8 @@
!workflowApi?.getWorkflowOverviewDomReadiness ||
!workflowApi?.renderWorkflowOverview ||
!workflowApi?.mountWorkflowOverview ||
!workflowApi?.createWorkflowOverviewRenderState
!workflowApi?.createWorkflowOverviewRenderState ||
!workflowApi?.getWorkflowOverviewEmbeddingReport
) {
throw new Error("workflow overview API namespace did not expose overview helpers");
}
@@ -47,6 +48,18 @@
const domReadiness = workflowApi.getWorkflowOverviewDomReadiness();
const renderResult = workflowApi.renderWorkflowOverview();
const mountResult = workflowApi.mountWorkflowOverview();
const embeddingReport = workflowApi.getWorkflowOverviewEmbeddingReport({
phase: mountResult.phase,
ready: mountResult.ready,
pageHref: "./workflow-overview.html",
readiness: {
ready: true,
missing: [],
},
renderState,
mountResult,
error: null,
});
assertEqual(summary.summaryVersion, 1, "workflow overview summary version");
assertEqual(displayViewModel.title, "Shell handoff workflow", "workflow overview display title");
@@ -58,6 +71,10 @@
assertEqual(renderResult.rowCount, 5, "workflow overview render row count");
assertEqual(mountResult.ready, false, "workflow overview mount result readiness");
assertEqual(mountResult.renderResult.rendered, true, "workflow overview mount result rendered");
assertEqual(embeddingReport.apiName, "ini-panel-shell-workflow-overview-embedding-report", "workflow overview embedding report API name");
assertEqual(embeddingReport.ready, false, "workflow overview embedding report readiness");
assertEqual(embeddingReport.renderRowCount, 5, "workflow overview embedding report row count");
assertEqual(embeddingReport.rows.length, 6, "workflow overview embedding report rows");
assertEqual(
workflowDoc.querySelector("[data-handoff-workflow]").dataset.handoffScope,
"workflow",