tamash-playwright 0.11.0-beta.2 → 0.11.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of tamash-playwright might be problematic. Click here for more details.

package/.env.example CHANGED
@@ -1,7 +1,7 @@
1
1
  # Master on/off switch for self-healing. Unset or anything other than false/0 leaves it on.
2
2
  HEALER_ENABLED=true
3
3
 
4
- # Which AI provider backs self-healing: ollama | openai | anthropic | gemini | claude-subscription | copilot-subscription | tamash
4
+ # Which AI provider backs self-healing: ollama | ollama-local | openai | anthropic | gemini | claude-subscription | copilot-subscription | tamash
5
5
  # Unset, unknown, or a provider whose key/model below is missing disables self-healing —
6
6
  # a failed action just fails normally, since there's no AI model configured to recover it.
7
7
  # claude-subscription/copilot-subscription don't need an API key at all — they use an existing
@@ -14,6 +14,16 @@ OLLAMA_MODEL=gpt-oss:120b
14
14
  OLLAMA_API_KEY=
15
15
  # OLLAMA_BASE_URL=https://ollama.com
16
16
 
17
+ # --- Ollama, self-hosted/internal server (a separate provider from Ollama Cloud above) ---
18
+ # For your own `ollama serve` instance, or an internal deployment your company hosts. A bare
19
+ # `ollama serve` has no auth at all -- leave OLLAMA_LOCAL_API_KEY unset. If your deployment sits
20
+ # behind a reverse proxy or API gateway that requires a bearer token, set it and it's sent as
21
+ # `Authorization: Bearer <token>`; no other auth scheme is currently supported.
22
+ # HEALER_PROVIDER=ollama-local
23
+ # OLLAMA_LOCAL_MODEL=gpt-oss:120b
24
+ # OLLAMA_LOCAL_BASE_URL=http://localhost:11434
25
+ # OLLAMA_LOCAL_API_KEY=
26
+
17
27
  # --- OpenAI ---
18
28
  # OPENAI_MODEL=gpt-4.1-mini
19
29
  # OPENAI_API_KEY=
package/CHANGELOG.md CHANGED
@@ -26,6 +26,15 @@ All notable changes to this project are documented here. Format loosely follows
26
26
  (previously implemented with zero coverage); fixed by extending both bindings to wrap whatever
27
27
  page these three hand back, the same way `newPage()` already did.
28
28
 
29
+ - **`tamash` (the rule-based provider) declined on a real, common page pattern it should have
30
+ resolved.** A floating label rendered as its own text node right next to a field whose accessible
31
+ name is *also* that same text (confirmed on a real login page: a "Username" label next to a field
32
+ that's itself named "Username") was miscounted as two competing candidates and declined, even
33
+ though there's genuinely only one field. `findRuleBasedMatch` now only treats a match as a real
34
+ competing candidate when it's independently resolvable on its own (has a ref and a plausible
35
+ role) — a bare text node repeating the same words is decorative, not a second option. Genuine
36
+ ambiguity (two actually-independent candidates) still declines exactly as before.
37
+
29
38
  ### Added
30
39
 
31
40
  - **A new `tamash` heal provider — rule-based healing, no AI at all.** `HEALER_PROVIDER=tamash`
@@ -43,6 +52,15 @@ All notable changes to this project are documented here. Format loosely follows
43
52
  *why* an action failed, which is inference this provider deliberately doesn't attempt) — a fast,
44
53
  free, fully deterministic first line of defense, best suited to well-`.describe()`d,
45
54
  Page-Object-style suites.
55
+ - **A new `ollama-local` heal provider for self-hosted Ollama servers.** `HEALER_PROVIDER=ollama-local`
56
+ targets your own `ollama serve` instance or an internal company deployment, instead of Ollama
57
+ Cloud — a deliberately separate provider from `ollama`, not a flag on it, since the two have
58
+ genuinely different auth defaults: Ollama Cloud always requires `OLLAMA_API_KEY`, while
59
+ `OLLAMA_LOCAL_API_KEY` is optional, since a bare `ollama serve` has no authentication at all. Set
60
+ it only if your internal deployment sits behind a reverse proxy or API gateway that requires a
61
+ bearer token — verified against a real HTTP server both ways, confirming the `Authorization`
62
+ header is omitted entirely when no key is set, and sent correctly when one is. Prompted by a real
63
+ support request from a team wanting to use their own internally-hosted `gpt-oss:120b`.
46
64
  - **Undescribed, POM-style locator variables now get a real description automatically.** When
47
65
  `.describe()` was never called, the healer already fell back to the locator's own variable/
48
66
  property name (`txtEmployeeId`) as its best guess at intent — now that raw identifier is decoded
package/README.md CHANGED
@@ -40,13 +40,19 @@ Create a file named `.env` in your project folder:
40
40
  # Master on/off switch. Leave this as true, or remove the line entirely.
41
41
  HEALER_ENABLED=true
42
42
 
43
- # Pick one: ollama | openai | anthropic | gemini | claude-subscription | copilot-subscription | tamash
43
+ # Pick one: ollama | ollama-local | openai | anthropic | gemini | claude-subscription | copilot-subscription | tamash
44
44
  HEALER_PROVIDER=ollama
45
45
 
46
46
  # --- Ollama Cloud (https://ollama.com) ---
47
47
  OLLAMA_MODEL=gpt-oss:120b
48
48
  OLLAMA_API_KEY=
49
49
 
50
+ # --- Ollama, self-hosted/internal server (a separate provider from Ollama Cloud above) ---
51
+ # HEALER_PROVIDER=ollama-local
52
+ # OLLAMA_LOCAL_MODEL=gpt-oss:120b
53
+ # OLLAMA_LOCAL_BASE_URL=http://localhost:11434
54
+ # OLLAMA_LOCAL_API_KEY=
55
+
50
56
  # --- OpenAI ---
51
57
  # OPENAI_MODEL=gpt-4.1-mini
52
58
  # OPENAI_API_KEY=
@@ -87,6 +93,22 @@ OLLAMA_API_KEY=paste_your_key_here
87
93
 
88
94
  That's all you need — no other variables required.
89
95
 
