diff --git a/.claude/skills/web-test/scripts/browser.mjs b/.claude/skills/web-test/scripts/browser.mjs index 20895767..7e7a2461 100644 --- a/.claude/skills/web-test/scripts/browser.mjs +++ b/.claude/skills/web-test/scripts/browser.mjs @@ -13,7 +13,7 @@ export { export { pasteText, saveClipboard, restoreClipboard, } from './engine/core/clipboard.mjs'; -export { getFormState } from './engine/core/form-state.mjs'; +export { getFormState } from './engine/forms/state.mjs'; export { fetchErrorStack } from './engine/core/errors.mjs'; export { clickElement } from './engine/core/click.mjs'; diff --git a/.claude/skills/web-test/scripts/engine/core/click.mjs b/.claude/skills/web-test/scripts/engine/core/click.mjs index e796b6c8..ef872ea4 100644 --- a/.claude/skills/web-test/scripts/engine/core/click.mjs +++ b/.claude/skills/web-test/scripts/engine/core/click.mjs @@ -15,7 +15,7 @@ import { getGridToggleIcon, shouldClickToggle } from '../table/grid-toggle.mjs'; import { clickSpreadsheetCell, findSpreadsheetCellByText, } from '../table/spreadsheet.mjs'; -import { getFormState } from './form-state.mjs'; +import { getFormState } from '../forms/state.mjs'; /** Click a button/hyperlink/tab on the current form. Use {dblclick: true} to double-click (open items from lists). * First argument can also be an object { row, column } to click a SpreadsheetDocument cell. */ diff --git a/.claude/skills/web-test/scripts/engine/core/helpers.mjs b/.claude/skills/web-test/scripts/engine/core/helpers.mjs index 595f1e9f..e7d626f8 100644 --- a/.claude/skills/web-test/scripts/engine/core/helpers.mjs +++ b/.claude/skills/web-test/scripts/engine/core/helpers.mjs @@ -4,7 +4,7 @@ import { page } from './state.mjs'; import { dismissPendingErrors, checkForErrors } from './errors.mjs'; -import { getFormState } from './form-state.mjs'; +import { getFormState } from '../forms/state.mjs'; /** * page.click with the standard "intercepts pointer events" retry ladder: diff --git a/.claude/skills/web-test/scripts/engine/forms/close.mjs b/.claude/skills/web-test/scripts/engine/forms/close.mjs index 6c5be6dd..cd9990e3 100644 --- a/.claude/skills/web-test/scripts/engine/forms/close.mjs +++ b/.claude/skills/web-test/scripts/engine/forms/close.mjs @@ -5,7 +5,7 @@ import { page, recorder, ensureConnected } from '../core/state.mjs'; import { detectFormScript } from '../../dom.mjs'; import { dismissPendingErrors, checkForErrors, detectPlatformDialogs, closePlatformDialogs } from '../core/errors.mjs'; import { waitForStable } from '../core/wait.mjs'; -import { getFormState } from '../core/form-state.mjs'; +import { getFormState } from './state.mjs'; /** * Close the current form/dialog via Escape. diff --git a/.claude/skills/web-test/scripts/engine/forms/fill.mjs b/.claude/skills/web-test/scripts/engine/forms/fill.mjs index 8da09047..1bb1deaf 100644 --- a/.claude/skills/web-test/scripts/engine/forms/fill.mjs +++ b/.claude/skills/web-test/scripts/engine/forms/fill.mjs @@ -15,7 +15,7 @@ import { isTypeDialog, pickFromTypeDialog, } from './select-value.mjs'; import { pasteText } from '../core/clipboard.mjs'; -import { getFormState } from '../core/form-state.mjs'; +import { getFormState } from './state.mjs'; /** Fill fields on the current form via Playwright page.fill(). Returns fill results + updated form. */ export async function fillFields(fields) { diff --git a/.claude/skills/web-test/scripts/engine/forms/select-value.mjs b/.claude/skills/web-test/scripts/engine/forms/select-value.mjs index ec22c9a6..fa3c8ff4 100644 --- a/.claude/skills/web-test/scripts/engine/forms/select-value.mjs +++ b/.claude/skills/web-test/scripts/engine/forms/select-value.mjs @@ -16,7 +16,7 @@ import { detectNewForm as helperDetectNewForm, } from '../core/helpers.mjs'; import { pasteText } from '../core/clipboard.mjs'; -import { getFormState } from '../core/form-state.mjs'; +import { getFormState } from './state.mjs'; /** * Scan visible grid rows for a text match (exact → startsWith → includes). diff --git a/.claude/skills/web-test/scripts/engine/core/form-state.mjs b/.claude/skills/web-test/scripts/engine/forms/state.mjs similarity index 84% rename from .claude/skills/web-test/scripts/engine/core/form-state.mjs rename to .claude/skills/web-test/scripts/engine/forms/state.mjs index 12391936..64495e66 100644 --- a/.claude/skills/web-test/scripts/engine/core/form-state.mjs +++ b/.claude/skills/web-test/scripts/engine/forms/state.mjs @@ -1,4 +1,4 @@ -// web-test engine/core/form-state v1.17 — central form-state reader. +// web-test engine/forms/state v1.17 — central form-state reader. // Source: https://github.com/Nikolay-Shirokov/cc-1c-skills // // getFormState — the canonical "what's on the screen right now" call. Combines: @@ -8,9 +8,9 @@ // // Returned by virtually every action-function as the "after" snapshot. -import { page, ensureConnected } from './state.mjs'; +import { page, ensureConnected } from '../core/state.mjs'; import { getFormStateScript } from '../../dom.mjs'; -import { checkForErrors, detectPlatformDialogs } from './errors.mjs'; +import { checkForErrors, detectPlatformDialogs } from '../core/errors.mjs'; /** Read current form state. Single evaluate call via combined script. */ export async function getFormState() { diff --git a/.claude/skills/web-test/scripts/engine/nav/navigation.mjs b/.claude/skills/web-test/scripts/engine/nav/navigation.mjs index 621ef72e..08790f8c 100644 --- a/.claude/skills/web-test/scripts/engine/nav/navigation.mjs +++ b/.claude/skills/web-test/scripts/engine/nav/navigation.mjs @@ -15,7 +15,7 @@ import { highlight, unhighlight } from '../recording/highlight.mjs'; import { returnFormState } from '../core/helpers.mjs'; // Static import — ESM cycle that resolves at call time. import { pasteText } from '../core/clipboard.mjs'; -import { getFormState } from '../core/form-state.mjs'; +import { getFormState } from '../forms/state.mjs'; /** * Get current page state: active section, tabs. diff --git a/.claude/skills/web-test/scripts/engine/recording/capture.mjs b/.claude/skills/web-test/scripts/engine/recording/capture.mjs index b6a5a86c..caca99ec 100644 --- a/.claude/skills/web-test/scripts/engine/recording/capture.mjs +++ b/.claude/skills/web-test/scripts/engine/recording/capture.mjs @@ -44,7 +44,7 @@ export async function wait(seconds) { await page.waitForTimeout(ms); } } - const { getFormState } = await import('../core/form-state.mjs'); + const { getFormState } = await import('../forms/state.mjs'); return await getFormState(); } diff --git a/.claude/skills/web-test/scripts/engine/table/filter.mjs b/.claude/skills/web-test/scripts/engine/table/filter.mjs index 03df38c1..f73d4910 100644 --- a/.claude/skills/web-test/scripts/engine/table/filter.mjs +++ b/.claude/skills/web-test/scripts/engine/table/filter.mjs @@ -9,7 +9,7 @@ import { highlight, unhighlight } from '../recording/highlight.mjs'; import { safeClick } from '../core/helpers.mjs'; import { selectValue, fillReferenceField } from '../forms/select-value.mjs'; import { pasteText } from '../core/clipboard.mjs'; -import { getFormState } from '../core/form-state.mjs'; +import { getFormState } from '../forms/state.mjs'; import { clickElement } from '../core/click.mjs'; /** diff --git a/.claude/skills/web-test/scripts/engine/table/grid.mjs b/.claude/skills/web-test/scripts/engine/table/grid.mjs index 3760279c..19b4becd 100644 --- a/.claude/skills/web-test/scripts/engine/table/grid.mjs +++ b/.claude/skills/web-test/scripts/engine/table/grid.mjs @@ -10,7 +10,7 @@ import { detectFormScript, readTableScript, resolveGridScript } from '../../dom. import { dismissPendingErrors } from '../core/errors.mjs'; import { waitForStable } from '../core/wait.mjs'; import { clickElement } from '../core/click.mjs'; -import { getFormState } from '../core/form-state.mjs'; +import { getFormState } from '../forms/state.mjs'; /** Read structured table data with pagination. Returns columns, rows, total count. */ export async function readTable({ maxRows = 20, offset = 0, table } = {}) { diff --git a/.claude/skills/web-test/scripts/engine/table/row-fill.mjs b/.claude/skills/web-test/scripts/engine/table/row-fill.mjs index c1e62e38..30c7c18f 100644 --- a/.claude/skills/web-test/scripts/engine/table/row-fill.mjs +++ b/.claude/skills/web-test/scripts/engine/table/row-fill.mjs @@ -20,7 +20,7 @@ import { fillReferenceField, selectValue, } from '../forms/select-value.mjs'; import { pasteText } from '../core/clipboard.mjs'; -import { getFormState } from '../core/form-state.mjs'; +import { getFormState } from '../forms/state.mjs'; /** * Fill cells in the current table row via Tab navigation. diff --git a/.claude/skills/web-test/scripts/engine/table/spreadsheet.mjs b/.claude/skills/web-test/scripts/engine/table/spreadsheet.mjs index 1d5d7a14..6fce743d 100644 --- a/.claude/skills/web-test/scripts/engine/table/spreadsheet.mjs +++ b/.claude/skills/web-test/scripts/engine/table/spreadsheet.mjs @@ -4,7 +4,7 @@ import { page, ensureConnected } from '../core/state.mjs'; import { detectFormScript } from '../../dom.mjs'; import { waitForStable } from '../core/wait.mjs'; -import { getFormState } from '../core/form-state.mjs'; +import { getFormState } from '../forms/state.mjs'; // --- Spreadsheet helpers (shared by readSpreadsheet and clickElement) ---