新增 INI 面板 shell API surface inventory
This commit is contained in:
@@ -9,7 +9,7 @@ turn-by-turn continuation notes and next-batch execution records.
|
|||||||
## Current Status
|
## Current Status
|
||||||
|
|
||||||
- Active continuation file: `text14.txt`
|
- Active continuation file: `text14.txt`
|
||||||
- Latest completed batch: INI panel session readiness workflow report SDK surface
|
- Latest completed batch: INI panel shell API surface inventory
|
||||||
- Latest relevant commit: use `git log -1 --oneline` after each committed batch
|
- Latest relevant commit: use `git log -1 --oneline` after each committed batch
|
||||||
- Working tree at tracker creation: clean
|
- Working tree at tracker creation: clean
|
||||||
- Required policy: LinuxCNC remains the only CNC semantic source
|
- Required policy: LinuxCNC remains the only CNC semantic source
|
||||||
@@ -43,7 +43,7 @@ The project is complete for the current scope when all of the following are true
|
|||||||
| Native nc_files baseline | Stable | Last recorded Layer 1: `total 107`, `pass 101`, `expected_fail 6`, `unexpected_fail 0`. |
|
| Native nc_files baseline | Stable | Last recorded Layer 1: `total 107`, `pass 101`, `expected_fail 6`, `unexpected_fail 0`. |
|
||||||
| Native sim configs baseline | Stable | Last recorded Layer 2: `total 159`, `pass 151`, `expected_fail 8`, `unexpected_fail 0`. |
|
| Native sim configs baseline | Stable | Last recorded Layer 2: `total 159`, `pass 151`, `expected_fail 8`, `unexpected_fail 0`. |
|
||||||
| OPFS/session persistence | Stable for current scope | Browser smoke passes, SDK re-exports OPFS/session helpers including `readMachineSessionReadiness()`, and `docs/opfs-session-persistence.md` defines the project-level release gate. |
|
| OPFS/session persistence | Stable for current scope | Browser smoke passes, SDK re-exports OPFS/session helpers including `readMachineSessionReadiness()`, and `docs/opfs-session-persistence.md` defines the project-level release gate. |
|
||||||
| SDK/API surface | Stable for current scope | SDK re-exports core, OPFS/session readiness/load helpers, sim-config staging, INI panel shell/workflow overview helpers, and the session readiness workflow report with a Node surface smoke. |
|
| SDK/API surface | Stable for current scope | SDK re-exports core, OPFS/session readiness/load helpers, sim-config staging, INI panel shell/workflow overview helpers, the session readiness workflow report, and the shell API surface inventory with a Node surface smoke. |
|
||||||
| Browser/UI workflow | Stable for current scope | Workflow overview embedding mount DOM closure is complete, and INI panel session workflows plus read-only control/shell handoff expose, render, and report OPFS/session readiness before loading or reading WASM session state. |
|
| Browser/UI workflow | Stable for current scope | Workflow overview embedding mount DOM closure is complete, and INI panel session workflows plus read-only control/shell handoff expose, render, and report OPFS/session readiness before loading or reading WASM session state. |
|
||||||
| Workflow overview embedding | Stable for current scope | Report/display/render, DOM contract/readiness/renderer, mount result/display/render, mount DOM contract/readiness/renderer/wrapper exist. |
|
| Workflow overview embedding | Stable for current scope | Report/display/render, DOM contract/readiness/renderer, mount result/display/render, mount DOM contract/readiness/renderer/wrapper exist. |
|
||||||
| Host/runtime boundary proof | Stable blocked state | Host smoke passes; runtime families remain blocked and `docs/host-runtime-boundary-handoff.md` records host readiness, promotion blockers, dispatch, and evidence gates. |
|
| Host/runtime boundary proof | Stable blocked state | Host smoke passes; runtime families remain blocked and `docs/host-runtime-boundary-handoff.md` records host readiness, promotion blockers, dispatch, and evidence gates. |
|
||||||
|
|||||||
78
text14.txt
78
text14.txt
@@ -2057,3 +2057,81 @@ host_wasm_opfs_browser_smokes=ok
|
|||||||
继续以实质能力推进为主。下一批可为 session readiness workflow report 增加更高层的 release/API
|
继续以实质能力推进为主。下一批可为 session readiness workflow report 增加更高层的 release/API
|
||||||
inventory row 或 browser-visible summary row,方便验收页面和外部 shell 快速列出当前稳定 API;仍保持只读,
|
inventory row 或 browser-visible summary row,方便验收页面和外部 shell 快速列出当前稳定 API;仍保持只读,
|
||||||
不新增控制按钮,不解析 G-code,不扩大 LinuxCNC 语义边界。
|
不新增控制按钮,不解析 G-code,不扩大 LinuxCNC 语义边界。
|
||||||
|
|
||||||
|
二十六、2026-06-16 继续执行记录:INI panel shell API surface inventory
|
||||||
|
|
||||||
|
本轮继续以功能实质性推进为主,为 INI panel shell 增加更高层的 read-only API surface inventory。
|
||||||
|
外部 shell、workflow overview iframe 和 SDK 调用者现在可以一次读取 launch API、control-page API、
|
||||||
|
workflow overview API、persistence capabilities 与 session readiness report 的稳定计数和 rows。
|
||||||
|
|
||||||
|
完成内容:
|
||||||
|
|
||||||
|
- `wasm-port/runtime/ui/ini-panel/ui-shell.js` 新增 `createIniPanelShellApiSurfaceInventory()`;
|
||||||
|
- inventory 返回:
|
||||||
|
- `apiName`;
|
||||||
|
- `inventoryVersion`;
|
||||||
|
- `phase`;
|
||||||
|
- `ready`;
|
||||||
|
- `counts`;
|
||||||
|
- `apiNames`;
|
||||||
|
- `entries`;
|
||||||
|
- `rows`;
|
||||||
|
- `createIniPanelLaunchApiManifest().methods` 新增 `getShellApiSurfaceInventory`;
|
||||||
|
- `createIniPanelShellWorkflowOverviewContract().methodNames` 新增
|
||||||
|
`getWorkflowOverviewApiSurfaceInventory`;
|
||||||
|
- `createIniPanelShellViewModel()` 暴露:
|
||||||
|
- `shellApiSurfaceInventory`;
|
||||||
|
- `createShellApiSurfaceInventory`;
|
||||||
|
- `runtime/ui/ini-panel/launch.html` 暴露
|
||||||
|
`linuxCncIniPanelLaunchApi.getShellApiSurfaceInventory()`;
|
||||||
|
- `runtime/ui/ini-panel/workflow-overview.html` 暴露
|
||||||
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewApiSurfaceInventory()`;
|
||||||
|
- `wasm-port/runtime/sdk/src/index.js` re-export `createIniPanelShellApiSurfaceInventory()`;
|
||||||
|
- `wasm-port/runtime/sdk/README.md`、`docs/panel-entry.md`、`docs/project-release-handoff.md`
|
||||||
|
记录该 inventory 能力;
|
||||||
|
- Node 测试覆盖 ui-shell、launch manifest、shell integration manifest、SDK surface、release handoff docs;
|
||||||
|
- Browser smoke 覆盖 launch API、workflow overview iframe API、shell integration workflow API;
|
||||||
|
- 未新增控制按钮;
|
||||||
|
- 未执行 action-plan;
|
||||||
|
- 未解析 G-code;
|
||||||
|
- 未解释 canonical events;
|
||||||
|
- 未新增 JS CNC 语义;
|
||||||
|
- 未运行 opt-in runtime probes;
|
||||||
|
- 未 promotion blocked runtime family;
|
||||||
|
- 未改变 LinuxCNC interpreter、tool、parameter、planner、kinematics、remap 或 LinuxCNC-owned
|
||||||
|
runtime semantics。
|
||||||
|
|
||||||
|
验证已通过:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git diff --check
|
||||||
|
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
|
||||||
|
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
|
||||||
|
wasm-port/tools/verify_vendor_sync.sh
|
||||||
|
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||||||
|
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||||||
|
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||||||
|
wasm-port/tests/host/verify_host_smokes.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
关键输出:
|
||||||
|
|
||||||
|
```text
|
||||||
|
ui_node_smokes=ok
|
||||||
|
browser_ini_launch_smoke=ok
|
||||||
|
browser_ini_workflow_overview_smoke=ok
|
||||||
|
browser_ini_shell_integration_workflow_smoke=ok
|
||||||
|
sdk_surface_node_smoke=ok
|
||||||
|
project_release_handoff_docs_node_smoke=ok
|
||||||
|
vendor sync up to date
|
||||||
|
standalone CNC semantics guard complete
|
||||||
|
interp_wasm_node_smoke=ok
|
||||||
|
sim_configs_wasm_node_inventory_unexpected_fail=0
|
||||||
|
host_wasm_opfs_browser_smokes=ok
|
||||||
|
```
|
||||||
|
|
||||||
|
下一步工作计划:
|
||||||
|
|
||||||
|
继续以实质能力推进为主。下一批可把 shell API surface inventory 渲染为 browser-visible summary
|
||||||
|
row 或挂载到 workflow overview embedding report,方便验收页面直接显示 API surface 覆盖;仍保持只读,
|
||||||
|
不新增控制按钮,不解析 G-code,不扩大 LinuxCNC 语义边界。
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ import {
|
|||||||
mountIniPanelShellSessionHandoffFromControlPage,
|
mountIniPanelShellSessionHandoffFromControlPage,
|
||||||
createIniPanelShellSessionHandoffWorkflowSummary,
|
createIniPanelShellSessionHandoffWorkflowSummary,
|
||||||
createIniPanelShellSessionReadinessWorkflowReport,
|
createIniPanelShellSessionReadinessWorkflowReport,
|
||||||
|
createIniPanelShellApiSurfaceInventory,
|
||||||
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
|
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
|
||||||
createIniPanelShellSessionHandoffWorkflowRenderState,
|
createIniPanelShellSessionHandoffWorkflowRenderState,
|
||||||
createIniPanelShellSessionHandoffWorkflowDomContract,
|
createIniPanelShellSessionHandoffWorkflowDomContract,
|
||||||
@@ -302,6 +303,12 @@ outer shell needs a machine-readable report for just the session readiness
|
|||||||
phase, missing reasons, and stable rows. The workflow overview page exposes
|
phase, missing reasons, and stable rows. The workflow overview page exposes
|
||||||
the same report through
|
the same report through
|
||||||
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewSessionReadinessReport()`.
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewSessionReadinessReport()`.
|
||||||
|
Use `createIniPanelShellApiSurfaceInventory()` or
|
||||||
|
`linuxCncIniPanelLaunchApi.getShellApiSurfaceInventory()` when an outer shell
|
||||||
|
needs a machine-readable inventory of launch, control-page, workflow overview,
|
||||||
|
persistence, and session readiness report API counts. The workflow overview
|
||||||
|
page exposes the same inventory through
|
||||||
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewApiSurfaceInventory()`.
|
||||||
Use
|
Use
|
||||||
`createIniPanelShellSessionHandoffWorkflowDisplayViewModel()` or
|
`createIniPanelShellSessionHandoffWorkflowDisplayViewModel()` or
|
||||||
`linuxCncIniPanelLaunchApi.getShellSessionHandoffWorkflowDisplayViewModel()`
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffWorkflowDisplayViewModel()`
|
||||||
|
|||||||
@@ -30,8 +30,9 @@ continuation records are in `../text14.txt`.
|
|||||||
`docs/panel-entry.md`, including workflow overview embedding mount DOM
|
`docs/panel-entry.md`, including workflow overview embedding mount DOM
|
||||||
contract/readiness/renderer/wrapper helpers.
|
contract/readiness/renderer/wrapper helpers.
|
||||||
- SDK callers should import stable helpers from `runtime/sdk/src/index.js`,
|
- SDK callers should import stable helpers from `runtime/sdk/src/index.js`,
|
||||||
including `createIniPanelShellSessionReadinessWorkflowReport()` when they
|
including `createIniPanelShellApiSurfaceInventory()` for API discovery and
|
||||||
need machine-readable session readiness phase and missing reasons.
|
`createIniPanelShellSessionReadinessWorkflowReport()` when they need
|
||||||
|
machine-readable session readiness phase and missing reasons.
|
||||||
- OPFS/session persistence is host-side storage glue. Parameter and tool-table
|
- OPFS/session persistence is host-side storage glue. Parameter and tool-table
|
||||||
behavior still comes from the LinuxCNC-backed interpreter SDK calls.
|
behavior still comes from the LinuxCNC-backed interpreter SDK calls.
|
||||||
- Sim-config inventory promotion remains evidence-driven and must keep
|
- Sim-config inventory promotion remains evidence-driven and must keep
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ Use `src/index.js` for stable imports:
|
|||||||
import {
|
import {
|
||||||
analyzeIniRuntimeBoundaries,
|
analyzeIniRuntimeBoundaries,
|
||||||
createIniPanelLaunchApiManifest,
|
createIniPanelLaunchApiManifest,
|
||||||
|
createIniPanelShellApiSurfaceInventory,
|
||||||
createIniPanelShellSessionReadinessWorkflowReport,
|
createIniPanelShellSessionReadinessWorkflowReport,
|
||||||
createIniPanelShellViewModel,
|
createIniPanelShellViewModel,
|
||||||
createIniPanelShellWorkflowOverviewEmbeddingMountDomContract,
|
createIniPanelShellWorkflowOverviewEmbeddingMountDomContract,
|
||||||
@@ -192,6 +193,9 @@ for external browser shells:
|
|||||||
`isSupportedIniPanelLaunchApiManifest()` for launch API negotiation.
|
`isSupportedIniPanelLaunchApiManifest()` for launch API negotiation.
|
||||||
- `createIniPanelShellViewModel()` for a complete read-only shell integration
|
- `createIniPanelShellViewModel()` for a complete read-only shell integration
|
||||||
bundle.
|
bundle.
|
||||||
|
- `createIniPanelShellApiSurfaceInventory()` for a machine-readable inventory
|
||||||
|
of launch, control-page, workflow overview, persistence, and session
|
||||||
|
readiness report API counts.
|
||||||
- `createIniPanelShellSessionReadinessWorkflowReport()` for a machine-readable
|
- `createIniPanelShellSessionReadinessWorkflowReport()` for a machine-readable
|
||||||
session readiness workflow report with phase, missing reasons, status line,
|
session readiness workflow report with phase, missing reasons, status line,
|
||||||
and stable rows.
|
and stable rows.
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ export {
|
|||||||
createIniPanelShellSessionHandoffPackageRenderState,
|
createIniPanelShellSessionHandoffPackageRenderState,
|
||||||
createIniPanelShellSessionHandoffPackageSchema,
|
createIniPanelShellSessionHandoffPackageSchema,
|
||||||
createIniPanelShellSessionReadinessWorkflowReport,
|
createIniPanelShellSessionReadinessWorkflowReport,
|
||||||
|
createIniPanelShellApiSurfaceInventory,
|
||||||
createIniPanelShellSessionHandoffSummary,
|
createIniPanelShellSessionHandoffSummary,
|
||||||
createIniPanelShellSessionHandoffSummarySchema,
|
createIniPanelShellSessionHandoffSummarySchema,
|
||||||
createIniPanelShellViewModel,
|
createIniPanelShellViewModel,
|
||||||
|
|||||||
@@ -251,6 +251,14 @@
|
|||||||
workflowSummary: shellViewModel.shellSessionHandoffWorkflowSummary,
|
workflowSummary: shellViewModel.shellSessionHandoffWorkflowSummary,
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
|
getShellApiSurfaceInventory: (options) => (
|
||||||
|
shellViewModel.createShellApiSurfaceInventory(options ?? {
|
||||||
|
launchApiManifest: shellViewModel.launchApiManifest,
|
||||||
|
controlPageApiManifest: shellViewModel.controlPage.browserApiManifest,
|
||||||
|
workflowOverviewContract: shellViewModel.shellWorkflowOverviewContract,
|
||||||
|
sessionReadinessWorkflowReport: shellViewModel.shellSessionReadinessWorkflowReport,
|
||||||
|
})
|
||||||
|
),
|
||||||
getShellSessionHandoffWorkflowDisplayViewModel: (options) => (
|
getShellSessionHandoffWorkflowDisplayViewModel: (options) => (
|
||||||
createIniPanelShellSessionHandoffWorkflowDisplayViewModel(
|
createIniPanelShellSessionHandoffWorkflowDisplayViewModel(
|
||||||
options ?? shellViewModel.shellSessionHandoffWorkflowSummary,
|
options ?? shellViewModel.shellSessionHandoffWorkflowSummary,
|
||||||
|
|||||||
@@ -161,6 +161,7 @@ export function createIniPanelLaunchApiManifest(entries = getVisibleIniPanelEntr
|
|||||||
"readShellSessionHandoffStatusFromControlPage",
|
"readShellSessionHandoffStatusFromControlPage",
|
||||||
"getShellSessionHandoffWorkflowSummary",
|
"getShellSessionHandoffWorkflowSummary",
|
||||||
"getShellSessionReadinessWorkflowReport",
|
"getShellSessionReadinessWorkflowReport",
|
||||||
|
"getShellApiSurfaceInventory",
|
||||||
"getShellSessionHandoffWorkflowDisplayViewModel",
|
"getShellSessionHandoffWorkflowDisplayViewModel",
|
||||||
"getShellSessionHandoffWorkflowRenderState",
|
"getShellSessionHandoffWorkflowRenderState",
|
||||||
"getShellSessionHandoffWorkflowDomContract",
|
"getShellSessionHandoffWorkflowDomContract",
|
||||||
@@ -1603,6 +1604,110 @@ export function createIniPanelShellSessionReadinessWorkflowReport({
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function createIniPanelShellApiSurfaceInventory({
|
||||||
|
launchApiManifest = createIniPanelLaunchApiManifest(),
|
||||||
|
controlPageApiManifest = createControlPageBrowserApiManifest(),
|
||||||
|
workflowOverviewContract = createIniPanelShellWorkflowOverviewContract(),
|
||||||
|
sessionReadinessWorkflowReport = createIniPanelShellSessionReadinessWorkflowReport(),
|
||||||
|
} = {}) {
|
||||||
|
const launchMethods = Array.isArray(launchApiManifest?.methods) ? launchApiManifest.methods : [];
|
||||||
|
const controlPageMethods = Array.isArray(controlPageApiManifest?.methods) ? controlPageApiManifest.methods : [];
|
||||||
|
const workflowOverviewMethods = Array.isArray(workflowOverviewContract?.methodNames)
|
||||||
|
? workflowOverviewContract.methodNames
|
||||||
|
: [];
|
||||||
|
const persistenceCapabilities = Array.isArray(launchApiManifest?.persistenceCapabilities)
|
||||||
|
? launchApiManifest.persistenceCapabilities
|
||||||
|
: [];
|
||||||
|
const sessionReadinessRows = Array.isArray(sessionReadinessWorkflowReport?.rows)
|
||||||
|
? sessionReadinessWorkflowReport.rows
|
||||||
|
: [];
|
||||||
|
const ready = Boolean(
|
||||||
|
launchApiManifest?.apiName
|
||||||
|
&& controlPageApiManifest?.apiName
|
||||||
|
&& workflowOverviewContract?.apiName
|
||||||
|
&& sessionReadinessWorkflowReport?.apiName,
|
||||||
|
);
|
||||||
|
|
||||||
|
return {
|
||||||
|
apiName: "ini-panel-shell-api-surface-inventory",
|
||||||
|
inventoryVersion: 1,
|
||||||
|
phase: ready ? "ready" : "blocked",
|
||||||
|
ready,
|
||||||
|
counts: {
|
||||||
|
launchMethods: launchMethods.length,
|
||||||
|
controlPageMethods: controlPageMethods.length,
|
||||||
|
workflowOverviewMethods: workflowOverviewMethods.length,
|
||||||
|
persistenceCapabilities: persistenceCapabilities.length,
|
||||||
|
sessionReadinessRows: sessionReadinessRows.length,
|
||||||
|
},
|
||||||
|
apiNames: {
|
||||||
|
launch: launchApiManifest?.apiName ?? null,
|
||||||
|
controlPage: controlPageApiManifest?.apiName ?? null,
|
||||||
|
workflowOverview: workflowOverviewContract?.apiName ?? null,
|
||||||
|
sessionReadinessReport: sessionReadinessWorkflowReport?.apiName ?? null,
|
||||||
|
},
|
||||||
|
entries: [
|
||||||
|
{
|
||||||
|
id: "launch-api",
|
||||||
|
label: "Launch API",
|
||||||
|
apiName: launchApiManifest?.apiName ?? null,
|
||||||
|
count: launchMethods.length,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "control-page-api",
|
||||||
|
label: "Control-page API",
|
||||||
|
apiName: controlPageApiManifest?.apiName ?? null,
|
||||||
|
count: controlPageMethods.length,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "workflow-overview-api",
|
||||||
|
label: "Workflow overview API",
|
||||||
|
apiName: workflowOverviewContract?.apiName ?? null,
|
||||||
|
count: workflowOverviewMethods.length,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "session-readiness-report",
|
||||||
|
label: "Session readiness report",
|
||||||
|
apiName: sessionReadinessWorkflowReport?.apiName ?? null,
|
||||||
|
count: sessionReadinessRows.length,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "persistence-capabilities",
|
||||||
|
label: "Persistence capabilities",
|
||||||
|
apiName: launchApiManifest?.apiName ?? null,
|
||||||
|
count: persistenceCapabilities.length,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
rows: [
|
||||||
|
{
|
||||||
|
id: "launch-methods",
|
||||||
|
label: "Launch methods",
|
||||||
|
value: String(launchMethods.length),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "control-page-methods",
|
||||||
|
label: "Control-page methods",
|
||||||
|
value: String(controlPageMethods.length),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "workflow-overview-methods",
|
||||||
|
label: "Workflow overview methods",
|
||||||
|
value: String(workflowOverviewMethods.length),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "session-readiness-report",
|
||||||
|
label: "Session readiness report",
|
||||||
|
value: sessionReadinessWorkflowReport?.apiName ?? "missing",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "persistence-capabilities",
|
||||||
|
label: "Persistence capabilities",
|
||||||
|
value: String(persistenceCapabilities.length),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export function createIniPanelShellSessionHandoffWorkflowRenderState(
|
export function createIniPanelShellSessionHandoffWorkflowRenderState(
|
||||||
displayViewModel = createIniPanelShellSessionHandoffWorkflowDisplayViewModel(),
|
displayViewModel = createIniPanelShellSessionHandoffWorkflowDisplayViewModel(),
|
||||||
) {
|
) {
|
||||||
@@ -1671,6 +1776,7 @@ export function createIniPanelShellWorkflowOverviewContract() {
|
|||||||
"getWorkflowOverviewDisplayViewModel",
|
"getWorkflowOverviewDisplayViewModel",
|
||||||
"getWorkflowOverviewSummary",
|
"getWorkflowOverviewSummary",
|
||||||
"getWorkflowOverviewSessionReadinessReport",
|
"getWorkflowOverviewSessionReadinessReport",
|
||||||
|
"getWorkflowOverviewApiSurfaceInventory",
|
||||||
"getWorkflowOverviewDomContract",
|
"getWorkflowOverviewDomContract",
|
||||||
"getWorkflowOverviewDomReadiness",
|
"getWorkflowOverviewDomReadiness",
|
||||||
"renderWorkflowOverview",
|
"renderWorkflowOverview",
|
||||||
@@ -2588,6 +2694,12 @@ export function createIniPanelShellViewModel(entries = getVisibleIniPanelEntries
|
|||||||
);
|
);
|
||||||
const shellSessionHandoffWorkflowDomContract = createIniPanelShellSessionHandoffWorkflowDomContract();
|
const shellSessionHandoffWorkflowDomContract = createIniPanelShellSessionHandoffWorkflowDomContract();
|
||||||
const shellWorkflowOverviewContract = createIniPanelShellWorkflowOverviewContract();
|
const shellWorkflowOverviewContract = createIniPanelShellWorkflowOverviewContract();
|
||||||
|
const shellApiSurfaceInventory = createIniPanelShellApiSurfaceInventory({
|
||||||
|
launchApiManifest: shellIntegrationManifest.launchApiManifest,
|
||||||
|
controlPageApiManifest: shellIntegrationManifest.controlPageApiManifest,
|
||||||
|
workflowOverviewContract: shellWorkflowOverviewContract,
|
||||||
|
sessionReadinessWorkflowReport: shellSessionReadinessWorkflowReport,
|
||||||
|
});
|
||||||
return {
|
return {
|
||||||
pages: entries.map(({ id, href, title }) => ({
|
pages: entries.map(({ id, href, title }) => ({
|
||||||
id,
|
id,
|
||||||
@@ -2622,6 +2734,7 @@ export function createIniPanelShellViewModel(entries = getVisibleIniPanelEntries
|
|||||||
shellSessionHandoffWorkflowRenderState,
|
shellSessionHandoffWorkflowRenderState,
|
||||||
shellSessionHandoffWorkflowDomContract,
|
shellSessionHandoffWorkflowDomContract,
|
||||||
shellWorkflowOverviewContract,
|
shellWorkflowOverviewContract,
|
||||||
|
shellApiSurfaceInventory,
|
||||||
launchApiSchema: createIniPanelLaunchApiSchema(),
|
launchApiSchema: createIniPanelLaunchApiSchema(),
|
||||||
launchApiManifest: createIniPanelLaunchApiManifest(entries),
|
launchApiManifest: createIniPanelLaunchApiManifest(entries),
|
||||||
isSupportedShellIntegrationManifest: isSupportedIniPanelShellIntegrationManifest,
|
isSupportedShellIntegrationManifest: isSupportedIniPanelShellIntegrationManifest,
|
||||||
@@ -2652,6 +2765,7 @@ export function createIniPanelShellViewModel(entries = getVisibleIniPanelEntries
|
|||||||
readShellSessionHandoffStatusFromControlPage: readIniPanelShellSessionHandoffStatusFromControlPage,
|
readShellSessionHandoffStatusFromControlPage: readIniPanelShellSessionHandoffStatusFromControlPage,
|
||||||
createShellSessionHandoffWorkflowSummary: createIniPanelShellSessionHandoffWorkflowSummary,
|
createShellSessionHandoffWorkflowSummary: createIniPanelShellSessionHandoffWorkflowSummary,
|
||||||
createShellSessionReadinessWorkflowReport: createIniPanelShellSessionReadinessWorkflowReport,
|
createShellSessionReadinessWorkflowReport: createIniPanelShellSessionReadinessWorkflowReport,
|
||||||
|
createShellApiSurfaceInventory: createIniPanelShellApiSurfaceInventory,
|
||||||
createShellSessionHandoffWorkflowDisplayViewModel: createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
|
createShellSessionHandoffWorkflowDisplayViewModel: createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
|
||||||
createShellSessionHandoffWorkflowRenderState: createIniPanelShellSessionHandoffWorkflowRenderState,
|
createShellSessionHandoffWorkflowRenderState: createIniPanelShellSessionHandoffWorkflowRenderState,
|
||||||
createShellSessionHandoffWorkflowDomContract: createIniPanelShellSessionHandoffWorkflowDomContract,
|
createShellSessionHandoffWorkflowDomContract: createIniPanelShellSessionHandoffWorkflowDomContract,
|
||||||
|
|||||||
@@ -121,6 +121,14 @@
|
|||||||
workflowSummary: shellViewModel.shellSessionHandoffWorkflowSummary,
|
workflowSummary: shellViewModel.shellSessionHandoffWorkflowSummary,
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
|
getWorkflowOverviewApiSurfaceInventory: (options) => (
|
||||||
|
shellViewModel.createShellApiSurfaceInventory(options ?? {
|
||||||
|
launchApiManifest: shellViewModel.launchApiManifest,
|
||||||
|
controlPageApiManifest: shellViewModel.controlPage.browserApiManifest,
|
||||||
|
workflowOverviewContract: shellViewModel.shellWorkflowOverviewContract,
|
||||||
|
sessionReadinessWorkflowReport: shellViewModel.shellSessionReadinessWorkflowReport,
|
||||||
|
})
|
||||||
|
),
|
||||||
getWorkflowOverviewDomContract: (options) => (
|
getWorkflowOverviewDomContract: (options) => (
|
||||||
createIniPanelShellSessionHandoffWorkflowDomContract(options)
|
createIniPanelShellSessionHandoffWorkflowDomContract(options)
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -100,6 +100,7 @@
|
|||||||
!launchApi?.getShellSessionHandoffPackageMountDisplayViewModel ||
|
!launchApi?.getShellSessionHandoffPackageMountDisplayViewModel ||
|
||||||
!launchApi?.getShellSessionHandoffPackageMountRenderState ||
|
!launchApi?.getShellSessionHandoffPackageMountRenderState ||
|
||||||
!launchApi?.getShellSessionReadinessWorkflowReport ||
|
!launchApi?.getShellSessionReadinessWorkflowReport ||
|
||||||
|
!launchApi?.getShellApiSurfaceInventory ||
|
||||||
!launchApi?.renderShellSessionHandoffMountState ||
|
!launchApi?.renderShellSessionHandoffMountState ||
|
||||||
!launchApi?.getWorkflowOverviewContract ||
|
!launchApi?.getWorkflowOverviewContract ||
|
||||||
!launchApi?.getWorkflowOverviewReadiness ||
|
!launchApi?.getWorkflowOverviewReadiness ||
|
||||||
@@ -180,6 +181,7 @@
|
|||||||
const shellSessionHandoffPackageMountDisplayViewModel = launchApi.getShellSessionHandoffPackageMountDisplayViewModel();
|
const shellSessionHandoffPackageMountDisplayViewModel = launchApi.getShellSessionHandoffPackageMountDisplayViewModel();
|
||||||
const shellSessionHandoffPackageMountRenderState = launchApi.getShellSessionHandoffPackageMountRenderState();
|
const shellSessionHandoffPackageMountRenderState = launchApi.getShellSessionHandoffPackageMountRenderState();
|
||||||
const shellSessionReadinessWorkflowReport = launchApi.getShellSessionReadinessWorkflowReport();
|
const shellSessionReadinessWorkflowReport = launchApi.getShellSessionReadinessWorkflowReport();
|
||||||
|
const shellApiSurfaceInventory = launchApi.getShellApiSurfaceInventory();
|
||||||
const workflowOverviewContract = launchApi.getWorkflowOverviewContract();
|
const workflowOverviewContract = launchApi.getWorkflowOverviewContract();
|
||||||
assertEqual(
|
assertEqual(
|
||||||
shellIntegrationSchema.manifestVersion,
|
shellIntegrationSchema.manifestVersion,
|
||||||
@@ -436,6 +438,16 @@
|
|||||||
3,
|
3,
|
||||||
"shell session readiness workflow report rows",
|
"shell session readiness workflow report rows",
|
||||||
);
|
);
|
||||||
|
assertEqual(
|
||||||
|
shellApiSurfaceInventory.apiName,
|
||||||
|
"ini-panel-shell-api-surface-inventory",
|
||||||
|
"shell API surface inventory API",
|
||||||
|
);
|
||||||
|
assertEqual(
|
||||||
|
shellApiSurfaceInventory.counts.sessionReadinessRows,
|
||||||
|
3,
|
||||||
|
"shell API surface inventory session readiness rows",
|
||||||
|
);
|
||||||
assertEqual(
|
assertEqual(
|
||||||
workflowOverviewContract.pageHref,
|
workflowOverviewContract.pageHref,
|
||||||
"./workflow-overview.html",
|
"./workflow-overview.html",
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ TOOL_TABLE = browser-shell-tool.tbl
|
|||||||
!launchApi?.readShellSessionHandoffStatusFromControlPage ||
|
!launchApi?.readShellSessionHandoffStatusFromControlPage ||
|
||||||
!launchApi?.getShellSessionHandoffWorkflowSummary ||
|
!launchApi?.getShellSessionHandoffWorkflowSummary ||
|
||||||
!launchApi?.getShellSessionReadinessWorkflowReport ||
|
!launchApi?.getShellSessionReadinessWorkflowReport ||
|
||||||
|
!launchApi?.getShellApiSurfaceInventory ||
|
||||||
!launchApi?.getShellSessionHandoffWorkflowDisplayViewModel ||
|
!launchApi?.getShellSessionHandoffWorkflowDisplayViewModel ||
|
||||||
!launchApi?.getShellSessionHandoffWorkflowRenderState ||
|
!launchApi?.getShellSessionHandoffWorkflowRenderState ||
|
||||||
!launchApi?.getShellSessionHandoffWorkflowDomContract ||
|
!launchApi?.getShellSessionHandoffWorkflowDomContract ||
|
||||||
@@ -515,6 +516,9 @@ TOOL_TABLE = browser-shell-tool.tbl
|
|||||||
const sessionReadinessWorkflowReport = launchApi.getShellSessionReadinessWorkflowReport({
|
const sessionReadinessWorkflowReport = launchApi.getShellSessionReadinessWorkflowReport({
|
||||||
workflowSummary: workflowSummaryResult,
|
workflowSummary: workflowSummaryResult,
|
||||||
});
|
});
|
||||||
|
const shellApiSurfaceInventory = launchApi.getShellApiSurfaceInventory({
|
||||||
|
sessionReadinessWorkflowReport,
|
||||||
|
});
|
||||||
const workflowDisplayResult = launchApi.getShellSessionHandoffWorkflowDisplayViewModel(
|
const workflowDisplayResult = launchApi.getShellSessionHandoffWorkflowDisplayViewModel(
|
||||||
workflowSummaryResult,
|
workflowSummaryResult,
|
||||||
);
|
);
|
||||||
@@ -562,6 +566,16 @@ TOOL_TABLE = browser-shell-tool.tbl
|
|||||||
3,
|
3,
|
||||||
"shell handoff session readiness workflow report rows",
|
"shell handoff session readiness workflow report rows",
|
||||||
);
|
);
|
||||||
|
assertEqual(
|
||||||
|
shellApiSurfaceInventory.ready,
|
||||||
|
true,
|
||||||
|
"shell handoff API surface inventory readiness",
|
||||||
|
);
|
||||||
|
assertEqual(
|
||||||
|
shellApiSurfaceInventory.counts.sessionReadinessRows,
|
||||||
|
3,
|
||||||
|
"shell handoff API surface inventory session readiness rows",
|
||||||
|
);
|
||||||
assertEqual(
|
assertEqual(
|
||||||
workflowSummaryResult.sessionReadiness.ready,
|
workflowSummaryResult.sessionReadiness.ready,
|
||||||
true,
|
true,
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
!workflowApi?.getWorkflowOverviewDisplayViewModel ||
|
!workflowApi?.getWorkflowOverviewDisplayViewModel ||
|
||||||
!workflowApi?.getWorkflowOverviewSummary ||
|
!workflowApi?.getWorkflowOverviewSummary ||
|
||||||
!workflowApi?.getWorkflowOverviewSessionReadinessReport ||
|
!workflowApi?.getWorkflowOverviewSessionReadinessReport ||
|
||||||
|
!workflowApi?.getWorkflowOverviewApiSurfaceInventory ||
|
||||||
!workflowApi?.getWorkflowOverviewDomContract ||
|
!workflowApi?.getWorkflowOverviewDomContract ||
|
||||||
!workflowApi?.getWorkflowOverviewDomReadiness ||
|
!workflowApi?.getWorkflowOverviewDomReadiness ||
|
||||||
!workflowApi?.renderWorkflowOverview ||
|
!workflowApi?.renderWorkflowOverview ||
|
||||||
@@ -58,6 +59,7 @@
|
|||||||
const displayViewModel = workflowApi.getWorkflowOverviewDisplayViewModel();
|
const displayViewModel = workflowApi.getWorkflowOverviewDisplayViewModel();
|
||||||
const summary = workflowApi.getWorkflowOverviewSummary();
|
const summary = workflowApi.getWorkflowOverviewSummary();
|
||||||
const sessionReadinessReport = workflowApi.getWorkflowOverviewSessionReadinessReport();
|
const sessionReadinessReport = workflowApi.getWorkflowOverviewSessionReadinessReport();
|
||||||
|
const apiSurfaceInventory = workflowApi.getWorkflowOverviewApiSurfaceInventory();
|
||||||
const domContract = workflowApi.getWorkflowOverviewDomContract();
|
const domContract = workflowApi.getWorkflowOverviewDomContract();
|
||||||
const domReadiness = workflowApi.getWorkflowOverviewDomReadiness();
|
const domReadiness = workflowApi.getWorkflowOverviewDomReadiness();
|
||||||
const renderResult = workflowApi.renderWorkflowOverview();
|
const renderResult = workflowApi.renderWorkflowOverview();
|
||||||
@@ -86,6 +88,12 @@
|
|||||||
"workflow overview session readiness report API name",
|
"workflow overview session readiness report API name",
|
||||||
);
|
);
|
||||||
assertEqual(sessionReadinessReport.rows.length, 3, "workflow overview session readiness report rows");
|
assertEqual(sessionReadinessReport.rows.length, 3, "workflow overview session readiness report rows");
|
||||||
|
assertEqual(
|
||||||
|
apiSurfaceInventory.apiName,
|
||||||
|
"ini-panel-shell-api-surface-inventory",
|
||||||
|
"workflow overview API surface inventory API name",
|
||||||
|
);
|
||||||
|
assertEqual(apiSurfaceInventory.rows.length, 5, "workflow overview API surface inventory rows");
|
||||||
assertEqual(displayViewModel.title, "Shell handoff workflow", "workflow overview display title");
|
assertEqual(displayViewModel.title, "Shell handoff workflow", "workflow overview display title");
|
||||||
assertEqual(renderState.renderStateVersion, 1, "workflow overview render-state version");
|
assertEqual(renderState.renderStateVersion, 1, "workflow overview render-state version");
|
||||||
assertEqual(renderState.dataset.handoffScope, "workflow", "workflow overview render-state scope");
|
assertEqual(renderState.dataset.handoffScope, "workflow", "workflow overview render-state scope");
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ for (const phrase of [
|
|||||||
"docs/drift-report.md",
|
"docs/drift-report.md",
|
||||||
"PROJECT_COMPLETION_TRACKER.md",
|
"PROJECT_COMPLETION_TRACKER.md",
|
||||||
"runtime/sdk/src/index.js",
|
"runtime/sdk/src/index.js",
|
||||||
|
"createIniPanelShellApiSurfaceInventory()",
|
||||||
"createIniPanelShellSessionReadinessWorkflowReport()",
|
"createIniPanelShellSessionReadinessWorkflowReport()",
|
||||||
"workflow overview embedding mount DOM",
|
"workflow overview embedding mount DOM",
|
||||||
"verify_no_standalone_cnc_semantics.sh",
|
"verify_no_standalone_cnc_semantics.sh",
|
||||||
@@ -81,6 +82,7 @@ for (const phrase of [
|
|||||||
for (const phrase of [
|
for (const phrase of [
|
||||||
"OPFS/session persistence exports",
|
"OPFS/session persistence exports",
|
||||||
"INI panel shell handoff exports",
|
"INI panel shell handoff exports",
|
||||||
|
"createIniPanelShellApiSurfaceInventory()",
|
||||||
"createIniPanelShellSessionReadinessWorkflowReport()",
|
"createIniPanelShellSessionReadinessWorkflowReport()",
|
||||||
]) {
|
]) {
|
||||||
assert.match(sdkReadmeText, literalRegExp(phrase));
|
assert.match(sdkReadmeText, literalRegExp(phrase));
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { fileURLToPath } from "node:url";
|
|||||||
import {
|
import {
|
||||||
analyzeIniRuntimeBoundaries,
|
analyzeIniRuntimeBoundaries,
|
||||||
createIniPanelLaunchApiManifest,
|
createIniPanelLaunchApiManifest,
|
||||||
|
createIniPanelShellApiSurfaceInventory,
|
||||||
createIniPanelShellSessionReadinessWorkflowReport,
|
createIniPanelShellSessionReadinessWorkflowReport,
|
||||||
createIniPanelShellViewModel,
|
createIniPanelShellViewModel,
|
||||||
createIniPanelShellWorkflowOverviewEmbeddingMountDomContract,
|
createIniPanelShellWorkflowOverviewEmbeddingMountDomContract,
|
||||||
@@ -82,6 +83,7 @@ const requiredExports = [
|
|||||||
["createIniPanelLaunchApiManifest", createIniPanelLaunchApiManifest],
|
["createIniPanelLaunchApiManifest", createIniPanelLaunchApiManifest],
|
||||||
["isSupportedIniPanelLaunchApiManifest", isSupportedIniPanelLaunchApiManifest],
|
["isSupportedIniPanelLaunchApiManifest", isSupportedIniPanelLaunchApiManifest],
|
||||||
["createIniPanelShellViewModel", createIniPanelShellViewModel],
|
["createIniPanelShellViewModel", createIniPanelShellViewModel],
|
||||||
|
["createIniPanelShellApiSurfaceInventory", createIniPanelShellApiSurfaceInventory],
|
||||||
["createIniPanelShellSessionReadinessWorkflowReport", createIniPanelShellSessionReadinessWorkflowReport],
|
["createIniPanelShellSessionReadinessWorkflowReport", createIniPanelShellSessionReadinessWorkflowReport],
|
||||||
[
|
[
|
||||||
"createIniPanelShellWorkflowOverviewEmbeddingMountDomContract",
|
"createIniPanelShellWorkflowOverviewEmbeddingMountDomContract",
|
||||||
@@ -134,6 +136,10 @@ assert.equal(
|
|||||||
createIniPanelShellSessionReadinessWorkflowReport().apiName,
|
createIniPanelShellSessionReadinessWorkflowReport().apiName,
|
||||||
"ini-panel-shell-session-readiness-workflow-report",
|
"ini-panel-shell-session-readiness-workflow-report",
|
||||||
);
|
);
|
||||||
|
assert.equal(
|
||||||
|
createIniPanelShellApiSurfaceInventory().apiName,
|
||||||
|
"ini-panel-shell-api-surface-inventory",
|
||||||
|
);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
shellViewModel.mountWorkflowOverviewEmbeddingMountState,
|
shellViewModel.mountWorkflowOverviewEmbeddingMountState,
|
||||||
mountIniPanelShellWorkflowOverviewEmbeddingMountState,
|
mountIniPanelShellWorkflowOverviewEmbeddingMountState,
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ assert.deepEqual(manifest, {
|
|||||||
"readShellSessionHandoffStatusFromControlPage",
|
"readShellSessionHandoffStatusFromControlPage",
|
||||||
"getShellSessionHandoffWorkflowSummary",
|
"getShellSessionHandoffWorkflowSummary",
|
||||||
"getShellSessionReadinessWorkflowReport",
|
"getShellSessionReadinessWorkflowReport",
|
||||||
|
"getShellApiSurfaceInventory",
|
||||||
"getShellSessionHandoffWorkflowDisplayViewModel",
|
"getShellSessionHandoffWorkflowDisplayViewModel",
|
||||||
"getShellSessionHandoffWorkflowRenderState",
|
"getShellSessionHandoffWorkflowRenderState",
|
||||||
"getShellSessionHandoffWorkflowDomContract",
|
"getShellSessionHandoffWorkflowDomContract",
|
||||||
@@ -228,6 +229,7 @@ assert.match(launchText, /\bmountShellSessionHandoffFromControlPage\b/);
|
|||||||
assert.match(launchText, /\breadShellSessionHandoffStatusFromControlPage\b/);
|
assert.match(launchText, /\breadShellSessionHandoffStatusFromControlPage\b/);
|
||||||
assert.match(launchText, /\bgetShellSessionHandoffWorkflowSummary\b/);
|
assert.match(launchText, /\bgetShellSessionHandoffWorkflowSummary\b/);
|
||||||
assert.match(launchText, /\bgetShellSessionReadinessWorkflowReport\b/);
|
assert.match(launchText, /\bgetShellSessionReadinessWorkflowReport\b/);
|
||||||
|
assert.match(launchText, /\bgetShellApiSurfaceInventory\b/);
|
||||||
assert.match(launchText, /\bgetShellSessionHandoffWorkflowDisplayViewModel\b/);
|
assert.match(launchText, /\bgetShellSessionHandoffWorkflowDisplayViewModel\b/);
|
||||||
assert.match(launchText, /\bgetShellSessionHandoffWorkflowRenderState\b/);
|
assert.match(launchText, /\bgetShellSessionHandoffWorkflowRenderState\b/);
|
||||||
assert.match(launchText, /\bgetShellSessionHandoffWorkflowDomContract\b/);
|
assert.match(launchText, /\bgetShellSessionHandoffWorkflowDomContract\b/);
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import {
|
|||||||
readIniPanelShellSessionHandoffStatusFromControlPage,
|
readIniPanelShellSessionHandoffStatusFromControlPage,
|
||||||
createIniPanelShellSessionHandoffWorkflowSummary,
|
createIniPanelShellSessionHandoffWorkflowSummary,
|
||||||
createIniPanelShellSessionReadinessWorkflowReport,
|
createIniPanelShellSessionReadinessWorkflowReport,
|
||||||
|
createIniPanelShellApiSurfaceInventory,
|
||||||
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
|
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
|
||||||
createIniPanelShellSessionHandoffWorkflowRenderState,
|
createIniPanelShellSessionHandoffWorkflowRenderState,
|
||||||
createIniPanelShellSessionHandoffWorkflowDomContract,
|
createIniPanelShellSessionHandoffWorkflowDomContract,
|
||||||
@@ -178,7 +179,7 @@ assert.deepEqual(readiness, {
|
|||||||
counts: {
|
counts: {
|
||||||
pages: 3,
|
pages: 3,
|
||||||
launcherLinks: 3,
|
launcherLinks: 3,
|
||||||
launchMethods: 56,
|
launchMethods: 57,
|
||||||
controlPageMethods: 11,
|
controlPageMethods: 11,
|
||||||
persistenceCapabilities: 3,
|
persistenceCapabilities: 3,
|
||||||
},
|
},
|
||||||
@@ -241,7 +242,7 @@ assert.deepEqual(handoffSummary, {
|
|||||||
counts: {
|
counts: {
|
||||||
pages: 3,
|
pages: 3,
|
||||||
launcherLinks: 3,
|
launcherLinks: 3,
|
||||||
launchMethods: 56,
|
launchMethods: 57,
|
||||||
controlPageMethods: 11,
|
controlPageMethods: 11,
|
||||||
persistenceCapabilities: 3,
|
persistenceCapabilities: 3,
|
||||||
},
|
},
|
||||||
@@ -747,6 +748,7 @@ assert.equal(
|
|||||||
"blocked",
|
"blocked",
|
||||||
);
|
);
|
||||||
assert.equal(createIniPanelShellSessionReadinessWorkflowReport().phase, "blocked");
|
assert.equal(createIniPanelShellSessionReadinessWorkflowReport().phase, "blocked");
|
||||||
|
assert.equal(createIniPanelShellApiSurfaceInventory().phase, "ready");
|
||||||
assert.equal(
|
assert.equal(
|
||||||
createIniPanelShellSessionHandoffWorkflowDisplayViewModel().phase,
|
createIniPanelShellSessionHandoffWorkflowDisplayViewModel().phase,
|
||||||
"blocked",
|
"blocked",
|
||||||
@@ -776,6 +778,7 @@ assert.deepEqual(createIniPanelShellWorkflowOverviewContract(), {
|
|||||||
"getWorkflowOverviewDisplayViewModel",
|
"getWorkflowOverviewDisplayViewModel",
|
||||||
"getWorkflowOverviewSummary",
|
"getWorkflowOverviewSummary",
|
||||||
"getWorkflowOverviewSessionReadinessReport",
|
"getWorkflowOverviewSessionReadinessReport",
|
||||||
|
"getWorkflowOverviewApiSurfaceInventory",
|
||||||
"getWorkflowOverviewDomContract",
|
"getWorkflowOverviewDomContract",
|
||||||
"getWorkflowOverviewDomReadiness",
|
"getWorkflowOverviewDomReadiness",
|
||||||
"renderWorkflowOverview",
|
"renderWorkflowOverview",
|
||||||
@@ -818,6 +821,7 @@ assert.deepEqual(
|
|||||||
overviewApi: {
|
overviewApi: {
|
||||||
getWorkflowOverviewRenderState: () => handoffPackageRenderState,
|
getWorkflowOverviewRenderState: () => handoffPackageRenderState,
|
||||||
getWorkflowOverviewSessionReadinessReport: () => createIniPanelShellSessionReadinessWorkflowReport(),
|
getWorkflowOverviewSessionReadinessReport: () => createIniPanelShellSessionReadinessWorkflowReport(),
|
||||||
|
getWorkflowOverviewApiSurfaceInventory: () => createIniPanelShellApiSurfaceInventory(),
|
||||||
},
|
},
|
||||||
}).missing,
|
}).missing,
|
||||||
[
|
[
|
||||||
@@ -1242,7 +1246,7 @@ assert.deepEqual(createIniPanelShellIntegrationReadiness(blockedManifest), {
|
|||||||
counts: {
|
counts: {
|
||||||
pages: 3,
|
pages: 3,
|
||||||
launcherLinks: 3,
|
launcherLinks: 3,
|
||||||
launchMethods: 56,
|
launchMethods: 57,
|
||||||
controlPageMethods: 11,
|
controlPageMethods: 11,
|
||||||
persistenceCapabilities: 3,
|
persistenceCapabilities: 3,
|
||||||
},
|
},
|
||||||
@@ -1418,6 +1422,7 @@ assert.match(shellText, /\bexport function mountIniPanelShellSessionHandoffFromC
|
|||||||
assert.match(shellText, /\bexport function readIniPanelShellSessionHandoffStatusFromControlPage\b/);
|
assert.match(shellText, /\bexport function readIniPanelShellSessionHandoffStatusFromControlPage\b/);
|
||||||
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowSummary\b/);
|
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowSummary\b/);
|
||||||
assert.match(shellText, /\bexport function createIniPanelShellSessionReadinessWorkflowReport\b/);
|
assert.match(shellText, /\bexport function createIniPanelShellSessionReadinessWorkflowReport\b/);
|
||||||
|
assert.match(shellText, /\bexport function createIniPanelShellApiSurfaceInventory\b/);
|
||||||
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowDisplayViewModel\b/);
|
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowDisplayViewModel\b/);
|
||||||
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowRenderState\b/);
|
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowRenderState\b/);
|
||||||
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowDomContract\b/);
|
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowDomContract\b/);
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import {
|
|||||||
readIniPanelShellSessionHandoffStatusFromControlPage,
|
readIniPanelShellSessionHandoffStatusFromControlPage,
|
||||||
createIniPanelShellSessionHandoffWorkflowSummary,
|
createIniPanelShellSessionHandoffWorkflowSummary,
|
||||||
createIniPanelShellSessionReadinessWorkflowReport,
|
createIniPanelShellSessionReadinessWorkflowReport,
|
||||||
|
createIniPanelShellApiSurfaceInventory,
|
||||||
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
|
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
|
||||||
createIniPanelShellSessionHandoffWorkflowRenderState,
|
createIniPanelShellSessionHandoffWorkflowRenderState,
|
||||||
createIniPanelShellSessionHandoffWorkflowDomContract,
|
createIniPanelShellSessionHandoffWorkflowDomContract,
|
||||||
@@ -118,6 +119,7 @@ assert.equal(typeof createIniPanelShellIntegrationWorkflowPlan, "function");
|
|||||||
assert.equal(typeof createIniPanelShellSessionHandoffActionPlan, "function");
|
assert.equal(typeof createIniPanelShellSessionHandoffActionPlan, "function");
|
||||||
assert.equal(typeof createIniPanelShellSessionHandoffChecklist, "function");
|
assert.equal(typeof createIniPanelShellSessionHandoffChecklist, "function");
|
||||||
assert.equal(typeof createIniPanelShellSessionHandoffCompatibilityReport, "function");
|
assert.equal(typeof createIniPanelShellSessionHandoffCompatibilityReport, "function");
|
||||||
|
assert.equal(typeof createIniPanelShellApiSurfaceInventory, "function");
|
||||||
assert.equal(typeof createIniPanelShellSessionHandoffDisplayViewModel, "function");
|
assert.equal(typeof createIniPanelShellSessionHandoffDisplayViewModel, "function");
|
||||||
assert.equal(typeof createIniPanelShellSessionHandoffPackage, "function");
|
assert.equal(typeof createIniPanelShellSessionHandoffPackage, "function");
|
||||||
assert.equal(typeof createIniPanelShellSessionHandoffPackageDisplayViewModel, "function");
|
assert.equal(typeof createIniPanelShellSessionHandoffPackageDisplayViewModel, "function");
|
||||||
@@ -664,6 +666,7 @@ assert.deepEqual(shellViewModel.shellWorkflowOverviewContract, {
|
|||||||
"getWorkflowOverviewDisplayViewModel",
|
"getWorkflowOverviewDisplayViewModel",
|
||||||
"getWorkflowOverviewSummary",
|
"getWorkflowOverviewSummary",
|
||||||
"getWorkflowOverviewSessionReadinessReport",
|
"getWorkflowOverviewSessionReadinessReport",
|
||||||
|
"getWorkflowOverviewApiSurfaceInventory",
|
||||||
"getWorkflowOverviewDomContract",
|
"getWorkflowOverviewDomContract",
|
||||||
"getWorkflowOverviewDomReadiness",
|
"getWorkflowOverviewDomReadiness",
|
||||||
"renderWorkflowOverview",
|
"renderWorkflowOverview",
|
||||||
@@ -796,6 +799,7 @@ assert.equal(
|
|||||||
shellViewModel.createShellSessionReadinessWorkflowReport,
|
shellViewModel.createShellSessionReadinessWorkflowReport,
|
||||||
createIniPanelShellSessionReadinessWorkflowReport,
|
createIniPanelShellSessionReadinessWorkflowReport,
|
||||||
);
|
);
|
||||||
|
assert.equal(shellViewModel.createShellApiSurfaceInventory, createIniPanelShellApiSurfaceInventory);
|
||||||
assert.equal(
|
assert.equal(
|
||||||
shellViewModel.createShellSessionHandoffWorkflowDisplayViewModel,
|
shellViewModel.createShellSessionHandoffWorkflowDisplayViewModel,
|
||||||
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
|
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
|
||||||
@@ -1130,6 +1134,10 @@ assert.equal(sessionReadinessWorkflowReport.rows.length, 3);
|
|||||||
assert.equal(sessionReadinessWorkflowReport.rows[0].value, "ready");
|
assert.equal(sessionReadinessWorkflowReport.rows[0].value, "ready");
|
||||||
assert.equal(shellViewModel.shellSessionReadinessWorkflowReport.ready, false);
|
assert.equal(shellViewModel.shellSessionReadinessWorkflowReport.ready, false);
|
||||||
assert.equal(shellViewModel.shellSessionReadinessWorkflowReport.rows.length, 3);
|
assert.equal(shellViewModel.shellSessionReadinessWorkflowReport.rows.length, 3);
|
||||||
|
assert.equal(shellViewModel.shellApiSurfaceInventory.apiName, "ini-panel-shell-api-surface-inventory");
|
||||||
|
assert.equal(shellViewModel.shellApiSurfaceInventory.ready, true);
|
||||||
|
assert.equal(shellViewModel.shellApiSurfaceInventory.counts.sessionReadinessRows, 3);
|
||||||
|
assert.equal(shellViewModel.shellApiSurfaceInventory.rows.length, 5);
|
||||||
const readyWorkflowSummaryResult = createIniPanelShellSessionHandoffWorkflowSummary({
|
const readyWorkflowSummaryResult = createIniPanelShellSessionHandoffWorkflowSummary({
|
||||||
mountWorkflow: {
|
mountWorkflow: {
|
||||||
phase: "ready",
|
phase: "ready",
|
||||||
@@ -1250,6 +1258,7 @@ const workflowOverviewApi = {
|
|||||||
getWorkflowOverviewDisplayViewModel: () => workflowDisplayViewModel,
|
getWorkflowOverviewDisplayViewModel: () => workflowDisplayViewModel,
|
||||||
getWorkflowOverviewSummary: () => workflowSummaryResult,
|
getWorkflowOverviewSummary: () => workflowSummaryResult,
|
||||||
getWorkflowOverviewSessionReadinessReport: () => sessionReadinessWorkflowReport,
|
getWorkflowOverviewSessionReadinessReport: () => sessionReadinessWorkflowReport,
|
||||||
|
getWorkflowOverviewApiSurfaceInventory: () => shellViewModel.shellApiSurfaceInventory,
|
||||||
getWorkflowOverviewDomContract: createIniPanelShellSessionHandoffWorkflowDomContract,
|
getWorkflowOverviewDomContract: createIniPanelShellSessionHandoffWorkflowDomContract,
|
||||||
getWorkflowOverviewDomReadiness: createIniPanelShellSessionHandoffWorkflowDomReadiness,
|
getWorkflowOverviewDomReadiness: createIniPanelShellSessionHandoffWorkflowDomReadiness,
|
||||||
renderWorkflowOverview: renderIniPanelShellSessionHandoffWorkflowState,
|
renderWorkflowOverview: renderIniPanelShellSessionHandoffWorkflowState,
|
||||||
|
|||||||
Reference in New Issue
Block a user