96
+ ### Using your own self-hosted Ollama server instead of Ollama Cloud
97
+
98
+ If your team already runs its own Ollama server internally (self-hosted, same model — e.g. `gpt-oss:120b`), point at it directly instead of Ollama Cloud with the separate `ollama-local` provider:
99
+
100
+ ```sh
101
+ HEALER_PROVIDER=ollama-local
102
+ OLLAMA_LOCAL_MODEL=gpt-oss:120b
103
+ OLLAMA_LOCAL_BASE_URL=http://your-internal-ollama-host:11434
104
+ ```
105
+
106
+ This is a distinct provider from `ollama` above, not a flag on it — the two have genuinely different auth defaults, not just different default hosts:
107
+
108
+ - **A bare `ollama serve` has no authentication at all.** Leave `OLLAMA_LOCAL_API_KEY` unset and it won't send an `Authorization` header — a self-hosted server doesn't need one, and there's no cloud account to authenticate against.
109
+ - **If your deployment sits behind a reverse proxy or API gateway that does require a token**, set `OLLAMA_LOCAL_API_KEY` and it's sent the same way as the cloud provider's key (`Authorization: Bearer <token>`). No other auth scheme (Basic auth, a custom header, mTLS) is currently supported — open an issue if you need one.
110
+ - `OLLAMA_LOCAL_BASE_URL` defaults to `http://localhost:11434` (a plain local `ollama serve`) if you don't set it.
111
+
90
112
  ### Using your Claude or GitHub Copilot subscription instead of an API key
91
113
 
92
114
  If you don't have an API key issued to you but do have a personal Claude (Pro/Max/Team/Enterprise) or GitHub Copilot subscription (including the free tier), you can use that instead — no billing setup, no key to paste anywhere.
@@ -15,6 +15,7 @@ currently covered · N/A not applicable to that column.
15
15
  | Feature | Description | Tested locally | Tested in CI |
16
16
  |---|---|---|---|
17
17
  | Core action healing (click/fill/check/selectOption/etc.) | Any wrapped Playwright action retries against a healed locator on failure. | ✅ Extensive unit + e2e coverage (many repro specs) | ✅ Every CI run exercises this against the sample repos' own broken locators |
