@koda-sl/baker-bridge 0.125.0 → 0.126.0-dev.0d67e41b9

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.
Files changed (48) hide show
  1. package/README.md +2 -1
  2. package/dist/hono/agent.test.js +6 -0
  3. package/dist/hono/agent.test.js.map +1 -1
  4. package/dist/hono/avatar-accent.d.ts +23 -5
  5. package/dist/hono/avatar-accent.d.ts.map +1 -1
  6. package/dist/hono/avatar-accent.js +54 -63
  7. package/dist/hono/avatar-accent.js.map +1 -1
  8. package/dist/hono/avatar-accent.test.js +64 -35
  9. package/dist/hono/avatar-accent.test.js.map +1 -1
  10. package/dist/hono/avatar-face-question.d.ts +23 -6
  11. package/dist/hono/avatar-face-question.d.ts.map +1 -1
  12. package/dist/hono/avatar-face-question.js +48 -59
  13. package/dist/hono/avatar-face-question.js.map +1 -1
  14. package/dist/hono/avatar-face-question.test.js +46 -101
  15. package/dist/hono/avatar-face-question.test.js.map +1 -1
  16. package/dist/hono/bridge-job.d.ts +4 -0
  17. package/dist/hono/bridge-job.d.ts.map +1 -1
  18. package/dist/hono/bridge-job.js +20 -7
  19. package/dist/hono/bridge-job.js.map +1 -1
  20. package/dist/hono/bridge-job.test.js +3 -0
  21. package/dist/hono/bridge-job.test.js.map +1 -1
  22. package/dist/hono/flow-input-card-fields.test.d.ts +10 -0
  23. package/dist/hono/flow-input-card-fields.test.d.ts.map +1 -0
  24. package/dist/hono/flow-input-card-fields.test.js +26 -0
  25. package/dist/hono/flow-input-card-fields.test.js.map +1 -0
  26. package/dist/hono/flow-input.d.ts +23 -0
  27. package/dist/hono/flow-input.d.ts.map +1 -1
  28. package/dist/hono/flow-input.js +59 -2
  29. package/dist/hono/flow-input.js.map +1 -1
  30. package/dist/hono/flow-input.test.js +56 -1
  31. package/dist/hono/flow-input.test.js.map +1 -1
  32. package/dist/hono/jev.d.ts +16 -0
  33. package/dist/hono/jev.d.ts.map +1 -0
  34. package/dist/hono/jev.js +60 -0
  35. package/dist/hono/jev.js.map +1 -0
  36. package/dist/hono/jev.test.d.ts +2 -0
  37. package/dist/hono/jev.test.d.ts.map +1 -0
  38. package/dist/hono/jev.test.js +15 -0
  39. package/dist/hono/jev.test.js.map +1 -0
  40. package/dist/hono/session-continuity.integration.test.js +5 -0
  41. package/dist/hono/session-continuity.integration.test.js.map +1 -1
  42. package/dist/review/digest.d.ts +8 -1
  43. package/dist/review/digest.d.ts.map +1 -1
  44. package/dist/review/digest.js +10 -43
  45. package/dist/review/digest.js.map +1 -1
  46. package/dist/review/digest.test.js +11 -6
  47. package/dist/review/digest.test.js.map +1 -1
  48. package/package.json +1 -1
package/README.md CHANGED
@@ -43,6 +43,7 @@ await server.start();
43
43
  | `INTERNAL_SECRET_KEY` | AES key for encrypting flow `_data.json` config at rest |
44
44
  | `ANTHROPIC_API_KEY` | Anthropic API key (required by the Agent SDK) |
45
45
  | `ANTHROPIC_BASE_URL` / `ANTHROPIC_AUTH_TOKEN` | OpenRouter routing (base URL + per-org key) injected into the sandbox. Forwarded to the Agent SDK subprocess so the agent can reach its model |
46
+ | `OPENROUTER_API_KEY` | The same per-org key under its own name. The bridge reads the user's and the agent's words with it before letting two kinds of call through: a question asking the user to pick an avatar's face (the casting picker shows real portraits), and an avatar accent in a language nobody asked for. Unset or unreachable, both calls go through unchecked |
46
47
  | `CLAUDE_CODE_EXTRA_BODY` | Optional JSON merged by the CLI into every model request body. The bridge sets/extends it per turn with a per-thread `session_id` so OpenRouter sticky-routes the whole conversation to one provider instance and its instance-scoped prompt cache is re-read across the turn's many tool-call requests (see [Prompt-cache pinning](#prompt-cache-pinning)). It also defaults `provider` to Bedrock first (see [Bedrock is the preferred provider](#bedrock-is-the-preferred-provider)). Any inherited value is merged; our `session_id` and the `web`-plugin opt-out win (see [OpenRouter web plugin is forced off](#openrouter-web-plugin-is-forced-off)). An inherited `provider` replaces the Bedrock default |