18
+ | Master on/off switch (`HEALER_ENABLED=false`) | A broken locator fails exactly like vanilla Playwright when healing is off; a working locator is unaffected either way. | ✅ Permanent e2e (`healing-disabled.e2e.spec.ts`) — **found with zero coverage anywhere in this repo, ever, until asked directly whether "with and without AI healing" had actually been tested** | ❌ Neither CI workflow runs with healing disabled (`apply-heals`'s own verification step does, but only to confirm an already-applied fix works standalone — not the same as testing a genuinely broken locator with healing off) |
18
19
  | `.describe()` context | Human-readable label chained onto a locator, used as the AI's primary description. | ✅ Used throughout the test suite | ✅ Both sample repos' tests use it |
19
20
  | Automatic variable-name description fallback | `extractVariableName` (raw identifier) + `decodeVariableName` (decoded phrase + type hint) when `.describe()` isn't called. | ✅ 10+10 unit tests, permanent e2e spec | ❌ Not yet — this release's beta hasn't been pushed to either sample repo's CI yet |
20
21
  | Search-scoped snapshots | Sends a narrower excerpt of the accessibility tree when the description matches exactly one node, instead of the full page. | ✅ Live-verified (measured token reduction across several real cases) | 🔎 Silently exercised on every CI heal (it's the default first path), but no dedicated CI assertion checks it specifically |
@@ -31,13 +32,14 @@ currently covered · N/A not applicable to that column.
31
32
  | `apply-heals` (permanent fix + PR automation) | Turns a runtime heal into a committed source change; opens a PR in CI. | ✅ Unit (46 tests, all 9 strategies) | ✅ Dedicated CI job, runs every push |
32
33
  | `doctor` CLI | Pre-flight checks: provider connectivity, `actionTimeout`, vision capability, missing `.describe()`, inline locators. | ✅ Run live against every provider including `tamash` this session | ❌ Not run as part of either CI workflow |
33
34
  | `getDurable()` | Resolves any locator (e.g. `aria-ref=...`) to a durable, reusable equivalent. | ✅ e2e (`get-durable-*-repro`, 4 specs incl. concurrency) | ❌ No CI sample test calls it directly |
34
- | Provider: `ollama` | API-key provider, Ollama Cloud. | ✅ Verified this session (live calls, real token counts) | ❌ Neither CI workflow currently uses it |
35
+ | Provider: `ollama` | API-key provider, Ollama Cloud. | ✅ Verified this session (live calls, real token counts) | ✅ Both CI workflows now run a `test-ollama` job, confirmed green |
36
+ | Provider: `ollama-local` | Self-hosted Ollama server; `OLLAMA_LOCAL_API_KEY` optional, unlike `ollama`'s required key. | ✅ Verified against a genuine local Ollama installation this session (real `ollama serve`, `qwen2.5:0.5b` pulled and warmed) — confirmed the default `OLLAMA_LOCAL_BASE_URL`, real request/response round-trip (including correct token-usage extraction), and that the real server both works with no `Authorization` header and tolerates one being sent unnecessarily; also confirmed end-to-end via the real `doctor` CLI, not just a direct provider call. (A synthetic fake-HTTP-server test preceded this and is superseded by it.) | ❌ Not used in either CI workflow (no self-hosted Ollama instance available in CI) |
35
37
  | Provider: `openai` | API-key provider. | ✅ Re-verified live this release (`doctor` connectivity, real key) | ❌ Not used in either CI workflow |
36
38
  | Provider: `anthropic` | API-key provider. | ✅ Re-verified live this release (`doctor` connectivity, real key) | ❌ Not used in either CI workflow |
37
39
  | Provider: `gemini` | API-key provider. | ⚠️ Key authenticates and the model responds correctly (verified with a raw request, real `200 OK`), but `gemini-3.6-flash` took 50+ seconds to answer a trivial prompt — far beyond `doctor`'s 15s timeout and this repo's real `actionTimeout: 8000`ms, so it fails both `doctor` and real healing as currently configured, despite the key itself being valid | ❌ Not used in either CI workflow |
38
40
  | Provider: `claude-subscription` | No API key — uses a Claude subscription. | ✅ Verified this session | ✅ The Playwright sample repo's CI uses this as its default provider |
39
41
  | Provider: `copilot-subscription` | No API key — uses a GitHub Copilot subscription. | ✅ Verified this session | ✅ The Cucumber sample repo's CI uses this as its default provider |
40
- | Provider: `tamash` (no AI) | Zero-dependency rule-based healing. | ✅ Verified this session, both sample repos | ❌ Not yet — pending |
42
+ | Provider: `tamash` (no AI) | Zero-dependency rule-based healing. | ✅ Verified against the full test suite in both sample repos (all files, cleared cache, run twice each for stability) | ✅ `test-tamash` added to and passing in both sample repos' CI |
41
43
  | Non-`@playwright/test` runner support (`bindPageActions`/`bindContext`) | Manual binding for Cucumber, Jest, or a plain script. | ✅ Live-verified via the Cucumber sample repo, this session | ✅ The Cucumber sample repo's entire CI run *is* this |
42
44
  | `waitFor()`/`dragTo`/`drop`/`expect()` exclusions | Deliberately never healed — state checks and two-sided actions can't be safely guessed at. | ✅ e2e (`wait-for-not-healed`) | ❌ No CI sample test currently exercises these specifically |
43
45
 
@@ -93,6 +95,15 @@ tamash-playwright bug, a real environmental precondition, handled in the test th
93
95
  suite would (dismiss it if present, don't fail if it never appeared). Stable across 6 repeat runs
94
96
  after that fix.
95
97
 
98
+ **Full local e2e suite re-verified after the popup fix specifically** (a real gap this session had
99
+ left open — the fix touches `locator.binding.ts`, the shared file every action goes through, and
100
+ had only been checked against the two new specs plus unit tests until asked directly whether all
101
+ local testing was actually complete): 8 failures on the first full run, 4 matching the
102
+ already-known pre-existing repro scripts, and 4 new (`adjacent-sibling-healing`,
103
+ `employee-id-healing`, `example-orangehrm-add-employee`, `iframe-ref-repro`) — all 4 of the new
104
+ ones passed cleanly when rerun individually, confirming the same parallel-load contention pattern
105
+ already documented elsewhere in this file, not a regression from the popup fix.
106
+
96
107
  **Found in the beta.1 publish itself, fixed as beta.2**: the actual published `beta.1` tarball
97
108
  contained `dist/healer/providers/claude-cli.js`/`copilot-cli.js` — compiled output with no
98
109
  corresponding source file anywhere in the repo, from an abandoned, never-committed, never-wired-up
@@ -135,3 +146,36 @@ contention against a live AI provider under `fullyParallel: true`, not a determi
135
146
  raw request outside the package's own code, isolating "bad key" from "deprecated model" from
136
147
  "model too slow for the configured timeout" as three genuinely distinct possibilities before
137
148
  concluding which one it actually was.
149
+ - **`prompt.ts` — the parsing boundary shared by all 7 providers — had zero unit test coverage**
150
+ until asked directly whether "all scenarios" had testing coverage. Added 26 tests for
151
+ `parseSuggestion`/`parseVisionSuggestion`/`parseActionTacticSuggestion`/the three prompt builders/
152
+ `extractOpenAICompatibleUsage`, covering every valid strategy shape, markdown-wrapped JSON,
153
+ missing-required-field rejection, out-of-range vision coordinates, and unrecognized action
154
+ tactics. Caught a real bug in the test itself while writing it (a regex expecting "screenshot is
155
+ attached" against the actual "screenshot of the page is attached" text) — fixed before trusting
156
+ the result.
157
+ - **A real, previously-unknown `tamash` limitation, found by attempting to add CI coverage for it,
158
+ not by reasoning about it in the abstract**: verifying `HEALER_PROVIDER=tamash` against the
159
+ Cucumber sample repo's actual committed scenarios (not just this package's own fixtures) made
160
+ every single scenario decline. Root cause, confirmed against the real live login page's own
161
+ captured snapshot: a floating label rendered as its own text node (`text: " Username"`) sits
162
+ right next to a field whose own accessible name is *also* "Username" — two genuinely separate DOM
163
+ nodes saying the same thing, miscounted as two competing candidates. **Fixed** in
164
+ `findRuleBasedMatch` (see `[0.11.0]`'s own Fixed entry) — a match only counts as a real competitor
165
+ now when it's independently resolvable (its own ref + a plausible role), not just any text/name
166
+ containing the phrase. The exact real shape is now a permanent, *passing* unit test, not a
167
+ documented limitation.
168
+ - **Two more real, unrelated causes surfaced while re-verifying after that fix** — worth recording
169
+ separately since they were initially, wrongly suspected to be the same bug or live-site
170
+ flakiness before being isolated: (1) orangehrm.com runs a second real interstitial beyond the
171
+ cookie banner — a promotional event banner — confirmed reproducible specifically from a GitHub
172
+ Actions runner's IP; added a dismiss-if-present step alongside the existing cookie-banner one,
173
+ same discipline. (2) Several pre-existing `.describe()` texts in both sample repos (e.g. "Your
174
+ Email Address Field (Homepage)", "User Name Textbox") are human-natural paraphrases that don't
175
+ literally appear on the real page ("Your email address", "Username") — invisible to AI-based
176
+ healing (which tolerates paraphrasing) but a hard miss for `tamash`'s literal text matching.
177
+ Fixed by rewording the descriptions to match real page text, not by weakening the matcher — this
178
+ is `tamash`'s real, honest tradeoff (see its own README section) working exactly as documented,
179
+ not a bug. **Consequence, fully resolved**: `test-tamash` is now added to and passing in both
180
+ sample repos' CI (verified locally against the complete test suite in each, cache cleared, run
181
+ twice for stability, before pushing).
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAyMA,wBAAsB,SAAS,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BlE"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AA0MA,wBAAsB,SAAS,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BlE"}
@@ -48,9 +48,10 @@ async function checkProviderConnectivity() {
48
48
  if (!providerName) {
49
49
  console.log(` ${TAG_WARN} HEALER_PROVIDER is not set. No AI provider is configured, so self-healing will never`);
50
50
  console.log(' recover a failed action — it will just fail normally.');
51
- console.log(' Set HEALER_PROVIDER (ollama | openai | anthropic | gemini | claude-subscription |');
52
- console.log(' copilot-subscription | tamash) plus its API key/model (or, for claude-subscription/');
53
- console.log(' copilot-subscription, a subscription login; tamash needs neither — see its own docs).');
51
+ console.log(' Set HEALER_PROVIDER (ollama | ollama-local | openai | anthropic | gemini |');
52
+ console.log(' claude-subscription | copilot-subscription | tamash) plus its API key/model (or, for');
53
+ console.log(' claude-subscription/copilot-subscription, a subscription login; tamash needs neither —');
54
+ console.log(' see its own docs).');
54
55
  record('AI Provider', 'WARN', 'HEALER_PROVIDER is not set');
55
56
  return;
56
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"durable-locator.d.ts","sourceRoot":"","sources":["../../src/healer/durable-locator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAe1E,wBAAsB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAY5F;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAcF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CA6D9D;AAKD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgBtE;AAED,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC;AAOvE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,CAAC,GAAG,CAAK,GAAG,sBAAsB,EAAE,CAqE7H;AAED,MAAM,MAAM,kBAAkB,GAAG;IAQ/B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAYF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CA2DhI;AAUD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAElE;AAsBD,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAwDlG;AA6CD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CA4DtH;AAUD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAM,EAAE,aAAa,SAAI,GAAG,MAAM,EAAE,CAQhI;AAgBD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9D;AAOD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAqE1F;AAgBD,wBAAgB,mCAAmC,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAiCxG"}
1
+ {"version":3,"file":"durable-locator.d.ts","sourceRoot":"","sources":["../../src/healer/durable-locator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAe1E,wBAAsB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAY5F;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAcF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CA6D9D;AAKD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgBtE;AAED,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC;AAOvE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,CAAC,GAAG,CAAK,GAAG,sBAAsB,EAAE,CAqE7H;AAED,MAAM,MAAM,kBAAkB,GAAG;IAQ/B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAYF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CA2DhI;AAUD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAElE;AAsBD,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAwDlG;AA6CD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CA4EtH;AAUD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAM,EAAE,aAAa,SAAI,GAAG,MAAM,EAAE,CAQhI;AAgBD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9D;AAOD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAqE1F;AAgBD,wBAAgB,mCAAmC,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAiCxG"}
@@ -381,13 +381,28 @@ function roleIsPlausibleTarget(actualRole, expectedRole) {
381
381
  function findRuleBasedMatch(nodes, phrase, expectedRole) {
382
382
  const needle = phrase.toLowerCase();
383
383
  const matches = nodes.filter((n) => (n.text?.toLowerCase().includes(needle)) || (n.name?.toLowerCase().includes(needle)));
384
+ // A match only counts as a competing CANDIDATE if it's independently resolvable on its own --
385
+ // has a ref and a plausible role for what's expected. A bare text node, or a non-interactive
386
+ // wrapper, that merely repeats the same words is decorative, not a second option: confirmed
387
+ // live against a real login page whose floating label text ("Username") sits right next to a
388
+ // field whose own accessible name is ALSO "Username" -- two separate DOM nodes describing the
389
+ // same field, which used to be miscounted as two genuine candidates and declined outright.
390
+ // Checked before the single-match fast path below so it applies whether the phrase matched once
391
+ // or several times.
392
+ const realCandidates = matches.filter((n) => n.ref && roleIsPlausibleTarget(n.role, expectedRole));
393
+ if (realCandidates.length === 1) {
394
+ return { strategy: 'ref', ref: realCandidates[0].ref };
395
+ }
396
+ if (realCandidates.length > 1) {
397
+ return { strategy: 'none' };
398
+ }
399
+ // No directly-resolvable candidate at all -- what's left, if anything, is a bare label/wrapper
400
+ // to widen out from. Still requires the phrase to match exactly one such node; more than one
401
+ // (the original "Last Name" appearing in two separate rows) stays ambiguous, unchanged.
384
402
  if (matches.length !== 1) {
385
403
  return { strategy: 'none' };
386
404
  }
387
405
  const anchor = matches[0];
388
- if (anchor.ref && roleIsPlausibleTarget(anchor.role, expectedRole)) {
389
- return { strategy: 'ref', ref: anchor.ref };
390
- }
391
406
  const anchorIndex = nodes.indexOf(anchor);
392
407
  function findAncestor(fromIndex, wantDepth) {
393
408
  for (let i = fromIndex - 1; i >= 0; i--) {
@@ -1 +1 @@
1
- {"version":3,"file":"durable-locator.js","sourceRoot":"","sources":["../../src/healer/durable-locator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,8FAA8F;AAC9F,gDAAgD;AAEhD,wFAAwF;AACxF,+FAA+F;AAC/F,gGAAgG;AAChG,gGAAgG;AAChG,4DAA4D;AAC5D,EAAE;AACF,8FAA8F;AAC9F,gGAAgG;AAChG,gGAAgG;AAChG,2FAA2F;AACpF,KAAK,sBAAsB,CAAU,EAAE,CAAU,EAAE,SAAS,GAAG,IAAI;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAYD,iGAAiG;AACjG,+FAA+F;AAC/F,kGAAkG;AAClG,gEAAgE;AAChE,0FAA0F;AAC1F,iGAAiG;AACjG,wCAAwC;AACxC,4FAA4F;AAC5F,+FAA+F;AAC/F,wFAAwF;AACxF,yBAAyB;AACzB,4EAA4E;AAC5E,yBAAgC,QAAgB;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEvB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAClD,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,wFAAwF;QACxF,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACrF,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACtF,MAAM,GAAG,GAAG,QAAQ;YAClB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7G,CAAC,CAAC,SAAS,CAAC;QAEd,0FAA0F;QAC1F,2FAA2F;QAC3F,yBAAyB;QACzB,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;QAErF,0FAA0F;QAC1F,sFAAsF;QACtF,wFAAwF;QACxF,yFAAyF;QACzF,iCAAiC;QACjC,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/F,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAErD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,0FAA0F;AAC1F,mGAAmG;AACnG,sEAAsE;AACtE,6BAAoC,MAAc;IAChD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,mBAAmB,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,YAAY;YACf,OAAO,UAAU,CAAC;QACpB,KAAK,cAAc;YACjB,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAID,8FAA8F;AAC9F,gGAAgG;AAChG,gGAAgG;AAChG,gGAAgG;AAChG,sBAAsB;AACtB,gCAAuC,KAAmB,EAAE,SAAiB,EAAE,SAAS,GAAU,CAAC;IACjG,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAChE,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAElC,6FAA6F;IAC7F,+FAA+F;IAC/F,wFAAwF;IACxF,SAAS,YAAY,CAAC,SAAiB,EAAE,SAAiB;QACxD,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;gBAC/B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,IAAI,aAAa,GAAG,WAAW,CAAC;IAChC,IAAI,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;IAEjC,KAAK,IAAI,QAAQ,GAAG,CAAU,EAAE,QAAQ,IAAI,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC;QAClE,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;QACnE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM;QACR,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;QAC7C,MAAM,YAAY,GAAG,aAAa,CAAC;QAEnC,MAAM,UAAU,GAA0C,EAAE,CAAC;QAC7D,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,8BAA8B;YACvC,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBACpC,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC/B,SAAS,CAAC,oCAAoC;YAChD,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAc,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACpF,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAc,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,UAAU;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;aACnG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE5D,aAAa,GAAG,WAAW,CAAC;QAC5B,aAAa,GAAG,WAAW,CAAC;IAC9B,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAaD,8FAA8F;AAC9F,kGAAkG;AAClG,mGAAmG;AACnG,iGAAiG;AACjG,kGAAkG;AAClG,kGAAkG;AAClG,wFAAwF;AACxF,oGAAoG;AACpG,mGAAmG;AACnG,kGAAkG;AAClG,gCAAuC,KAAmB,EAAE,SAAiB,EAAE,SAAiB;IAC9F,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAChE,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,6FAA6F;IAC7F,+FAA+F;IAC/F,qDAAqD;IACrD,SAAS,aAAa,CAAC,KAAa;QAClC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IAE5C,iGAAiG;IACjG,+FAA+F;IAC/F,mGAAmG;IACnG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,SAAS;QACX,CAAC;QACD,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC,CAAC,8DAA8D;QAClF,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC,CAAC,yEAAyE;QAC7F,CAAC;QAED,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,iBAAiB,GAAG,WAAW,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;QAEnD,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,iBAAiB,IAAI,iBAAiB,EAAE,CAAC;YAC7F,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,8FAA8F;QAC9F,iGAAiG;QACjG,KAAK,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/D,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,EAAE,CAAC;gBAClC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,iGAAiG;AACjG,iGAAiG;AACjG,gGAAgG;AAChG,kGAAkG;AAClG,kGAAkG;AAClG,kGAAkG;AAClG,sFAAsF;AACtF,MAAM,mBAAmB,GAAG,6HAA6H,CAAC;AAC1J,gCAAuC,WAAmB;IACxD,OAAO,WAAW,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED,kGAAkG;AAClG,mGAAmG;AACnG,oGAAoG;AACpG,+FAA+F;AAC/F,gGAAgG;AAChG,+FAA+F;AAC/F,6FAA6F;AAC7F,mGAAmG;AACnG,gGAAgG;AAChG,iFAAiF;AACjF,EAAE;AACF,8FAA8F;AAC9F,gGAAgG;AAChG,EAAE;AACF,gGAAgG;AAChG,4FAA4F;AAC5F,mGAAmG;AACnG,gGAAgG;AAChG,gGAAgG;AAChG,gBAAgB;AAChB,+BAAsC,gBAAwB,EAAE,MAAc;IAC5E,MAAM,KAAK,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1H,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,SAAS,cAAc,CAAC,CAAS;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3B,IAAI,GAAG,GAAG,UAAU,CAAC;IACrB,IAAI,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;IACpC,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,WAA+B,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC;gBACjC,WAAW,GAAG,CAAC,CAAC;gBAChB,MAAM;YACR,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM;QACR,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM;YACR,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC7B,cAAc,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,GAAG,GAAG,WAAW,CAAC;QAClB,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5E,OAAO,gBAAgB;SACpB,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SACtD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ;CACpG,CAAC,CAAC;AAEH,gGAAgG;AAChG,2FAA2F;AAC3F,cAAc;AACd,MAAM,aAAa,GAA2B;IAC5C,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE,OAAO;CACxB,CAAC;AAEF,SAAS,qBAAqB,CAAC,IAAwB;IACrD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACtC,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;AACnC,CAAC;AAED,SAAS,qBAAqB,CAAC,UAA8B,EAAE,YAAgC;IAC7F,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,MAAM,KAAK,qBAAqB,CAAC,YAAY,CAAC,CAAC;AACxD,CAAC;AAED,kGAAkG;AAClG,gGAAgG;AAChG,iFAAiF;AACjF,+FAA+F;AAC/F,iGAAiG;AACjG,kGAAkG;AAClG,wFAAwF;AACxF,kGAAkG;AAClG,mGAAmG;AACnG,oGAAoG;AACpG,6CAA6C;AAC7C,4BAAmC,KAAmB,EAAE,MAAc,EAAE,YAAgC;IACtG,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1H,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1B,IAAI,MAAM,CAAC,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1C,SAAS,YAAY,CAAC,SAAiB,EAAE,SAAiB;QACxD,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;gBAC/B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,GAAG,GAAG,WAAW,CAAC;IACtB,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACzB,KAAK,IAAI,QAAQ,GAAG,CAAU,EAAE,QAAQ,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC;QACvE,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM;QACR,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;QAC7C,MAAM,UAAU,GAAiB,EAAE,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,EAAE,CAAC;gBAClC,MAAM;YACR,CAAC;YACD,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC;gBACtB,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;gBACvE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC,GAAG;gBACf,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAa,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE;gBACvE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAa,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;QAChI,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC9B,CAAC;QACD,GAAG,GAAG,WAAW,CAAC;QAClB,KAAK,GAAG,WAAW,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAmC,EAAE,CAAS,EAAE,CAAS;IACpF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,gGAAgG;AAChG,4FAA4F;AAC5F,iGAAiG;AACjG,YAAY;AACZ,mCAA0C,KAAmB,EAAE,CAAS,EAAE,CAAS,EAAE,QAAQ,GAAG,GAAG,EAAE,aAAa,GAAG,CAAC;IACpH,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,CAAC,EAA0E,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACvH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SACxE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC;SACrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;SACvC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAS;IACrC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,oDAAoD;AACpD,MAAM,GAAG,GAAG,uBAAuB,CAAC;AAEpC,iGAAiG;AACjG,+FAA+F;AAC/F,yFAAyF;AACzF,+FAA+F;AAC/F,gGAAgG;AAChG,sFAAsF;AACtF,6FAA6F;AAC7F,kCAAyC,IAAY;IACnD,OAAO,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,+FAA+F;AAC/F,+FAA+F;AAC/F,kGAAkG;AAClG,+FAA+F;AAC/F,qDAAqD;AACrD,iCAAwC,UAA8B;IACpE,QAAQ,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC5B,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,IAAI;gBACpB,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK;gBAC/F,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,KAAK,MAAM;YACT,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QACzD,KAAK,QAAQ;YACX,OAAO,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;QAC7D,KAAK,OAAO;YACV,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3D,KAAK,aAAa;YAChB,OAAO,oBAAoB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC;QACvE,KAAK,SAAS;YACZ,OAAO,gBAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC;QAC/D,KAAK,OAAO;YACV,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3D,KAAK,KAAK;YACR,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QACtD,KAAK,MAAM,EAAE,CAAC;YACZ,2FAA2F;YAC3F,6FAA6F;YAC7F,4FAA4F;YAC5F,qCAAqC;YACrC,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7D,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,EAAE,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1J,CAAC;QACD,KAAK,UAAU,EAAE,CAAC;YAChB,0FAA0F;YAC1F,uFAAuF;YACvF,2FAA2F;YAC3F,4FAA4F;YAC5F,4FAA4F;YAC5F,mDAAmD;YACnD,MAAM,KAAK,GAAG,UAAU,CAAC,iBAAiB,IAAI,CAAC,CAAC;YAChD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;gBAClE,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YACzF,CAAC;YACD,0FAA0F;YAC1F,6FAA6F;YAC7F,0FAA0F;YAC1F,2FAA2F;YAC3F,yEAAyE;YACzE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACtF,OAAO,WAAW,WAAW,aAAa,IAAI,CAAC,SAAS,CAAC,SAAS,UAAU,EAAE,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAC/L,CAAC;QACD,KAAK,QAAQ,EAAE,CAAC;YACd,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACjM,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC1J,OAAO,aAAa,aAAa,eAAe,UAAU,GAAG,CAAC;QAChE,CAAC;QACD,KAAK,YAAY;YACf,0FAA0F;YAC1F,oFAAoF;YACpF,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;QACvH,KAAK,YAAY;YACf,iFAAiF;YACjF,+EAA+E;YAC/E,0FAA0F;YAC1F,yFAAyF;YACzF,4FAA4F;YAC5F,4FAA4F;YAC5F,OAAO,UAAU,CAAC,IAAI,CAAC;QACzB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,gGAAgG;AAChG,sFAAsF;AACtF,kGAAkG;AAClG,4FAA4F;AAC5F,EAAE;AACF,8FAA8F;AAC9F,8FAA8F;AAC9F,mGAAmG;AACnG,oEAAoE;AACpE,EAAE;AACF,4FAA4F;AAC5F,iGAAiG;AACjG,4BAA4B;AAC5B,6CAAoD,YAAoB;IACtE,IAAI,wBAAwB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAA0B,CAAC;IAE/B,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,GAAG,6BAA6B,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACnI,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,wBAAwB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,oBAAoB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"durable-locator.js","sourceRoot":"","sources":["../../src/healer/durable-locator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/healer/providers/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAYlH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAgCrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/healer/providers/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAYlH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAmCrD"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getHealProvider = getHealProvider;
4
4
  const ollama_1 = require("./ollama");
5
+ const ollama_local_1 = require("./ollama-local");
5
6
  const openai_1 = require("./openai");
6
7
  const anthropic_1 = require("./anthropic");
7
8
  const gemini_1 = require("./gemini");
@@ -25,6 +26,9 @@ function getHealProvider() {
25
26
  case 'ollama':
26
27
  cachedProvider = (0, ollama_1.createOllamaProvider)();
27
28
  break;
29
+ case 'ollama-local':
30
+ cachedProvider = (0, ollama_local_1.createOllamaLocalProvider)();
31
+ break;
28
32
  case 'openai':
29
33
  cachedProvider = (0, openai_1.createOpenAIProvider)();
30
34
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/healer/providers/index.ts"],"names":[],"mappings":";;;AAAA,qCAAgD;AAChD,qCAAgD;AAChD,2CAAsD;AACtD,qCAAgD;AAChD,+DAAyE;AACzE,iEAA2E;AAC3E,2DAAoE;AAKpE,IAAI,cAA+C,CAAC;AAEpD,uFAAuF;AACvF,qFAAqF;AACrF,oFAAoF;AACpF,8FAA8F;AAC9F,4FAA4F;AAC5F,6FAA6F;AAC7F,gGAAgG;AAChG,uEAAuE;AACvE;IACE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,QAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACpC,KAAK,QAAQ;YACX,cAAc,GAAG,IAAA,6BAAoB,GAAE,CAAC;YACxC,MAAM;QACR,KAAK,QAAQ;YACX,cAAc,GAAG,IAAA,6BAAoB,GAAE,CAAC;YACxC,MAAM;QACR,KAAK,WAAW;YACd,cAAc,GAAG,IAAA,mCAAuB,GAAE,CAAC;YAC3C,MAAM;QACR,KAAK,QAAQ;YACX,cAAc,GAAG,IAAA,6BAAoB,GAAE,CAAC;YACxC,MAAM;QACR,KAAK,qBAAqB;YACxB,cAAc,GAAG,IAAA,sDAAgC,GAAE,CAAC;YACpD,MAAM;QACR,KAAK,sBAAsB;YACzB,cAAc,GAAG,IAAA,wDAAiC,GAAE,CAAC;YACrD,MAAM;QACR,KAAK,QAAQ;YACX,cAAc,GAAG,IAAA,iDAA6B,GAAE,CAAC;YACjD,MAAM;QACR;YACE,cAAc,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/healer/providers/index.ts"],"names":[],"mappings":";;;AAAA,qCAAgD;AAChD,iDAA2D;AAC3D,qCAAgD;AAChD,2CAAsD;AACtD,qCAAgD;AAChD,+DAAyE;AACzE,iEAA2E;AAC3E,2DAAoE;AAKpE,IAAI,cAA+C,CAAC;AAEpD,uFAAuF;AACvF,qFAAqF;AACrF,oFAAoF;AACpF,8FAA8F;AAC9F,4FAA4F;AAC5F,6FAA6F;AAC7F,gGAAgG;AAChG,uEAAuE;AACvE;IACE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,QAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACpC,KAAK,QAAQ;YACX,cAAc,GAAG,IAAA,6BAAoB,GAAE,CAAC;YACxC,MAAM;QACR,KAAK,cAAc;YACjB,cAAc,GAAG,IAAA,wCAAyB,GAAE,CAAC;YAC7C,MAAM;QACR,KAAK,QAAQ;YACX,cAAc,GAAG,IAAA,6BAAoB,GAAE,CAAC;YACxC,MAAM;QACR,KAAK,WAAW;YACd,cAAc,GAAG,IAAA,mCAAuB,GAAE,CAAC;YAC3C,MAAM;QACR,KAAK,QAAQ;YACX,cAAc,GAAG,IAAA,6BAAoB,GAAE,CAAC;YACxC,MAAM;QACR,KAAK,qBAAqB;YACxB,cAAc,GAAG,IAAA,sDAAgC,GAAE,CAAC;YACpD,MAAM;QACR,KAAK,sBAAsB;YACzB,cAAc,GAAG,IAAA,wDAAiC,GAAE,CAAC;YACrD,MAAM;QACR,KAAK,QAAQ;YACX,cAAc,GAAG,IAAA,iDAA6B,GAAE,CAAC;YACjD,MAAM;QACR;YACE,cAAc,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { HealProvider } from './types';
2
+ export declare function createOllamaLocalProvider(): HealProvider | null;
3
+ //# sourceMappingURL=ollama-local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama-local.d.ts","sourceRoot":"","sources":["../../../src/healer/providers/ollama-local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,YAAY,EAAsH,MAAM,SAAS,CAAC;AAiBpL,wBAAgB,yBAAyB,IAAI,YAAY,GAAG,IAAI,CAuM/D"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createOllamaLocalProvider = createOllamaLocalProvider;
4
+ const prompt_1 = require("./prompt");
5
+ const vision_models_1 = require("./vision-models");
6
+ // Fallback only — normally overridden by SuggestSelectorInput.timeoutMs, which mirrors the
7
+ // Playwright project's configured actionTimeout so the healer never outlasts the action budget.
8
+ const REQUEST_TIMEOUT_MS = 15000;
9
+ // A deliberately separate provider from `ollama` (ollama.ts), not a flag on it -- the two have
10
+ // genuinely different auth defaults, not just different default hosts. Ollama Cloud always
11
+ // requires OLLAMA_API_KEY; a self-hosted/internal Ollama server reached via OLLAMA_LOCAL_BASE_URL
12
+ // varies by deployment -- a bare `ollama serve` has no auth at all, but plenty of real internal
13
+ // deployments sit behind a reverse proxy or API gateway that does require a bearer token. Rather
14
+ // than guess either way, OLLAMA_LOCAL_API_KEY is optional: attach it when the deployment needs
15
+ // one, leave it unset when it doesn't. Keeping this as its own provider name (rather than making
16
+ // ollama.ts's own key optional) means the cloud provider's real requirement is never weakened,
17
+ // and `doctor`/reports/logs can tell at a glance which kind of endpoint actually served a heal.
18
+ function createOllamaLocalProvider() {
19
+ const apiKey = process.env.OLLAMA_LOCAL_API_KEY;
20
+ const model = process.env.OLLAMA_LOCAL_MODEL;
21
+ if (!model) {
22
+ return null;
23
+ }
24
+ const baseUrl = (process.env.OLLAMA_LOCAL_BASE_URL ?? 'http://localhost:11434').replace(/\/+$/, '');
25
+ const supportsVision = (0, vision_models_1.isVisionCapableModel)('ollama', model);
26
+ const headers = { 'content-type': 'application/json' };
27
+ if (apiKey) {
28
+ headers.authorization = `Bearer ${apiKey}`;
29
+ }
30
+ return {
31
+ name: `ollama-local:${model}`,
32
+ supportsVision,
33
+ async suggestSelector(input) {
34
+ const controller = new AbortController();
35
+ const timeout = setTimeout(() => controller.abort(), input.timeoutMs ?? REQUEST_TIMEOUT_MS);
36
+ try {
37
+ // Ollama's native endpoint (`/api/chat`), not the OpenAI-compatible `/v1/chat/completions`
38
+ // path -- same reasoning as ollama.ts: this is what a real Ollama server (cloud or local)
39
+ // actually serves.
40
+ const response = await fetch(`${baseUrl}/api/chat`, {
41
+ method: 'POST',
42
+ signal: controller.signal,
43
+ headers,
44
+ body: JSON.stringify({
45
+ model,
46
+ stream: false,
47
+ format: 'json',
48
+ options: { temperature: 0 },
49
+ messages: [
50
+ { role: 'system', content: prompt_1.SYSTEM_PROMPT },
51
+ { role: 'user', content: (0, prompt_1.buildUserPrompt)(input) },
52
+ ],
53
+ }),
54
+ });
55
+ if (!response.ok) {
56
+ console.warn(`[self-healer] Ollama (local) request failed: ${response.status} ${response.statusText}`);
57
+ return null;
58
+ }
59
+ const payload = await response.json();
60
+ const content = payload.message?.content;
61
+ if (!content) {
62
+ return null;
63
+ }
64
+ const suggestion = (0, prompt_1.parseSuggestion)(content);
65
+ if (!suggestion) {
66
+ return null;
67
+ }
68
+ const inputTokens = payload.prompt_eval_count;
69
+ const outputTokens = payload.eval_count;
70
+ return {
71
+ suggestion,
72
+ usage: {
73
+ inputTokens,
74
+ outputTokens,
75
+ totalTokens: inputTokens !== undefined && outputTokens !== undefined ? inputTokens + outputTokens : undefined,
76
+ },
77
+ };
78
+ }
79
+ catch (error) {
80
+ const reason = error instanceof Error ? error.message : String(error);
81
+ console.warn(`[self-healer] Ollama (local) provider error: ${reason}`);
82
+ return null;
83
+ }
84
+ finally {
85
+ clearTimeout(timeout);
86
+ }
87
+ },
88
+ async suggestSelectorFromImage(input) {
89
+ const controller = new AbortController();
90
+ const timeout = setTimeout(() => controller.abort(), input.timeoutMs ?? REQUEST_TIMEOUT_MS);
91
+ try {
92
+ const response = await fetch(`${baseUrl}/api/chat`, {
93
+ method: 'POST',
94
+ signal: controller.signal,
95
+ headers,
96
+ body: JSON.stringify({
97
+ model,
98
+ stream: false,
99
+ format: 'json',
100
+ options: { temperature: 0 },
101
+ messages: [
102
+ { role: 'system', content: prompt_1.VISION_SYSTEM_PROMPT },
103
+ { role: 'user', content: (0, prompt_1.buildVisionUserPrompt)(input), images: [input.imageBase64] },
104
+ ],
105
+ }),
106
+ });
107
+ if (!response.ok) {
108
+ console.warn(`[self-healer] Ollama (local) vision request failed: ${response.status} ${response.statusText}`);
109
+ return null;
110
+ }
111
+ const payload = await response.json();
112
+ const content = payload.message?.content;
113
+ if (!content) {
114
+ return null;
115
+ }
116
+ const point = (0, prompt_1.parseVisionSuggestion)(content);
117
+ if (!point) {
118
+ return null;
119
+ }
120
+ const inputTokens = payload.prompt_eval_count;
121
+ const outputTokens = payload.eval_count;
122
+ return {
123
+ point,
124
+ usage: {
125
+ inputTokens,
126
+ outputTokens,
127
+ totalTokens: inputTokens !== undefined && outputTokens !== undefined ? inputTokens + outputTokens : undefined,
128
+ },
129
+ };
130
+ }
131
+ catch (error) {
132
+ const reason = error instanceof Error ? error.message : String(error);
133
+ console.warn(`[self-healer] Ollama (local) vision provider error: ${reason}`);
134
+ return null;
135
+ }
136
+ finally {
137
+ clearTimeout(timeout);
138
+ }
139
+ },
140
+ async suggestActionTactic(input) {
141
+ const controller = new AbortController();
142
+ const timeout = setTimeout(() => controller.abort(), input.timeoutMs ?? REQUEST_TIMEOUT_MS);
143
+ try {
144
+ const response = await fetch(`${baseUrl}/api/chat`, {
145
+ method: 'POST',
146
+ signal: controller.signal,
147
+ headers,
148
+ body: JSON.stringify({
149
+ model,
150
+ stream: false,
151
+ format: 'json',
152
+ options: { temperature: 0 },
153
+ messages: [
154
+ { role: 'system', content: prompt_1.ACTION_RECOVERY_SYSTEM_PROMPT },
155
+ { role: 'user', content: (0, prompt_1.buildActionRecoveryUserPrompt)(input) },
156
+ ],
157
+ }),
158
+ });
159
+ if (!response.ok) {
160
+ console.warn(`[self-healer] Ollama (local) action-recovery request failed: ${response.status} ${response.statusText}`);
161
+ return null;
162
+ }
163
+ const payload = await response.json();
164
+ const content = payload.message?.content;
165
+ if (!content) {
166
+ return null;
167
+ }
168
+ const tactic = (0, prompt_1.parseActionTacticSuggestion)(content);
169
+ if (!tactic) {
170
+ return null;
171
+ }
172
+ const inputTokens = payload.prompt_eval_count;
173
+ const outputTokens = payload.eval_count;
174
+ return {
175
+ tactic,
176
+ usage: {
177
+ inputTokens,
178
+ outputTokens,
179
+ totalTokens: inputTokens !== undefined && outputTokens !== undefined ? inputTokens + outputTokens : undefined,
180
+ },
181
+ };
182
+ }
183
+ catch (error) {
184
+ const reason = error instanceof Error ? error.message : String(error);
185
+ console.warn(`[self-healer] Ollama (local) action-recovery provider error: ${reason}`);
186
+ return null;
187
+ }
188
+ finally {
189
+ clearTimeout(timeout);
190
+ }
191
+ },
192
+ };
193
+ }
194
+ //# sourceMappingURL=ollama-local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama-local.js","sourceRoot":"","sources":["../../../src/healer/providers/ollama-local.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tamash-playwright",
3
- "version": "0.11.0-beta.2",
3
+ "version": "0.11.0-beta.4",
4
4
  "description": "Plug and Play Self-healing for Playwright and automatically recovers broken selectors using an AI model (Ollama, OpenAI, Anthropic, Gemini, or a Claude/GitHub Copilot subscription).",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/usage.md CHANGED
@@ -51,13 +51,19 @@ That's the whole install. No config files created, no postinstall scripts.
51
51
  # Master on/off switch. Leave this as true, or remove the line entirely.
52
52
  HEALER_ENABLED=true
53
53
 
54
- # Pick one: ollama | openai | anthropic | gemini | claude-subscription | copilot-subscription | tamash
54
+ # Pick one: ollama | ollama-local | openai | anthropic | gemini | claude-subscription | copilot-subscription | tamash
55
55
  HEALER_PROVIDER=ollama
56
56
 
57
57
  # --- Ollama Cloud (https://ollama.com) ---
58
58
  OLLAMA_MODEL=gpt-oss:120b
59
59
  OLLAMA_API_KEY=
60
60
 
61
+ # --- Ollama, self-hosted/internal server (separate from Ollama Cloud above) ---
62
+ # HEALER_PROVIDER=ollama-local
63
+ # OLLAMA_LOCAL_MODEL=gpt-oss:120b
64
+ # OLLAMA_LOCAL_BASE_URL=http://localhost:11434
65
+ # OLLAMA_LOCAL_API_KEY=
66
+
61
67
  # --- OpenAI ---
62
68
  # OPENAI_MODEL=gpt-4.1-mini
63
69
  # OPENAI_API_KEY=
@@ -79,6 +85,19 @@ Fill in the API key and model for whichever provider you pick, and leave the res
79
85
  2. Go to [ollama.com/settings/keys](https://ollama.com/settings/keys) and create a new API key.
80
86
  3. Paste it into `.env` as `OLLAMA_API_KEY`. `HEALER_PROVIDER=ollama` and `OLLAMA_MODEL=gpt-oss:120b` above are already set — nothing else is required.
81
87
 
88
+ ### Self-hosted Ollama: `HEALER_PROVIDER=ollama-local`
89
+
90
+ A distinct provider from `ollama` above, not a flag on it — the auth default is genuinely different, not just the default host:
91
+
92
+ ```sh
93
+ HEALER_PROVIDER=ollama-local
94
+ OLLAMA_LOCAL_MODEL=gpt-oss:120b
95
+ OLLAMA_LOCAL_BASE_URL=http://your-internal-ollama-host:11434 # defaults to http://localhost:11434
96
+ # OLLAMA_LOCAL_API_KEY= # only if your deployment requires one — see below
97
+ ```
98
+
99
+ A bare `ollama serve` has no authentication at all, so `OLLAMA_LOCAL_API_KEY` is optional — leave it unset and no `Authorization` header is sent. If your internal deployment sits behind a reverse proxy or API gateway that does require a bearer token, set it there and it's sent the same way the cloud provider's key is (`Authorization: Bearer <token>`). No other auth scheme (Basic auth, a custom header, mTLS) is currently supported.
100
+
82
101
  ### No AI at all: `HEALER_PROVIDER=tamash`
83
102
 
84
103
  ```sh
@@ -532,8 +551,9 @@ The same detail prints to the console as it happens:
532
551
  | Variable | Default | Purpose |
533
552
  |----------|---------|---------|
534
553
  | `HEALER_ENABLED` | `true` | Master on/off switch. Any value other than `false`/`0` leaves healing on. |
535
- | `HEALER_PROVIDER` | unset | `ollama` \| `openai` \| `anthropic` \| `gemini` \| `claude-subscription` \| `copilot-subscription` \| `tamash` (no AI, see above). Unset or missing key/model still allows cache hits, just no fresh AI calls. |
554
+ | `HEALER_PROVIDER` | unset | `ollama` \| `ollama-local` \| `openai` \| `anthropic` \| `gemini` \| `claude-subscription` \| `copilot-subscription` \| `tamash` (no AI, see above). Unset or missing key/model still allows cache hits, just no fresh AI calls. |
536
555
  | `OLLAMA_MODEL` / `OLLAMA_API_KEY` | — | Ollama Cloud provider config. |
556
+ | `OLLAMA_LOCAL_MODEL` / `OLLAMA_LOCAL_BASE_URL` / `OLLAMA_LOCAL_API_KEY` | — / `http://localhost:11434` / — | Self-hosted Ollama provider config. The API key is optional — only set it if your deployment sits behind an auth gateway. |
537
557
  | `OPENAI_MODEL` / `OPENAI_API_KEY` | — | OpenAI provider config. |
538
558
  | `ANTHROPIC_MODEL` / `ANTHROPIC_API_KEY` | — | Anthropic (Claude) provider config. |
539
559
  | `GEMINI_MODEL` / `GEMINI_API_KEY` | — | Google Gemini provider config. |