47
48
  | `BAKER_CHAT_ID` | Present only when running inside a chat sandbox. When set, the bridge relocates Claude Code auto-memory into the cloned repo (`.claude/memory`) — see [Session journal](#session-journal-agent-memory) |
48
49
  | `BAKER_ACTING_USER_ID` | Injected into the Agent SDK subprocess env per turn (when the turn's sender is known) so in-sandbox `baker` CLI calls can scope work to the acting user — e.g. `baker mcp add --scope user` |
@@ -306,7 +307,7 @@ Every turn also carries an in-process SDK MCP server named `baker_ui` hosting in
306
307
 
307
308
  A ChatGPT Ads tag pre-fills its Pixel ID and requests the optional Conversions API key in this secure form. The bridge classifies `apiKey` as a secret, so the agent never sees it and the published page receives only the Pixel ID and a signed server-event reference.
308
309
 
309
- Its second tool, `request_flow_input`, is the **blocking form-configuration form**: the agent invokes it to configure the confidential parts of a flow ("Form") it cannot author itself — side-effect credentials/connections (`encryptedConfig`, `oauthProviderId`) and widget third-party field definitions (`nodeData.form.external` for HubSpot/Calendly/HighLevel/SavvyCal). The agent authors the surrounding structure in `_data.json` and references it by `nodeId`/`sideEffectId`. Same `canUseTool` park pattern: the bridge POSTs `/api/chat/flow-input-request`, the dashboard renders a tabbed form (secret inputs / OAuth connect+account picker / live resource picker), and on submit Convex delivers the resolved values to `POST /flow-input-decision`. Unlike tags, the resolved values are written **into the branch flow file** through the encrypting `writeFlow` (read → patch node/side-effect → write); the model only ever sees a redacted result: `{ status, nodeId, sideEffectId?, secretFieldsSet, destination?, connected?, fields?, note? }`. `destination` is the non-secret half of what the user chose — the spreadsheet, the sheet, the portal, the Calendly event — so an agent that has just configured an integration does not have to spend a turn on `baker flows show --full` to learn what it configured, and does not map columns against a guess. For a widget node, `fields` carries the autofill keys the picked resource accepts — literally the left-hand side of an `autofilledFields` entry, adapter prefix included, so a SavvyCal custom field arrives as `questions.<id>` because that is what its adapter reads. They come from each provider's own field container (`fieldGroups[].fields[]`, `customQuestions[]`, `customParams.formFields[]`, `customFormFields[]`, `fields[]`, `customFields[]`) rather than from a search for name-shaped strings, so a select's option labels and the resource's own title are not among them (a HubSpot form's `name` is "Contact us"; it is reported under `destination`). A widget with no field list of its own returns none rather than a guess. Both targets go through the same filter: only plain strings and numbers are echoed, and anything in that type's secret list is redacted to a name in `secretFieldsSet`. A few non-secret keys are withheld from `destination` on top of that, because they are not an answer either — an `httpWebhook`'s basic-auth `username` is not a typed credential, so it is not in the secret list, but echoing it hands the model half a credential and nothing on the side effect is addressed by it. Leaked secret values in `prefilledConfig` are stripped bridge-side (and again backend-side). Live wait matches `AskUserQuestion` (15 min); like all blocking prompts, the form itself never expires — the thread parks and a later submission recovers the turn.
310
+ Its second tool, `request_flow_input`, is the **blocking form-configuration form**: the agent invokes it to configure the confidential parts of a flow ("Form") it cannot author itself — side-effect credentials/connections (`encryptedConfig`, `oauthProviderId`) and widget third-party field definitions (`nodeData.form.external` for HubSpot/Calendly/HighLevel/SavvyCal). The agent authors the surrounding structure in `_data.json` and references it by `nodeId`/`sideEffectId`. Same `canUseTool` park pattern: the bridge POSTs `/api/chat/flow-input-request`, the dashboard renders a tabbed form (secret inputs / OAuth connect+account picker / live resource picker), and on submit Convex delivers the resolved values to `POST /flow-input-decision`. Unlike tags, the resolved values are written **into the branch flow file** through the encrypting `writeFlow` (read → patch node/side-effect → write); the model only ever sees a redacted result: `{ status, nodeId, sideEffectId?, secretFieldsSet, destination?, connected?, fields?, note? }`. `destination` is the non-secret half of what the user chose — the spreadsheet, the sheet, the portal, the Calendly event — so an agent that has just configured an integration does not have to spend a turn on `baker flows show --full` to learn what it configured, and does not map columns against a guess. For a widget node, `fields` carries the autofill keys the picked resource accepts — literally the left-hand side of an `autofilledFields` entry, adapter prefix included, so a SavvyCal custom field arrives as `questions.<id>` because that is what its adapter reads. They come from each provider's own field container (`fieldGroups[].fields[]`, `customQuestions[]`, `customParams.formFields[]`, `customFormFields[]`, `fields[]`, `customFields[]`) rather than from a search for name-shaped strings, so a select's option labels and the resource's own title are not among them (a HubSpot form's `name` is "Contact us"; it is reported under `destination`). A widget with no field list of its own returns none rather than a guess. Both targets go through the same filter: only plain strings and numbers are echoed, and anything in that type's secret list is redacted to a name in `secretFieldsSet`. A few non-secret keys are withheld from `destination` on top of that, because they are not an answer either — an `httpWebhook`'s basic-auth `username` is not a typed credential, so it is not in the secret list, but echoing it hands the model half a credential and nothing on the side effect is addressed by it. Leaked secret values in `prefilledConfig` are stripped bridge-side (and again backend-side), and a call whose `prefilledConfig` names a key the side effect's card does not render (an email card reads `email` and `subject`, not `to`) is denied with the valid keys, because the card would drop it silently. Live wait matches `AskUserQuestion` (15 min); like all blocking prompts, the form itself never expires — the thread parks and a later submission recovers the turn.
310
311
 
311
312
  Its third tool, `request_connection`, is the **blocking connection request**: the agent invokes it when a data platform the task needs — Google Ads, LinkedIn Ads, Meta Ads, X Ads, Google Analytics 4, Google Search Console, or Google Tag Manager — is not connected yet, instead of telling the user to go to Settings. Same `canUseTool` park pattern: the bridge POSTs `/api/chat/connection-input-request`, the dashboard renders one tab per platform with the OAuth connect button and the account/property/site/container picker, and on submit Convex delivers the outcome to `POST /connection-input-decision`. Nothing confidential passes through the bridge or the model: the dashboard writes the selection onto the company's connection, and the resolution carries only `{ status, platform, accountLabel?, selected[] }`. A Google Drive tab may add `choose: "media-folder"` (kept only on Google Drive): the user picks a folder that Baker imports as a media source, and the connected result also carries its `mediaSourceKey`. An ad or data platform tab may add `pick: true` (kept only on platforms with accounts to choose): when the platform is already connected, the card opens its account picker straight away, for the agent that found the account it needs is not selected. Live wait matches `AskUserQuestion` (15 min).
312
313
 
@@ -12,6 +12,12 @@ vi.mock("./runtime-files.ts", async (importOriginal) => {
12
12
  bridgeRuntimeFiles: { ...actual.bridgeRuntimeFiles, projectRoot: () => projectRootMock.value },
13
13
  };
14
14
  });
15
+ // The real provider POSTs to the convex site above: every turn here went out to
16
+ // the network, and under fake timers its abort never fired (~4s a test).
17
+ vi.mock("./mcp-servers.ts", async (importOriginal) => ({
18
+ ...(await importOriginal()),
19
+ createMcpServersProvider: () => async () => undefined,
20
+ }));
15
21
  vi.mock("./env.ts", () => ({
16
22
  env: {
17
23
  BAKER_CONVEX_SITE_URL: "https://example.convex.site",
@@ -1 +1 @@
1
- {"version":3,"file":"agent.test.js","sourceRoot":"","sources":["../../src/hono/agent.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,8EAA8E;AAC9E,8CAA8C;AAC9C,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACrE,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACrD,MAAM,MAAM,GAAG,MAAM,cAAc,EAAuC,CAAC;IAC3E,OAAO;QACL,GAAG,MAAM;QACT,kBAAkB,EAAE,EAAE,GAAG,MAAM,CAAC,kBAAkB,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE;KAC/F,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACzB,GAAG,EAAE;QACH,qBAAqB,EAAE,6BAA6B;QACpD,aAAa,EAAE,SAAS;QACxB,UAAU,EAAE,KAAK;QACjB,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;KACpC;CACF,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;IACd,6EAA6E;IAC7E,wEAAwE;IACxE,kBAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAClF,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;CAC1C,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,aAAa,EAAE,iBAAiB;IAChC,iBAAiB,EAAE,GAAG,EAAE,CAAC,iBAAiB;IAC1C,kBAAkB,EAAE,GAAG,EAAE,CAAC,SAAS;IACnC,qBAAqB,EAAE,CAAC,KAAgC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7G,yBAAyB,EAAE,CAAC,KAAgC,EAAE,EAAE,CAC9D,KAAK,KAAK,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;IACrD,aAAa,EAAE,CAAC,KAAgC,EAAE,EAAE,CAClD,KAAK,KAAK,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;CACvE,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,mBAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;IACjD,mBAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;IACjD,oBAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;CACnD,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5B,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1B,qBAAqB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC9B,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1B,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;IACzC,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1B,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;IAClC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;IACtC,gBAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;IACzC,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;IAC1C,mBAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;IAC5C,oBAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;IAC7C,mBAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;IAC5C,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;IACvC,kCAAkC,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;CACjE,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,qBAAqB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;IACnD,6BAA6B,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;CAC5D,CAAC,CAAC,CAAC;AAGJ,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGpG,UAAU,CAAC,GAAG,EAAE;IACd,EAAE,CAAC,aAAa,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,6EAA6E;AAC7E,8EAA8E;AAC9E,iFAAiF;AACjF,+EAA+E;AAC/E,4EAA4E;AAC5E,SAAS,CAAC,GAAG,EAAE;IACb,EAAE,CAAC,aAAa,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,SAAS,OAAO,CAAC,OAA2C,EAAE,eAAwB;IACpF,OAAO;QACL,OAAO;QACP,iBAAiB,EAAE,CAAC;QACpB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,MAAM;QACpB,eAAe,EACb,eAAe;YACf,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBACnB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,4EAA4E;oBAC5E,mGAAmG;oBACnG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;iBAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,OAAO;QACL,IAAI,EAAE,OAAgB;QACtB,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAU,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,EAAE;KACnG,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ;IACf,IAAI,OAA6C,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,EAAE;QACrC,OAAO,GAAG,GAAG,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED,0EAA0E;AAC1E,8EAA8E;AAC9E,KAAK,UAAU,UAAU,CAAC,MAAe;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,EAAE,CAAC;QAC/E,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAA4D,EAAE,CAAC;QACrF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;QACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAK,CAAC,IAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,0DAA0D;AAC1D,KAAK,UAAU,YAAY,CAAC,MAAe;IACzC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,EAAE,CAAC;QAC/E,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAA4D,EAAE,CAAC;QACrF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;QACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrG,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,MAAM,GAAG,qBAAqB,CAClC,yBAAyB,EACzB,OAAO,CAAC;YACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;SACpD,CAAC,CACH,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,2EAA2E,CAAC,CAAC;QACtG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,EAAE;YAC/C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YAC1D,iBAAiB,EAAE,CAAC;YACpB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,GAAG;YACjB,eAAe,EACb,8EAA8E;gBAC9E,qGAAqG;gBACrG,6DAA6D;gBAC7D,eAAe;SAClB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,2DAA2D,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAG,qBAAqB,CAClC,eAAe,EACf,OAAO,CACL;YACE;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;aAC3F;SACF,EACD,8EAA8E;YAC5E,qGAAqG;YACrG,yBAAyB;YACzB,mDAAmD,CACtD,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mDAAmD,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,GAAG,EAAE;QAClG,MAAM,MAAM,GAAG,qBAAqB,CAClC,eAAe,EACf,OAAO,CACL;YACE;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;gBAC1F,sBAAsB,EAAE,KAAK;aAC9B;SACF,EACD,8EAA8E;YAC5E,qGAAqG;YACrG,yBAAyB;YACzB,8GAA8G,CACjH,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,8GAA8G,CAC/G,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,CAAC,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC;QAC5B,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,SAAS,CAAC,mBAAmB,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,+BAA+B,EAAgB,CAAC;YACzG,CAAC;SAC0B,CAAC,CAAC;QAE/B,gFAAgF;QAChF,+EAA+E;QAC/E,wEAAwE;QACxE,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;QAC7B,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE;YACpD,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,GAAG,GAAG,YAAY,CAAC;YACvB,QAAQ,EAAE,8BAA8B;YACxC,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,4BAA4B;SACrC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,CAAC,OAAO,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,GAAG,CAAC;QACV,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,6BAA6B,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oGAAoG,EAAE,KAAK,IAAI,EAAE;QAClH,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,SAAS,CAAC,mBAAmB,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,iCAAiC,EAAgB,CAAC;YAC3G,CAAC;SAC0B,CAAC,CAAC;QAE/B,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,gCAAgC;YAC1C,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,8BAA8B;SACvC,CAAC,CAAC;QAEH,MAAM,CAAC,kCAAkC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;QACxG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,QAAQ,EAA8B,CAAC;QAC3D,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAC;QAChC,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE;YACpC,YAAY,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO;gBACL,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAClE,CAAC,MAAM,CAAC,aAAa,CAAC;oBACpB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC7C,CAAC;aACqC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,YAAY,CAAC;YACvB,QAAQ,EAAE,gCAAgC;YAC1C,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,8BAA8B;SACvC,CAAC,CAAC;QAEH,MAAM,YAAY,CAAC,OAAO,CAAC;QAC3B,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,GAAG,CAAC;QAEV,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CACzC,gCAAgC,EAChC,8BAA8B,EAC9B,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CACrF,CAAC;QACF,MAAM,CAAC,6BAA6B,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC7D,MAAM,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,QAAQ,EAA8B,CAAC;QAC3D,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAC;QAChC,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE;YACpC,YAAY,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO;gBACL,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAClE,CAAC,MAAM,CAAC,aAAa,CAAC;oBACpB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC7C,CAAC;aACqC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,YAAY,CAAC;YACvB,QAAQ,EAAE,yCAAyC;YACnD,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,uCAAuC;SAChD,CAAC,CAAC;QAEH,MAAM,YAAY,CAAC,OAAO,CAAC;QAC3B,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,yCAAyC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,MAAM,GAAG,CAAC;QAEV,MAAM,CAAC,6BAA6B,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC;QAC5B,EAAE,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,SAAS,CAAC,mBAAmB,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,wBAAwB,EAAgB,CAAC;YAClG,CAAC;SAC0B,CAAC,CAAC;QAE/B,MAAM,GAAG,GAAG,YAAY,CAAC;YACvB,QAAQ,EAAE,uBAAuB;YACjC,MAAM,EAAE,iCAAiC;YACzC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,GAAG,CAAC;QACV,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,SAAS,CAAC,mBAAmB,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAgB,CAAC;YACxF,CAAC;SAC0B,CAAC,CAAC;QAE/B,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,6BAA6B;YACvC,MAAM,EAAE,yBAAyB;YACjC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YACpF,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACzD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QACjE,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC/E,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC;YAC7C,eAAe,EAAE,6BAA6B;YAC9C,aAAa,EAAE,WAAW;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CACzC,6BAA6B,EAC7B,WAAW,EACX,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CACrF,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/F,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C,6BAA6B,EAC7B,MAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CACnE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qGAAqG,EAAE,KAAK,IAAI,EAAE;QACnH,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,SAAS,CAAC,mBAAmB,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAgB,CAAC;YAC3F,CAAC;SAC0B,CAAC,CAAC;QAE/B,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,yBAAyB;YACnC,MAAM,EAAE,0CAA0C;YAClD,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,uBAAuB;YAC/B,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;SACrF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC/E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5E,0CAA0C;SAC3C,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAChF,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;QAC3F,SAAS;aACN,mBAAmB,CAAC;YACnB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC5E,CAAC;SACqC,CAAC;aACxC,mBAAmB,CAAC;YACnB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,EAAgB,CAAC;YAC1F,CAAC;SAC0B,CAAC,CAAC;QAEjC,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,4BAA4B;YACtC,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1E,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YACzD,MAAM,EAAE,eAAe;YACvB,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,iBAAiB;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC5F,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACvD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;QAC7E,MAAM,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,4BAA4B,CAAC,CAAC;QAChF,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C,4BAA4B,EAC5B,2BAA2B,EAC3B,MAAM,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAC3E,qBAAqB,CACtB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kGAAkG,EAAE,KAAK,IAAI,EAAE;QAChH,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACvG,SAAS,CAAC,mBAAmB,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,MAAM,OAAO,CAAC,MAAM,CACxB,IAAI,KAAK,CAAC,0FAA0F,CAAC,CACtG,CAAC;YACJ,CAAC;SACqC,CAAC,CAAC;QAE1C,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,4BAA4B;YACtC,MAAM,EAAE,iCAAiC;YACzC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1F,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YACzD,MAAM,EAAE,2BAA2B;YACnC,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,iBAAiB;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,4BAA4B,CAAC,CAAC;QAChF,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAClD,4BAA4B,EAC5B,gCAAgC,EAChC,MAAM,CAAC,QAAQ,EAAE,EACjB,qBAAqB,CACtB,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CACzC,4BAA4B,EAC5B,qBAAqB,EACrB,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,CAAC;SACjE,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;QACxG,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC9G,SAAS,CAAC,mBAAmB,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM;oBACJ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,wBAAwB;oBACjC,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,CAAC,mDAAmD,CAAC;oBAC7D,cAAc,EAAE,GAAG;oBACnB,UAAU,EAAE,kCAAkC;iBACtB,CAAC;YAC7B,CAAC;SACqC,CAAC,CAAC;QAE1C,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,mCAAmC;YAC7C,MAAM,EAAE,+BAA+B;YACvC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1F,MAAM,EAAE,4BAA4B;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,mCAAmC,CAAC,CAAC;QACvF,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CACzC,mCAAmC,EACnC,4BAA4B,EAC5B,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,CAAC,yFAAyF,CAAC;SACpG,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACvG,SAAS,CAAC,mBAAmB,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAA2B,CAAC;gBAC1F,MAAM;oBACJ,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;iBAC9D,CAAC;gBAC3B,MAAM,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC5E,CAAC;SACqC,CAAC,CAAC;QAE1C,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,wCAAwC;YAClD,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1E,MAAM,EAAE,iCAAiC;SAC1C,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,wCAAwC,CAAC,CAAC;QAC5F,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CACzC,wCAAwC,EACxC,iCAAiC,EACjC,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;SACtE,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;QACpG,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,iBAAiB,GAAG,QAAQ,EAAE,CAAC;YACrC,MAAM,iBAAiB,GAAG,QAAQ,EAAW,CAAC;YAC9C,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE;gBACpD,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC5B,OAAO,iBAAiB,CAAC,OAAO,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,SAAS;iBACN,mBAAmB,CAAC;gBACnB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;oBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;oBACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,2BAA2B,EAAgB,CAAC;gBACvG,CAAC;aAC0B,CAAC;iBAC7B,mBAAmB,CAAC;gBACnB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;oBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;oBACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,2BAA2B,EAAgB,CAAC;gBACvG,CAAC;aAC0B,CAAC,CAAC;YAEjC,MAAM,KAAK,GAAG,YAAY,CAAC;gBACzB,QAAQ,EAAE,uCAAuC;gBACjD,MAAM,EAAE,gBAAgB;gBACxB,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBACpB,MAAM,EAAE,uBAAuB;aAChC,CAAC,CAAC;YACH,MAAM,iBAAiB,CAAC,OAAO,CAAC;YAEhC,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAClD,uCAAuC,EACvC,MAAM,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,CACpE,CAAC;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC;gBAC1B,QAAQ,EAAE,uCAAuC;gBACjD,MAAM,EAAE,iCAAiC;gBACzC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC1E,MAAM,EAAE,6BAA6B;aACtC,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,MAAM,CAAC;YAEb,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;YACvG,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C,uCAAuC,EACvC,MAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,CAChF,CAAC;YAEF,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,KAAK,CAAC;YACZ,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAClD,uCAAuC,EACvC,MAAM,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,CACpE,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,aAAa,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,SAAS;aACN,mBAAmB,CAAC;YACnB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,oBAAoB,EAAgB,CAAC;YAChG,CAAC;SAC0B,CAAC;aAC7B,mBAAmB,CAAC;YACnB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,mBAAmB,EAAgB,CAAC;YAC/F,CAAC;SAC0B,CAAC,CAAC;QAEjC,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,qCAAqC;YAC/C,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,mBAAmB;SAC5B,CAAC,CAAC;QAEH,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C,qCAAqC,EACrC,MAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CACzE,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,qCAAqC,CAAC,CAAC;QAE7F,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,qCAAqC;YAC/C,MAAM,EAAE,4BAA4B;YACpC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YACzE,MAAM,EAAE,mBAAmB;SAC5B,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YACzD,MAAM,EAAE,oBAAoB;YAC5B,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;QACxG,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAChG,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAC;YAChC,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,iBAAiB,GAAY,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC;YAEpF,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE;gBAC5D,UAAU,IAAI,CAAC,CAAC;gBAChB,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;oBACrB,MAAM,UAAU,CAAC,OAAO,CAAC;gBAC3B,CAAC;gBACD,iBAAiB,GAAG,SAAS,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;gBACxE,iBAAiB,GAAG,QAAQ,CAAC;gBAC7B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,SAAS;iBACN,mBAAmB,CAAC;gBACnB,KAAK,EAAE,GAAG,EAAE;oBACV,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC9C,CAAC;gBACD,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;oBAC3B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAA2B,CAAC;oBACrG,YAAY,CAAC,OAAO,EAAE,CAAC;oBACvB,MAAM,YAAY,CAAC,OAAO,CAAC;gBAC7B,CAAC;aACqC,CAAC;iBACxC,mBAAmB,CAAC;gBACnB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;oBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;oBACxB,MAAM;wBACJ,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,4BAA4B;wBAClC,UAAU,EAAE,0BAA0B;wBACtC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE;qBACxD,CAAC;oBAC3B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,0BAA0B,EAAgB,CAAC;gBACtG,CAAC;aAC0B,CAAC,CAAC;YAEjC,MAAM,KAAK,GAAG,YAAY,CAAC;gBACzB,QAAQ,EAAE,8BAA8B;gBACxC,MAAM,EAAE,kBAAkB;gBAC1B,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBACpB,MAAM,EAAE,oBAAoB;aAC7B,CAAC,CAAC;YACH,MAAM,YAAY,CAAC,OAAO,CAAC;YAE3B,MAAM,MAAM,GAAG,YAAY,CAAC;gBAC1B,QAAQ,EAAE,8BAA8B;gBACxC,MAAM,EAAE,oBAAoB;gBAC5B,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5E,MAAM,EAAE,oBAAoB;aAC7B,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,MAAM,CAAC;YAEb,MAAM,CAAC,iBAAiB,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC/F,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC;YAEZ,MAAM,CAAC,iBAAiB,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACjG,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,aAAa,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,SAAS,aAAa,CAAC,SAAiB;QACtC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC;YACnC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAgB,CAAC;YACnF,CAAC;SAC0B,CAAC,CAAC;IACjC,CAAC;IAED,EAAE,CAAC,8FAA8F,EAAE,KAAK,IAAI,EAAE;QAC5G,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAElC,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,iBAAiB;YAC3B,MAAM,EAAE,kBAAkB;YAC1B,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAEjC,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAErC,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,oBAAoB;YAC9B,MAAM,EAAE,kBAAkB;YAC1B,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,kBAAkB;SAC3B,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAEnC,MAAM,YAAY,CAAC;YACjB,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,sBAAsB,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACzE,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC;QAEpC,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;QACtG,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;QAC7G,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACtB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC;YACnC,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBACnC,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE;gBACvE,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBACjF,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBAChF,OAAO;gBACP,YAAY;aACb,CAAC;YACF,KAAK;SACiC,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAE1C,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAC5C,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;SACpF,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvF,MAAM,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtF,MAAM,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"agent.test.js","sourceRoot":"","sources":["../../src/hono/agent.test.ts"],"names":[],"mappings":"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"}
@@ -13,11 +13,29 @@
13
13
  * own description, in the creation hint and in the family doc by now, so this is the
14
14
  * layer left.
15
15
  *
16
- * Narrow by construction — it only fires when the user is clearly writing Spanish AND
17
- * the accent clearly names another language AND nothing the user said asks for that
18
- * language or market. An ad a Spaniard genuinely wants in English says so, and then
19
- * this stays out of the way.
16
+ * Whether the accent fits is read by Jev from what the user said, in whatever language
17
+ * they write, and from the company's own Knowledge (COMPANY.md): their own language, the
18
+ * language the company's content is written in, a regional accent of either, or a language
19
+ * or market they asked for all fit. An agency member writing in English for a
20
+ * Spanish-market client wants a Spanish presenter. A wrong refusal leaves the user nothing
21
+ * to type, so a judge that cannot answer, or a company whose Knowledge cannot be read, lets
22
+ * the command through.
20
23
  */
24
+ import type { Judge } from "./jev.ts";
25
+ /**
26
+ * Three judgments, each its own Noul in one request: an accent fits when the user writes in
27
+ * its language, or asked for it, or it names no language at all. Asked as one question, a
28
+ * face ("eher südländischer Typ") read as a request for Italian (0.79). Re-run
29
+ * `scripts/avatar-guard-evals` after changing any of them.
30
+ */
31
+ export declare const ACCENT_WRITTEN_IN_QUESTION: string;
32
+ export declare const ACCENT_ASKED_FOR_QUESTION: string;
33
+ export declare const ACCENT_COMPANY_LANGUAGE_QUESTION: string;
34
+ export declare const ACCENT_NAMES_LANGUAGE_QUESTION = "Does `accent` name a language, a country or a regional accent?";
35
+ /** Each answer is a yes at or above this. Measured in `scripts/avatar-guard-evals`. */
36
+ export declare const ACCENT_HELD = 0.5;
37
+ /** The company's own description (COMPANY.md in the Company Workspace), or undefined when unreadable. */
38
+ export type CompanyText = () => Promise<string | undefined>;
21
39
  /** The `--accent` value in a `baker avatars create|update` command, if it has one. */
22
40
  export declare function accentFrom(command: string): string | null;
23
41
  /** The refusal, or null when the accent is consistent with what the user asked for. */
@@ -30,5 +48,5 @@ export declare function accentContradictsUser(command: string | undefined, userT
30
48
  * the UK, in English" — and writes the next in Spanish had their own decision refused,
31
49
  * with nothing they could type to get past it short of repeating themselves every time.
32
50
  */
33
- priorUserText?: string): string | null;
51
+ priorUserText: string | undefined, judge: Judge, companyText?: CompanyText): Promise<string | null>;
34
52
  //# sourceMappingURL=avatar-accent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-accent.d.ts","sourceRoot":"","sources":["../../src/hono/avatar-accent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAmCH,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzD;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS;AAC5B;;;;;;;GAOG;AACH,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,GAAG,IAAI,CAkBf"}
1
+ {"version":3,"file":"avatar-accent.d.ts","sourceRoot":"","sources":["../../src/hono/avatar-accent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAES,CAAC;AACjD,eAAO,MAAM,yBAAyB,QAG6E,CAAC;AACpH,eAAO,MAAM,gCAAgC,QAEwD,CAAC;AACtG,eAAO,MAAM,8BAA8B,mEAAmE,CAAC;AAC/G,uFAAuF;AACvF,eAAO,MAAM,WAAW,MAAM,CAAC;AAM/B,yGAAyG;AACzG,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAO5D,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzD;AAED,uFAAuF;AACvF,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS;AAC5B;;;;;;;GAOG;AACH,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,KAAK,EAAE,KAAK,EACZ,WAAW,GAAE,WAA6B,GACzC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqCxB"}
@@ -1,51 +1,28 @@
1
+ import { bridgeRuntimeFiles, runtimeFileStore } from "./runtime-files.js";
1
2
  /**
2
- * Refuses an avatar cast to speak a language the user never asked for.
3
- *
4
- * `--accent` decides the LANGUAGE of every clip that avatar appears in, and the agent
5
- * keeps reading it off the person's looks instead of off the conversation. Three runs in
6
- * a row, each from the same Spanish sentence asking for "aspecto europeo" — a face:
7
- *
8
- * --accent "Dutch, neutral European accent"
9
- * --accent "German, clear and authoritative"
10
- * --accent "English from UK, Southern England accent"
11
- *
12
- * The first shipped: a Spanish client's ad, spoken in German. The rule is in the flag's
13
- * own description, in the creation hint and in the family doc by now, so this is the
14
- * layer left.
15
- *
16
- * Narrow by construction — it only fires when the user is clearly writing Spanish AND
17
- * the accent clearly names another language AND nothing the user said asks for that
18
- * language or market. An ad a Spaniard genuinely wants in English says so, and then
19
- * this stays out of the way.
3
+ * Three judgments, each its own Noul in one request: an accent fits when the user writes in
4
+ * its language, or asked for it, or it names no language at all. Asked as one question, a
5
+ * face ("eher südländischer Typ") read as a request for Italian (0.79). Re-run
6
+ * `scripts/avatar-guard-evals` after changing any of them.
20
7
  */
21
- /** Words that are common in Spanish and rare-to-absent in English/German/Dutch. */
22
- const SPANISH_MARKERS = /\b(que|para|con|una?|los|las|del|por|pero|como|cuando|donde|porque|nuestro|nuestra|quiero|hacer|tiene|está|más|también|anuncio|vídeo|video|cliente|empresa)\b/gi;
23
- /** Languages an accent can name, with the words that would justify asking for one. */
24
- const FOREIGN_LANGUAGES = [
25
- {
26
- name: "English",
27
- accent: /\b(english|british|american|uk|usa|australian|irish|scottish)\b/i,
28
- justification: /\b(ingl[ée]s|inglesa|uk|reino unido|brit[áa]nic|estados unidos|usa|americano|irlanda|australia)\b/i,
29
- },
30
- {
31
- name: "German",
32
- accent: /\b(german|austrian|deutsch)\b/i,
33
- justification: /\b(alem[áa]n|alemana|alemania|austria)\b/i,
34
- },
35
- { name: "French", accent: /\b(french|parisian)\b/i, justification: /\b(franc[ée]s|francesa|francia)\b/i },
36
- {
37
- name: "Dutch",
38
- accent: /\b(dutch|netherlands|flemish)\b/i,
39
- justification: /\b(holand[ée]s|neerland[ée]s|pa[íi]ses bajos|holanda|b[ée]lgica)\b/i,
40
- },
41
- { name: "Italian", accent: /\b(italian)\b/i, justification: /\b(italiano|italiana|italia)\b/i },
42
- { name: "Portuguese", accent: /\b(portuguese|brazilian)\b/i, justification: /\b(portugu[ée]s|portugal|brasil)\b/i },
43
- ];
44
- /** Enough Spanish function words that the user is plainly writing Spanish. */
45
- const SPANISH_CONFIDENCE = 3;
46
- function writesSpanish(text) {
47
- return (text.match(SPANISH_MARKERS) ?? []).length >= SPANISH_CONFIDENCE;
48
- }
8
+ export const ACCENT_WRITTEN_IN_QUESTION = "`accent` is how an ad's presenter will speak. Is `conversation` written in the language `accent` names? " +
9
+ "Any regional accent of that language counts.";
10
+ export const ACCENT_ASKED_FOR_QUESTION = "`accent` is how an ad's presenter will speak. Does `conversation` ask for the ad or presenter in the language " +
11
+ "`accent` names, or for a country, region or market where that language is spoken? Asking for how the " +
12
+ "presenter should look (a European, Nordic, Asian, Mediterranean or American look) is not asking for a language.";
13
+ export const ACCENT_COMPANY_LANGUAGE_QUESTION = "`accent` is how an ad's presenter will speak. `company` is the company's own description of itself. " +
14
+ "Is `company` written in the language `accent` names? Any regional accent of that language counts.";
15
+ export const ACCENT_NAMES_LANGUAGE_QUESTION = "Does `accent` name a language, a country or a regional accent?";
16
+ /** Each answer is a yes at or above this. Measured in `scripts/avatar-guard-evals`. */
17
+ export const ACCENT_HELD = 0.5;
18
+ /** The most of the conversation read, from its end: the latest turns carry the decision. */
19
+ const CONVERSATION_CHARS = 12_000;
20
+ /** The most of the company's Knowledge read, from its start: enough to tell its language. */
21
+ const COMPANY_CHARS = 4_000;
22
+ const readCompanyFile = async () => {
23
+ const read = await runtimeFileStore.readText(bridgeRuntimeFiles.companyFile());
24
+ return read.ok ? read.value : undefined;
25
+ };
49
26
  /** The `--accent` value in a `baker avatars create|update` command, if it has one. */
50
27
  export function accentFrom(command) {
51
28
  if (!/\bbaker\s+avatars\s+(create|update)\b/.test(command))
@@ -54,7 +31,7 @@ export function accentFrom(command) {
54
31
  return match ? (match[2] ?? match[3] ?? match[4] ?? null) : null;
55
32
  }
56
33
  /** The refusal, or null when the accent is consistent with what the user asked for. */
57
- export function accentContradictsUser(command, userText,
34
+ export async function accentContradictsUser(command, userText,
58
35
  /**
59
36
  * What the user said EARLIER in the same conversation.
60
37
  *
@@ -63,24 +40,38 @@ export function accentContradictsUser(command, userText,
63
40
  * the UK, in English" — and writes the next in Spanish had their own decision refused,
64
41
  * with nothing they could type to get past it short of repeating themselves every time.
65
42
  */
66
- priorUserText) {
67
- const said = [priorUserText ?? "", userText ?? ""].join(" ").trim();
68
- if (!command || !said || !writesSpanish(said))
43
+ priorUserText, judge, companyText = readCompanyFile) {
44
+ const said = [priorUserText ?? "", userText ?? ""].join("\n").trim().slice(-CONVERSATION_CHARS);
45
+ const accent = command ? accentFrom(command) : null;
46
+ if (!accent || !said)
47
+ return null;
48
+ const company = (await companyText())?.trim().slice(0, COMPANY_CHARS);
49
+ if (!company)
69
50
  return null;
70
- const accent = accentFrom(command);
71
- if (!accent)
51
+ const answers = await judge([
52
+ ...[ACCENT_WRITTEN_IN_QUESTION, ACCENT_ASKED_FOR_QUESTION, ACCENT_NAMES_LANGUAGE_QUESTION].map((question) => ({
53
+ instructions: { accent, conversation: said, question },
54
+ })),
55
+ { instructions: { accent, company, question: ACCENT_COMPANY_LANGUAGE_QUESTION } },
56
+ ]);
57
+ const [writtenIn, askedFor, namesLanguage, companyWritesIt] = answers ?? [];
58
+ if (writtenIn === undefined ||
59
+ askedFor === undefined ||
60
+ namesLanguage === undefined ||
61
+ companyWritesIt === undefined) {
62
+ return null;
63
+ }
64
+ if (writtenIn >= ACCENT_HELD ||
65
+ askedFor >= ACCENT_HELD ||
66
+ companyWritesIt >= ACCENT_HELD ||
67
+ namesLanguage < ACCENT_HELD) {
72
68
  return null;
73
- for (const language of FOREIGN_LANGUAGES) {
74
- if (!language.accent.test(accent))
75
- continue;
76
- if (language.justification.test(said))
77
- return null;
78
- return (`Blocked: --accent "${accent}" makes this avatar speak ${language.name}, and the user is writing to you in ` +
79
- `Spanish without asking for ${language.name} anywhere. --accent sets the LANGUAGE of every clip, not the ` +
80
- `person's looks — "aspecto europeo", "Nordic" and "Mediterranean" describe a FACE and belong in --subject. ` +
81
- `Use the user's own language (e.g. --accent "Spanish from Spain, Madrid accent"). If the ad really is for a ` +
82
- `${language.name}-speaking market, ask them first and say so in the same turn.`);
83
69
  }
84
- return null;
70
+ return (`Blocked: --accent "${accent}" sets the language this avatar speaks, and nothing points to it: it is not the ` +
71
+ `language the user writes to you in, nor one they asked for, nor the language the company's own content is ` +
72
+ `written in. --accent sets the LANGUAGE of every clip, not the person's looks — "aspecto europeo", "Nordic" ` +
73
+ `and "Mediterranean" describe a FACE and belong in --subject. Use the language of the market the ad is for: ` +
74
+ `the user's own, or the company's. If the ad really is for a market that speaks another language, ask them ` +
75
+ `first and say so in the same turn.`);
85
76
  }
86
77
  //# sourceMappingURL=avatar-accent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-accent.js","sourceRoot":"","sources":["../../src/hono/avatar-accent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mFAAmF;AACnF,MAAM,eAAe,GACnB,iKAAiK,CAAC;AAEpK,sFAAsF;AACtF,MAAM,iBAAiB,GAA8D;IACnF;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,kEAAkE;QAC1E,aAAa,EAAE,oGAAoG;KACpH;IACD;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,gCAAgC;QACxC,aAAa,EAAE,2CAA2C;KAC3D;IACD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,wBAAwB,EAAE,aAAa,EAAE,oCAAoC,EAAE;IACzG;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,kCAAkC;QAC1C,aAAa,EAAE,qEAAqE;KACrF;IACD,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,iCAAiC,EAAE;IAC/F,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,6BAA6B,EAAE,aAAa,EAAE,qCAAqC,EAAE;CACpH,CAAC;AAEF,8EAA8E;AAC9E,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,kBAAkB,CAAC;AAC1E,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,IAAI,CAAC,uCAAuC,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,MAAM,KAAK,GAAG,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,qBAAqB,CACnC,OAA2B,EAC3B,QAA4B;AAC5B;;;;;;;GAOG;AACH,aAAsB;IAEtB,MAAM,IAAI,GAAG,CAAC,aAAa,IAAI,EAAE,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,SAAS;QAC5C,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnD,OAAO,CACL,sBAAsB,MAAM,6BAA6B,QAAQ,CAAC,IAAI,sCAAsC;YAC5G,8BAA8B,QAAQ,CAAC,IAAI,+DAA+D;YAC1G,4GAA4G;YAC5G,6GAA6G;YAC7G,GAAG,QAAQ,CAAC,IAAI,+DAA+D,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"avatar-accent.js","sourceRoot":"","sources":["../../src/hono/avatar-accent.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,77 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { accentContradictsUser, accentFrom } from "./avatar-accent.js";
3
- const ASK = "Crea un avatar para un anuncio de TikTok en el que vendamos la instalación de placas solares para ahorrar dinero, con aspecto europeo.";
4
- describe("accentContradictsUser", () => {
5
- it("refuses each of the three accents that shipped from this exact sentence", () => {
6
- for (const accent of [
7
- "Dutch, neutral European accent",
8
- "German, clear and authoritative",
9
- "English from UK, Southern England accent",
10
- ]) {
11
- const refusal = accentContradictsUser(`baker avatars create --name "X" --accent "${accent}"`, ASK);
12
- expect(refusal).toContain("--accent sets the LANGUAGE");
2
+ import { ACCENT_ASKED_FOR_QUESTION, ACCENT_NAMES_LANGUAGE_QUESTION, accentContradictsUser, accentFrom, } from "./avatar-accent.js";
3
+ const CREATE = (accent) => `baker avatars create --name "X" --accent "${accent}"`;
4
+ /** A company whose Knowledge `fitsWhen` never reads as written in the accent's language. */
5
+ const COMPANY = async () => "# Słoneczne Panele\n\nMontujemy panele słoneczne w Polsce.";
6
+ /**
7
+ * A judge that reads every accent as naming a language unless it mentions `noLanguage`, and
8
+ * holds it asked for only when the conversation mentions `marker`. The user never writes in it.
9
+ */
10
+ function fitsWhen(marker, noLanguage = "warm") {
11
+ return async (questions) => questions.map(({ instructions }) => {
12
+ if (instructions.question === ACCENT_NAMES_LANGUAGE_QUESTION) {
13
+ return instructions.accent?.includes(noLanguage) ? 0.02 : 0.9;
14
+ }
15
+ if (instructions.question === ACCENT_ASKED_FOR_QUESTION) {
16
+ return instructions.conversation?.includes(marker) ? 0.9 : 0.1;
13
17
  }
18
+ return 0.05;
14
19
  });
15
- it("allows the user's own language", () => {
16
- expect(accentContradictsUser('baker avatars create --name "X" --accent "Spanish from Spain, Madrid accent"', ASK)).toBeNull();
20
+ }
21
+ describe("accentContradictsUser", () => {
22
+ it("refuses an accent the judge reads as a language nobody asked for, in any language the user writes", async () => {
23
+ const refusal = await accentContradictsUser(CREATE("Swedish, neutral"), "Zrób awatara do reklamy na TikToka o panelach słonecznych, ma wyglądać skandynawsko.", undefined, fitsWhen("po szwedzku"), COMPANY);
24
+ expect(refusal).toContain("--accent sets the LANGUAGE");
25
+ expect(refusal).toContain("the market the ad is for");
17
26
  });
18
- it("allows a foreign language the user actually asked for", () => {
19
- // A Spanish speaker selling into the UK is a real case and must not be blocked.
20
- expect(accentContradictsUser('baker avatars create --name "X" --accent "English from UK"', "Quiero un anuncio para el mercado de UK, en inglés, sobre placas solares")).toBeNull();
27
+ it("lets the command through when the company's Knowledge cannot be read, rather than refuse on a guess", async () => {
28
+ const refusal = await accentContradictsUser(CREATE("Swedish, neutral"), "Zrób awatara do reklamy na TikToka o panelach słonecznych.", undefined, fitsWhen("po szwedzku"), async () => undefined);
29
+ expect(refusal).toBeNull();
21
30
  });
22
- it("stays out of the way when the user is not writing Spanish", () => {
23
- expect(accentContradictsUser('baker avatars create --name "X" --accent "German"', "Create an avatar for a TikTok ad about solar panels")).toBeNull();
31
+ it("allows the language the company's own Knowledge is written in, when the conversation is in another", async () => {
32
+ // An agency member writing in English for a Spanish-market client: the ad is for the
33
+ // client's market, so its presenter speaks the client's language.
34
+ const companyWritesIt = async (questions) => questions.map(({ instructions }) => {
35
+ if (instructions.question === ACCENT_NAMES_LANGUAGE_QUESTION)
36
+ return 0.9;
37
+ return instructions.company?.includes("Clínica dental en Valencia") ? 0.95 : 0.05;
38
+ });
39
+ const refusal = await accentContradictsUser(CREATE("Spanish from Spain"), "UGC ad for our summer promo", undefined, companyWritesIt, async () => "# Sonrisa\n\nClínica dental en Valencia con tres sedes.");
40
+ expect(refusal).toBeNull();
24
41
  });
25
- it("ignores commands that are not creating an avatar", () => {
26
- expect(accentContradictsUser("grep -rn -- --accent docs/", ASK)).toBeNull();
27
- expect(accentContradictsUser(undefined, ASK)).toBeNull();
42
+ it("allows an accent the judge reads as asked for", async () => {
43
+ const refusal = await accentContradictsUser(CREATE("German, standard"), "Reklama jest na rynek niemiecki, awatar ma mówić po niemiecku.", undefined, fitsWhen("po niemiecku"), COMPANY);
44
+ expect(refusal).toBeNull();
28
45
  });
29
- it("reads the accent however it was quoted", () => {
30
- expect(accentFrom('baker avatars create --accent "German, firm"')).toBe("German, firm");
31
- expect(accentFrom("baker avatars update marta --accent='British English'")).toBe("British English");
46
+ it("reads what the user said in an earlier turn on the same footing as this one", async () => {
47
+ // A user who settles the market in one turn and writes the next in Spanish had their
48
+ // own decision refused, with nothing they could type short of repeating it every time.
49
+ const refusal = await accentContradictsUser(CREATE("English from UK, Southern England accent"), "Crea el avatar y empieza con el primer clip.", "La campaña es para UK y el anuncio va en inglés.", fitsWhen("para UK"), COMPANY);
50
+ expect(refusal).toBeNull();
32
51
  });
33
- });
34
- describe("what the user said in an earlier turn", () => {
35
- it("accepts a foreign accent the conversation already established", () => {
36
- // The gate reads the turn in front of it. A user who settles the market in one turn —
37
- // "the campaign is for the UK, in English" — and then writes the next one in Spanish
38
- // got their own decision refused, with nothing they could type to get past it short of
39
- // repeating themselves in every message.
40
- const refusal = accentContradictsUser('baker avatars create --name "X" --accent "English from UK, Southern England accent"', "Crea el avatar y empieza con el primer clip.", "La campaña es para UK y el anuncio va en inglés.");
52
+ it("allows the language the user writes in, which nobody has to ask for", async () => {
53
+ const writesIt = async (questions) => questions.map(({ instructions }) => (instructions.question === ACCENT_ASKED_FOR_QUESTION ? 0.1 : 0.95));
54
+ const refusal = await accentContradictsUser(CREATE("Polish, Warsaw"), "Zrób awatara do reklamy.", undefined, writesIt, COMPANY);
41
55
  expect(refusal).toBeNull();
42
56
  });
43
- it("still refuses when nothing in the conversation asked for it", () => {
44
- const refusal = accentContradictsUser('baker avatars create --name "X" --accent "English from UK, Southern England accent"', "Crea el avatar y empieza con el primer clip.", "Quiero un anuncio de placas solares para el mercado local.");
45
- expect(refusal).toContain("--accent sets the LANGUAGE");
57
+ it("lets an accent that names no language through: it cannot contradict anything", async () => {
58
+ const refusal = await accentContradictsUser(CREATE("warm and friendly"), "Crea un avatar para la clínica dental.", undefined, fitsWhen("nothing asked"), COMPANY);
59
+ expect(refusal).toBeNull();
60
+ });
61
+ it("lets the command through when the judge cannot answer, rather than refuse on a guess", async () => {
62
+ expect(await accentContradictsUser(CREATE("German"), "Hazme un avatar", undefined, async () => null, COMPANY)).toBeNull();
63
+ });
64
+ it("ignores commands that set no accent, without asking the judge", async () => {
65
+ const unreachable = () => Promise.reject(new Error("the judge should not be asked"));
66
+ expect(await accentContradictsUser("grep -rn -- --accent docs/", "Hazme un avatar", undefined, unreachable)).toBeNull();
67
+ expect(await accentContradictsUser('baker avatars create --name "X"', "Hazme un avatar", undefined, unreachable)).toBeNull();
68
+ expect(await accentContradictsUser(undefined, "Hazme un avatar", undefined, unreachable)).toBeNull();
69
+ });
70
+ });
71
+ describe("accentFrom", () => {
72
+ it("reads the accent however it was quoted", () => {
73
+ expect(accentFrom('baker avatars create --accent "German, firm"')).toBe("German, firm");
74
+ expect(accentFrom("baker avatars update marta --accent='British English'")).toBe("British English");
46
75
  });
47
76
  });
48
77
  //# sourceMappingURL=avatar-accent.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-accent.test.js","sourceRoot":"","sources":["../../src/hono/avatar-accent.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,GAAG,GACP,wIAAwI,CAAC;AAE3I,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,KAAK,MAAM,MAAM,IAAI;YACnB,gCAAgC;YAChC,iCAAiC;YACjC,0CAA0C;SAC3C,EAAE,CAAC;YACF,MAAM,OAAO,GAAG,qBAAqB,CAAC,6CAA6C,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;YACnG,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CACJ,qBAAqB,CAAC,8EAA8E,EAAE,GAAG,CAAC,CAC3G,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,gFAAgF;QAChF,MAAM,CACJ,qBAAqB,CACnB,4DAA4D,EAC5D,0EAA0E,CAC3E,CACF,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CACJ,qBAAqB,CACnB,mDAAmD,EACnD,qDAAqD,CACtD,CACF,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,qBAAqB,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5E,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,UAAU,CAAC,8CAA8C,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxF,MAAM,CAAC,UAAU,CAAC,uDAAuD,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,sFAAsF;QACtF,qFAAqF;QACrF,uFAAuF;QACvF,yCAAyC;QACzC,MAAM,OAAO,GAAG,qBAAqB,CACnC,qFAAqF,EACrF,8CAA8C,EAC9C,kDAAkD,CACnD,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,OAAO,GAAG,qBAAqB,CACnC,qFAAqF,EACrF,8CAA8C,EAC9C,4DAA4D,CAC7D,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"avatar-accent.test.js","sourceRoot":"","sources":["../../src/hono/avatar-accent.test.ts"],"names":[],"mappings":"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"}
@@ -11,15 +11,32 @@
11
11
  * before asking anyway — three times, in both casting modes. A rule that survives being
12
12
  * read needs a gate, and `routeToolUse` is the one path every question travels.
13
13
  *
14
- * Its own module so it can be tested as the pure function it is, without the bridge's
15
- * environment having to exist.
14
+ * Read by Jev, so a face asked for in any language or wording is caught, with no list of
15
+ * face words to fall out of date. Its own module, with the judge as a parameter, so it can be
16
+ * tested without the network or the bridge's environment.
16
17
  */
18
+ import type { Judge } from "./jev.ts";
19
+ /**
20
+ * The two questions Jev answers about each question the agent asks, as the user would read
21
+ * it: is it a face pick, and is it about a page. A presenter section on a landing is a photo
22
+ * the user already has, which the casting picker cannot offer, and asked in one question it
23
+ * read as a face pick (0.81). Kept word for word in step with the scaffold's
24
+ * guard-avatar-face-question hook, the same rule one layer in. Re-run
25
+ * `scripts/avatar-guard-evals` after changing either.
26
+ */
27
+ export declare const FACE_PICK_QUESTION: string;
28
+ export declare const ON_A_PAGE_QUESTION = "Does `asked` mention a website, a landing page or a section of a web page?";
29
+ /** At or above, a face pick; below, not about a page. Measured in `scripts/avatar-guard-evals`. */
30
+ export declare const FACE_PICK_HELD = 0.5;
31
+ export declare const ON_A_PAGE_HELD = 0.5;
17
32
  /** What the agent is told when this is refused — names both ways out. */
18
33
  export declare const FACE_QUESTION_MESSAGE: string;
34
+ /** One question as the user would read it: header, question, then each option. Pure. */
35
+ export declare function questionText(question: unknown): string;
19
36
  /**
20
- * Deliberately narrow, because a wrong refusal costs the user a real question: it fires
21
- * only when the text is about a face AND about an avatar or a casting. An avatar's
22
- * accent, its wardrobe, whether to use one at all — all still askable.
37
+ * Whether any question asks the user to pick a face. Each question is put to the judge as
38
+ * two Nouls, all in one request. A wrong refusal costs the user a real question, so a judge that
39
+ * cannot answer lets every question through.
23
40
  */
24
- export declare function asksForAvatarFace(input: Record<string, unknown> | undefined): boolean;
41
+ export declare function asksForAvatarFace(input: Record<string, unknown> | undefined, judge: Judge): Promise<boolean>;
25
42
  //# sourceMappingURL=avatar-face-question.d.ts.map