@yadsh/dsh-qa-surface 0.10.0 → 0.11.0
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.
- package/README.md +251 -12
- package/lib/access/service.js +49 -10
- package/lib/access/service.js.map +1 -1
- package/lib/account-remotes.js +41 -0
- package/lib/account-remotes.js.map +1 -1
- package/lib/accounts/database.js +140 -0
- package/lib/accounts/database.js.map +1 -1
- package/lib/accounts/errors.js.map +1 -1
- package/lib/accounts/service-token.js +103 -0
- package/lib/accounts/service-token.js.map +1 -0
- package/lib/accounts/store.js +291 -5
- package/lib/accounts/store.js.map +1 -1
- package/lib/admin/conversation-log.js +14 -8
- package/lib/admin/conversation-log.js.map +1 -1
- package/lib/admin/permissions.js +5 -0
- package/lib/admin/permissions.js.map +1 -1
- package/lib/admin/quality-store.js +4 -0
- package/lib/admin/quality-store.js.map +1 -1
- package/lib/admin/service.js +173 -0
- package/lib/admin/service.js.map +1 -1
- package/lib/admin/session-log.js +39 -8
- package/lib/admin/session-log.js.map +1 -1
- package/lib/attachment-rules.js +39 -6
- package/lib/attachment-rules.js.map +1 -1
- package/lib/cli.js +83 -1
- package/lib/cli.js.map +1 -1
- package/lib/client/QaAccountsController.js +213 -4
- package/lib/client/QaAccountsController.js.map +1 -1
- package/lib/client/QaSessionController.js +37 -21
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +28 -4
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/admin/QaAdmin.js +9 -1
- package/lib/client/admin/QaAdmin.js.map +1 -1
- package/lib/client/admin/pages/SkillFiles.js +78 -0
- package/lib/client/admin/pages/SkillFiles.js.map +1 -0
- package/lib/client/admin/pages/Users.js +65 -1
- package/lib/client/admin/pages/Users.js.map +1 -1
- package/lib/client/admin/routes.js +8 -1
- package/lib/client/admin/routes.js.map +1 -1
- package/lib/client/admin/styles.js +2 -0
- package/lib/client/admin/styles.js.map +1 -1
- package/lib/client/attachments.js +41 -11
- package/lib/client/attachments.js.map +1 -1
- package/lib/client/components/QaAuthGate.js +19 -10
- package/lib/client/components/QaAuthGate.js.map +1 -1
- package/lib/client/components/QaChangelog.js +27 -0
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/index.js +13 -0
- package/lib/client/index.js.map +1 -1
- package/lib/client/lineage.js +64 -0
- package/lib/client/lineage.js.map +1 -1
- package/lib/client/settings/sections/attachments.js +6 -5
- package/lib/client/settings/sections/attachments.js.map +1 -1
- package/lib/client/settings/sections/notes.js +22 -4
- package/lib/client/settings/sections/notes.js.map +1 -1
- package/lib/client/styles.js +9 -0
- package/lib/client/styles.js.map +1 -1
- package/lib/client/types.js.map +1 -1
- package/lib/client/user-settings/IntegrationTokensPage.js +150 -0
- package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -0
- package/lib/client/user-settings/PasswordSettingsPage.js +48 -0
- package/lib/client/user-settings/PasswordSettingsPage.js.map +1 -0
- package/lib/client/user-settings/SkillCatalog.js +2 -2
- package/lib/client/user-settings/SkillCatalog.js.map +1 -1
- package/lib/client/user-settings/UserSettingsDialog.js +17 -2
- package/lib/client/user-settings/UserSettingsDialog.js.map +1 -1
- package/lib/client/user-settings/copy.js +20 -0
- package/lib/client/user-settings/copy.js.map +1 -1
- package/lib/client.js +2466 -137
- package/lib/client.js.map +1 -1
- package/lib/config-resolvers/attachments.js +6 -5
- package/lib/config-resolvers/attachments.js.map +1 -1
- package/lib/config-resolvers/defaults.js +23 -2
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config-resolvers/integration.js +94 -0
- package/lib/config-resolvers/integration.js.map +1 -0
- package/lib/config-resolvers/notes.js +2 -0
- package/lib/config-resolvers/notes.js.map +1 -1
- package/lib/config.js +72 -0
- package/lib/config.js.map +1 -1
- package/lib/index.js +197 -2
- package/lib/index.js.map +1 -1
- package/lib/integration/answer.js +100 -0
- package/lib/integration/answer.js.map +1 -0
- package/lib/integration/attachments.js +231 -0
- package/lib/integration/attachments.js.map +1 -0
- package/lib/integration/contract.js +53 -0
- package/lib/integration/contract.js.map +1 -0
- package/lib/integration/host-runner.js +243 -0
- package/lib/integration/host-runner.js.map +1 -0
- package/lib/integration/http.js +538 -0
- package/lib/integration/http.js.map +1 -0
- package/lib/integration/service.js +331 -0
- package/lib/integration/service.js.map +1 -0
- package/lib/integration/transcript-reader.js +202 -0
- package/lib/integration/transcript-reader.js.map +1 -0
- package/lib/integration/transcript.js +148 -0
- package/lib/integration/transcript.js.map +1 -0
- package/lib/personal-skills/index.js +2 -2
- package/lib/personal-skills/index.js.map +1 -1
- package/lib/personal-skills/paths.js +14 -8
- package/lib/personal-skills/paths.js.map +1 -1
- package/lib/personal-skills/provider.js +16 -4
- package/lib/personal-skills/provider.js.map +1 -1
- package/lib/personal-skills/service.js +240 -30
- package/lib/personal-skills/service.js.map +1 -1
- package/lib/prompt-notes.js +58 -0
- package/lib/prompt-notes.js.map +1 -1
- package/lib/provenance/document-preview.js +10 -1
- package/lib/provenance/document-preview.js.map +1 -1
- package/lib/qa-tools/catalog.js +12 -1
- package/lib/qa-tools/catalog.js.map +1 -1
- package/lib/qa-tools/docs-tools.js +563 -0
- package/lib/qa-tools/docs-tools.js.map +1 -0
- package/lib/resolve-config.js +4 -0
- package/lib/resolve-config.js.map +1 -1
- package/lib/secure-session.js +83 -3
- package/lib/secure-session.js.map +1 -1
- package/lib/shared/integration-tokens.js +23 -0
- package/lib/shared/integration-tokens.js.map +1 -0
- package/lib/typert.host.js +1176 -213
- package/lib/typert.remote-client.d.ts +27 -1
- package/lib/typert.remote-client.js +911 -69
- package/lib/types/access/service.d.ts +33 -2
- package/lib/types/account-remotes.d.ts +30 -1
- package/lib/types/accounts/database.d.ts +53 -0
- package/lib/types/accounts/errors.d.ts +5 -1
- package/lib/types/accounts/service-token.d.ts +70 -0
- package/lib/types/accounts/store.d.ts +131 -1
- package/lib/types/admin/conversation-log.d.ts +12 -0
- package/lib/types/admin/service.d.ts +56 -1
- package/lib/types/admin/session-log.d.ts +21 -0
- package/lib/types/attachment-rules.d.ts +26 -3
- package/lib/types/client/QaAccountsController.d.ts +64 -5
- package/lib/types/client/QaSessionController.d.ts +24 -2
- package/lib/types/client/admin/pages/SkillFiles.d.ts +17 -0
- package/lib/types/client/admin/routes.d.ts +2 -0
- package/lib/types/client/attachments.d.ts +21 -4
- package/lib/types/client/lineage.d.ts +42 -0
- package/lib/types/client/settings/sections/notes.d.ts +5 -3
- package/lib/types/client/types.d.ts +71 -1
- package/lib/types/client/user-settings/IntegrationTokensPage.d.ts +21 -0
- package/lib/types/client/user-settings/PasswordSettingsPage.d.ts +19 -0
- package/lib/types/client/user-settings/UserSettingsDialog.d.ts +11 -2
- package/lib/types/client/user-settings/copy.d.ts +10 -1
- package/lib/types/config-resolvers/integration.d.ts +47 -0
- package/lib/types/config.d.ts +10 -0
- package/lib/types/index.d.ts +73 -1
- package/lib/types/integration/answer.d.ts +65 -0
- package/lib/types/integration/attachments.d.ts +85 -0
- package/lib/types/integration/contract.d.ts +196 -0
- package/lib/types/integration/host-runner.d.ts +44 -0
- package/lib/types/integration/http.d.ts +79 -0
- package/lib/types/integration/service.d.ts +120 -0
- package/lib/types/integration/transcript-reader.d.ts +100 -0
- package/lib/types/integration/transcript.d.ts +59 -0
- package/lib/types/personal-skills/index.d.ts +2 -2
- package/lib/types/personal-skills/paths.d.ts +15 -3
- package/lib/types/personal-skills/provider.d.ts +14 -2
- package/lib/types/personal-skills/service.d.ts +89 -14
- package/lib/types/prompt-notes.d.ts +28 -0
- package/lib/types/provenance/document-preview.d.ts +4 -0
- package/lib/types/qa-tools/catalog.d.ts +1 -1
- package/lib/types/qa-tools/docs-tools.d.ts +160 -0
- package/lib/types/secure-session.d.ts +52 -1
- package/lib/types/shared/integration-tokens.d.ts +24 -0
- package/lib/types/types.d.ts +170 -2
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -52,7 +52,7 @@ Session and Agent Loop.
|
|
|
52
52
|
(list/add/set-password/set-role/disable/revoke), and a coarse honest boundary:
|
|
53
53
|
accounts identify QA users, they do not fence the harness root;
|
|
54
54
|
- gives each account a `Настройки` dialog — profile, starter messages,
|
|
55
|
-
general, and **personal skills**: ordinary Agent Skills stored as `SKILL.md` in the account's own
|
|
55
|
+
integration tokens, general, and **personal skills**: ordinary Agent Skills stored as `SKILL.md` in the account's own
|
|
56
56
|
directory (`accounts.skills`), edited with a catalog, an invocation-flag
|
|
57
57
|
form, a Markdown body, a tool picker over the deployment's registry, and a
|
|
58
58
|
preview of the exact file a save writes. Skills reach the model through a
|
|
@@ -285,12 +285,13 @@ the plugin's catalog is registered into the agent's own scope only after the
|
|
|
285
285
|
model successfully loads `tools.activationSkill`, and `qa_tools_selfcheck`
|
|
286
286
|
reports the resulting state.
|
|
287
287
|
|
|
288
|
-
As of catalog version
|
|
289
|
-
`qa_tools_selfcheck`, the activation diagnostic
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
288
|
+
As of catalog version 3 the shipped catalog carries four tools:
|
|
289
|
+
`qa_tools_selfcheck`, the activation diagnostic; `docs_search` and
|
|
290
|
+
`docs_read`, the documentation surface; and `file_delete`, the one destructive
|
|
291
|
+
capability — it deletes a single regular file strictly inside the calling
|
|
292
|
+
chat's workspace and refuses directories, missing paths and anything that
|
|
293
|
+
escapes the root, symlink escapes included, with an explicit reason that never
|
|
294
|
+
echoes a host path. Every `file_delete` call is answered `ask` by an
|
|
294
295
|
inner gate that sits inside the approval flow, so on a deployment with
|
|
295
296
|
`interaction.approvals: interactive` the interactive approval card parks the
|
|
296
297
|
call for the operator, and on `blocked` the call is refused outright: nothing
|
|
@@ -299,6 +300,22 @@ dynamic name at execution time — it needs no `lockdown.toolPolicy` entry —
|
|
|
299
300
|
and a role-managed deployment grants it through the same Tools baskets as any
|
|
300
301
|
other tool.
|
|
301
302
|
|
|
303
|
+
`docs_search` and `docs_read` are the documentation surface. Documentation is
|
|
304
|
+
published into the `docs/` directory of the chat's workspace and the tools read
|
|
305
|
+
exactly that tree: `docs_search` matches a phrase inside single lines and
|
|
306
|
+
reports every hit with its path and line number, tagged with the module and
|
|
307
|
+
version parsed out of the layout `docs/<module>/<version>/…`; both names are
|
|
308
|
+
also accepted as filters, so a chat that was told "3.8" stops sweeping every
|
|
309
|
+
edition, and `path` narrows a search to one subtree. `docs_read` opens one file
|
|
310
|
+
at a bounded window of lines. Both stay inside the tree — a path outside it, a
|
|
311
|
+
`docs/` that is missing or is not a real directory, a directory passed to a
|
|
312
|
+
read, a binary file and a link that leaves the tree are refused with an
|
|
313
|
+
explicit reason that never echoes a host path — and both bound what they
|
|
314
|
+
return: `limit` and a byte budget on the reported hits, a line budget on a
|
|
315
|
+
read, and a truncated answer says so instead of quietly dropping matches. The
|
|
316
|
+
tool descriptions carry the routing rule the catalog exists for: documentation
|
|
317
|
+
is looked up here, not in memory and not by sweeping guessed paths.
|
|
318
|
+
|
|
302
319
|
The trigger is the authoritative result of the built-in `skill` tool, not the
|
|
303
320
|
model's attempt, not a keyword in the transcript, and not a coincidentally
|
|
304
321
|
matching skill description. A failed or refused load activates nothing, loading
|
|
@@ -462,11 +479,15 @@ in. See
|
|
|
462
479
|
[Configuration](https://github.com/xarleyn/dsh-plugins/blob/main/plugins/dsh-qa-surface/docs/CONFIGURATION.md)
|
|
463
480
|
for the limits and the prompt's exact wording.
|
|
464
481
|
|
|
465
|
-
The wording of that note — and of the source-provenance
|
|
466
|
-
notes — is editable without touching
|
|
467
|
-
of the settings card (the `notes`
|
|
468
|
-
its text, keeping the generated parts
|
|
469
|
-
`{reportTool}`) as placeholders.
|
|
482
|
+
The wording of that note — and of the source-provenance, delegation-naming and
|
|
483
|
+
attached-documents and source-priority notes — is editable without touching
|
|
484
|
+
the source: the «Заметки модели» section of the settings card (the `notes`
|
|
485
|
+
config block) mutes each note and rewords its text, keeping the generated parts
|
|
486
|
+
(`{identity}`, `{instructions}`, `{reportTool}`) as placeholders. The
|
|
487
|
+
attached-documents note is the one that sends a `.docx` or `.pdf` from the chat
|
|
488
|
+
to the document pipeline instead of the plain file reader, which refuses those
|
|
489
|
+
formats as binary. The source-priority note is the one that says an answer
|
|
490
|
+
belongs to the documentation or the expert before it belongs to memory.
|
|
470
491
|
|
|
471
492
|
### Starter messages
|
|
472
493
|
|
|
@@ -481,6 +502,26 @@ is pure UI preference — none of it reaches the agent prompt.
|
|
|
481
502
|
`accounts.starters.enabled` (default `true`) turns the section off for
|
|
482
503
|
deployments that want the buttons to stay operator-defined.
|
|
483
504
|
|
|
505
|
+
### Integration tokens
|
|
506
|
+
|
|
507
|
+
The same `Настройки` dialog carries an «Интеграционные токены» section, so the
|
|
508
|
+
account that runs an integration issues and revokes its own credential instead
|
|
509
|
+
of asking the operator to run the CLI. It lists the tokens that account owns —
|
|
510
|
+
label, scopes, creation and expiry dates, use count and last use — mints a new
|
|
511
|
+
one, shows its secret exactly once (with a copy button and the warning that it
|
|
512
|
+
is never recoverable, because only the digest is stored), and revokes one with
|
|
513
|
+
a second confirming click. A revoked or expired token stays in the list as a
|
|
514
|
+
record, with its revoke button gone.
|
|
515
|
+
|
|
516
|
+
Creating is offered only where the credential has somewhere to go: with
|
|
517
|
+
`integration.enabled: false` the section explains that the API is off and hides
|
|
518
|
+
the form, while listing and revoking keep working — a credential that already
|
|
519
|
+
exists has to remain revocable. The section is part of the accounts domain, so
|
|
520
|
+
it appears wherever `accounts.enabled` is on, and the same self-service rules
|
|
521
|
+
apply: the token always belongs to the signed-in account, and one account never
|
|
522
|
+
sees another's tokens. The CLI (`qa-accounts token create|list|revoke`) remains
|
|
523
|
+
the operator's path, including issuing a token for somebody else.
|
|
524
|
+
|
|
484
525
|
Session policies:
|
|
485
526
|
|
|
486
527
|
- `browser-persistent` restores the id stored in this browser, replacing stale
|
|
@@ -995,6 +1036,204 @@ boundary. Review material is the most sensitive data the package handles, so
|
|
|
995
1036
|
tool arguments and results are bounded previews with credential shapes masked,
|
|
996
1037
|
behind a redactor a deployment can replace.
|
|
997
1038
|
|
|
1039
|
+
## Integration API (HTTP)
|
|
1040
|
+
|
|
1041
|
+
Another application — a ticket-system bridge, a bot, a script — can ask the same
|
|
1042
|
+
assistant questions over HTTP, with its own credential instead of a browser
|
|
1043
|
+
session, and read its own conversations back. The endpoints are **off by
|
|
1044
|
+
default**.
|
|
1045
|
+
|
|
1046
|
+
```yaml
|
|
1047
|
+
integration:
|
|
1048
|
+
enabled: true # requires accounts.enabled: true
|
|
1049
|
+
basePath: /qa/api # POST {basePath}/ask, GET {basePath}/session, GET {basePath}/health
|
|
1050
|
+
tokenTtlDays: 90
|
|
1051
|
+
requestTimeoutMs: 90000
|
|
1052
|
+
maxConcurrent: 4
|
|
1053
|
+
requestsPerMinute: 60
|
|
1054
|
+
maxAnswerCharacters: 4096 # the answer the ticket comment can hold
|
|
1055
|
+
```
|
|
1056
|
+
|
|
1057
|
+
The API needs accounts: a caller is an account, and the credential it presents
|
|
1058
|
+
is that account's integration token. Switching it on without
|
|
1059
|
+
`accounts.enabled: true` is refused at configuration time rather than served
|
|
1060
|
+
without authentication.
|
|
1061
|
+
|
|
1062
|
+
### Issuing a token
|
|
1063
|
+
|
|
1064
|
+
```bash
|
|
1065
|
+
# the secret is printed exactly once and is never recoverable
|
|
1066
|
+
qa-accounts token create bridge@example.corp --label "ticket bridge" --scopes ask --days 90
|
|
1067
|
+
qa-accounts token list bridge@example.corp # ids, scopes, expiry, last use
|
|
1068
|
+
qa-accounts token revoke bridge@example.corp <token-id>
|
|
1069
|
+
```
|
|
1070
|
+
|
|
1071
|
+
An integration token is a **separate credential** from the browser token:
|
|
1072
|
+
|
|
1073
|
+
- it survives a password change, because a service that is already integrated
|
|
1074
|
+
must not be logged out by a person editing their own profile;
|
|
1075
|
+
- it stores only a SHA-256 digest of its secret, so a copied database is not a
|
|
1076
|
+
copied credential;
|
|
1077
|
+
- it carries scopes (`ask`, `sessions:read`), an independent expiry and its own
|
|
1078
|
+
revocation;
|
|
1079
|
+
- it stops with the account: disabling the account refuses it, and
|
|
1080
|
+
`qa-accounts revoke <email>` revokes it together with every browser session.
|
|
1081
|
+
|
|
1082
|
+
Use one token per integration and revoke it when the integration is retired.
|
|
1083
|
+
Treat the secret like a password: it is a bearer credential with no second
|
|
1084
|
+
factor.
|
|
1085
|
+
|
|
1086
|
+
### Asking a question
|
|
1087
|
+
|
|
1088
|
+
```bash
|
|
1089
|
+
curl -sS https://dsh.example.local/qa/api/ask \
|
|
1090
|
+
-H "Authorization: Bearer qsat.<id>.<secret>" \
|
|
1091
|
+
-H "Content-Type: application/json" \
|
|
1092
|
+
-d '{
|
|
1093
|
+
"message": "TEST получения задач для ИИ Агента\n\nКомпоненты: MDC",
|
|
1094
|
+
"version": "3.8",
|
|
1095
|
+
"session_id": null,
|
|
1096
|
+
"context": {
|
|
1097
|
+
"ticket_key": "PROJ-123",
|
|
1098
|
+
"reporter": "user@example.corp",
|
|
1099
|
+
"reporter_name": "Демо-пользователь"
|
|
1100
|
+
}
|
|
1101
|
+
}'
|
|
1102
|
+
```
|
|
1103
|
+
|
|
1104
|
+
```json
|
|
1105
|
+
{
|
|
1106
|
+
"chat_id": "session-1f0c…",
|
|
1107
|
+
"answer": "**Ответ**\n\nТекст ответа в Markdown…",
|
|
1108
|
+
"sources": ["Документация_v3.8.pdf#стр.12"],
|
|
1109
|
+
"confidence": "medium",
|
|
1110
|
+
"escalate": false,
|
|
1111
|
+
"reason": ""
|
|
1112
|
+
}
|
|
1113
|
+
```
|
|
1114
|
+
|
|
1115
|
+
Send `chat_id` back as `session_id` to continue the same conversation. The chat
|
|
1116
|
+
belongs to the token's account: a token can only continue chats its own account
|
|
1117
|
+
owns, and a chat an integration opened keeps its own workspace, subrole and
|
|
1118
|
+
capability snapshot like any other QA chat.
|
|
1119
|
+
|
|
1120
|
+
`multipart/form-data` is accepted with the same fields (`message`, `version`,
|
|
1121
|
+
`session_id`, `context` as a JSON **string**) plus repeated `files` parts (at
|
|
1122
|
+
most five, 10 MiB each by default).
|
|
1123
|
+
|
|
1124
|
+
| Attachment | What the model receives |
|
|
1125
|
+
| --- | --- |
|
|
1126
|
+
| `image/png`, `image/jpeg`, `image/webp`, `image/gif` | the image itself |
|
|
1127
|
+
| `text/plain`, `text/csv`, `text/markdown` | its text, under a heading with the file name |
|
|
1128
|
+
| `application/pdf`, Word, Excel, PowerPoint | text extracted by the deployment's document pipeline |
|
|
1129
|
+
| anything else | `415` — the fallback the bridge already implements |
|
|
1130
|
+
|
|
1131
|
+
A file the Host cannot read refuses the whole question with `415` rather than
|
|
1132
|
+
being skipped: an answer produced without the material it was asked about is
|
|
1133
|
+
worse than asking again without it. Documents need the `documents` plugin
|
|
1134
|
+
installed; without it PDF and Office attachments take the same `415` path, and
|
|
1135
|
+
images and text keep working. Attachments are read, not stored: the bytes live
|
|
1136
|
+
in a temporary directory for the length of one extraction, and the text is
|
|
1137
|
+
bounded (60 000 characters per file, 120 000 per question, truncated with a
|
|
1138
|
+
marker). Everything the bridge's own filter lets through is accepted; archives,
|
|
1139
|
+
executables and media are not.
|
|
1140
|
+
|
|
1141
|
+
A `answer` longer than `maxAnswerCharacters` is cut before it is published, at
|
|
1142
|
+
the last paragraph break (then the last line, then the last sentence) and marked
|
|
1143
|
+
with an ellipsis, so the ticket shows a readable head instead of a comment the
|
|
1144
|
+
ticket system silently truncates mid-sentence. The cut is logged with the chat
|
|
1145
|
+
id; it is still a normal answer, not an escalation.
|
|
1146
|
+
|
|
1147
|
+
`confidence` is `medium` for a published answer and `low` for an escalated one.
|
|
1148
|
+
`high` is deliberately never claimed: nothing in the deployment judges an
|
|
1149
|
+
answer, and a field that always said `high` would train the operator to ignore
|
|
1150
|
+
it. `escalate: true` means the assistant produced nothing publishable — an
|
|
1151
|
+
interrupted turn, an empty answer, or a question that did not finish inside
|
|
1152
|
+
`requestTimeoutMs` (the `chat_id` is still returned, so a retry continues the
|
|
1153
|
+
same chat instead of starting a second one).
|
|
1154
|
+
|
|
1155
|
+
### Reading a conversation back
|
|
1156
|
+
|
|
1157
|
+
```bash
|
|
1158
|
+
# after=0 reads from the start; limit is clamped to 200
|
|
1159
|
+
curl -sS 'https://dsh.example.local/qa/api/session?chat_id=session-1f0c…&after=0&limit=50' \
|
|
1160
|
+
-H "Authorization: Bearer qsat.<id>.<secret>"
|
|
1161
|
+
# {"chat_id":"session-1f0c…",
|
|
1162
|
+
# "messages":[{"seq":1,"role":"user","text":"…","at":"2026-09-21T10:00:00.000Z"},
|
|
1163
|
+
# {"seq":2,"role":"assistant","text":"**Ответ**…","at":null}],
|
|
1164
|
+
# "last_seq":2,"truncated":false}
|
|
1165
|
+
```
|
|
1166
|
+
|
|
1167
|
+
This is what the `sessions:read` scope is for, and it is a separate scope rather
|
|
1168
|
+
than part of `ask`: a bridge that escalates a ticket, or opens the question in a
|
|
1169
|
+
review screen for a specialist, has to show what was already said. Without the
|
|
1170
|
+
endpoint such a bridge could only ask the same question again — spending a turn
|
|
1171
|
+
to answer a question that already has an answer.
|
|
1172
|
+
|
|
1173
|
+
The read is the same conversation the account owns, in the same words: `text`
|
|
1174
|
+
is the flattening the answer itself uses, so a message reads the same whether it
|
|
1175
|
+
was received as an answer or fetched here. Only the prompts the person sent and
|
|
1176
|
+
the assistant's answers are published — injected context, reasoning and tool
|
|
1177
|
+
traffic are not, because those are model input the caller never wrote.
|
|
1178
|
+
|
|
1179
|
+
`after` is the caller's own cursor: pass the `last_seq` of the previous read,
|
|
1180
|
+
and the next call returns only what was written since. `limit` bounds the page
|
|
1181
|
+
(default 50, at most 200) and the window is always the **newest** messages, so a
|
|
1182
|
+
long conversation costs one page rather than one transcript per call; when older
|
|
1183
|
+
messages were left below the window, `truncated` says so. `at` is the instant
|
|
1184
|
+
the log recorded, or `null` when it recorded none — a timestamp is never
|
|
1185
|
+
invented.
|
|
1186
|
+
|
|
1187
|
+
An unknown `chat_id` and another account's chat answer the same `404`, so an id
|
|
1188
|
+
alone never confirms that somebody else's conversation exists.
|
|
1189
|
+
|
|
1190
|
+
Reading is cheap enough to poll: the newest messages of a conversation are kept
|
|
1191
|
+
warm, and a chat this Host is holding is checked against its own memory, so a
|
|
1192
|
+
page costs neither a stored read nor a walk through the whole history — a page
|
|
1193
|
+
of a long conversation is a page. The first read of an old chat is the
|
|
1194
|
+
expensive one, and a chat this Host does not hold is re-read after 30 seconds at
|
|
1195
|
+
the latest, which is the same budget the review console gives its transcripts.
|
|
1196
|
+
|
|
1197
|
+
### Health
|
|
1198
|
+
|
|
1199
|
+
```bash
|
|
1200
|
+
curl -sS https://dsh.example.local/qa/api/health \
|
|
1201
|
+
-H "Authorization: Bearer qsat.<id>.<secret>"
|
|
1202
|
+
# {"ok":true,"version":"0.11.0","models":["gpt-4o-mini"],"uptime_s":86400}
|
|
1203
|
+
```
|
|
1204
|
+
|
|
1205
|
+
### Statuses
|
|
1206
|
+
|
|
1207
|
+
| Status | Meaning |
|
|
1208
|
+
| --- | --- |
|
|
1209
|
+
| 200 | Answered, or escalated with an empty `answer` |
|
|
1210
|
+
| 400 | Malformed body (no `message`, broken JSON or `context`), a missing `chat_id`, or a cursor that is not a whole number |
|
|
1211
|
+
| 401 | Missing, expired, revoked or unknown token |
|
|
1212
|
+
| 403 | Valid token without the scope the call needs (`ask`, `sessions:read`) |
|
|
1213
|
+
| 404 | A chat the token's account does not own (or that does not exist); also `integration.enabled` is false: no route is registered, and the request reaches whatever the deployment serves for unknown paths |
|
|
1214
|
+
| 413 | Body or attachment over the configured limit |
|
|
1215
|
+
| 415 | Unsupported content type, or a non-image attachment |
|
|
1216
|
+
| 429 | Per-token rate limit or the deployment's concurrency limit |
|
|
1217
|
+
| 503 | The QA assistant failed before it could answer; retry |
|
|
1218
|
+
|
|
1219
|
+
Response bodies carry `{ "error": "…", "code": "…" }` with the same reason
|
|
1220
|
+
vocabulary, so a client can branch on the code instead of parsing prose.
|
|
1221
|
+
|
|
1222
|
+
### What to watch
|
|
1223
|
+
|
|
1224
|
+
- Every request that reaches a turn is logged on the Host with the token id,
|
|
1225
|
+
the chat id and the ticket key — never the question or the answer. A read is
|
|
1226
|
+
logged the same way, with the cursor it asked from and the number of messages
|
|
1227
|
+
it got.
|
|
1228
|
+
- `maxConcurrent` bounds how much of the deployment a bridge can occupy;
|
|
1229
|
+
`requestsPerMinute` bounds one token. Both answer `429`, which retries well.
|
|
1230
|
+
- `maxAnswerCharacters` bounds one answer. A question that produced more is
|
|
1231
|
+
logged as truncated, with the chat id and the published length — never the
|
|
1232
|
+
text.
|
|
1233
|
+
- The endpoint is a network surface: publish it only where the integration
|
|
1234
|
+
runs, keep TLS in front of it, and remember that the token's scopes are the
|
|
1235
|
+
only limits on what it can ask.
|
|
1236
|
+
|
|
998
1237
|
## Security and deployment
|
|
999
1238
|
|
|
1000
1239
|
`/qa` is a presentation boundary, not an authentication boundary. Protect it
|
package/lib/access/service.js
CHANGED
|
@@ -369,7 +369,24 @@ export class QaAccessService {
|
|
|
369
369
|
}
|
|
370
370
|
reserveSession(token, sessionId, requestedSubrole, adminPreview) {
|
|
371
371
|
const accounts = this.requireAccounts();
|
|
372
|
-
|
|
372
|
+
return this.reserveForUser(accounts.currentUser(token), sessionId, requestedSubrole, adminPreview);
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* The same reservation for a chat opened by an already-authenticated
|
|
376
|
+
* account — the integration API's path. The subrole is the account's own
|
|
377
|
+
* default: an external caller is never offered a choice of capabilities,
|
|
378
|
+
* and an administrator's preview flag stays a browser-only affordance.
|
|
379
|
+
*
|
|
380
|
+
* @param user - the account the chat belongs to.
|
|
381
|
+
* @param sessionId - the Host-generated session id to reserve.
|
|
382
|
+
* @returns the account, as the browser path returns it.
|
|
383
|
+
*/
|
|
384
|
+
reserveSessionForUser(user, sessionId) {
|
|
385
|
+
this.requireAccounts();
|
|
386
|
+
return this.reserveForUser(user, sessionId, null, false);
|
|
387
|
+
}
|
|
388
|
+
reserveForUser(user, sessionId, requestedSubrole, adminPreview) {
|
|
389
|
+
const accounts = this.requireAccounts();
|
|
373
390
|
const config = this.roles.snapshot();
|
|
374
391
|
const assignment = normalizeUserAccess(accounts.accessOf(user.id), config);
|
|
375
392
|
const selected = requestedSubrole ?? assignment.defaultSubrole;
|
|
@@ -384,7 +401,7 @@ export class QaAccessService {
|
|
|
384
401
|
else if (!assignment.allowedSubroles.includes(selected)) {
|
|
385
402
|
throw new QaAccountsError("invalid-role", "this QA subrole is not assigned to the account");
|
|
386
403
|
}
|
|
387
|
-
const owner = accounts.
|
|
404
|
+
const owner = accounts.reserveSessionForUser(user, sessionId, {
|
|
388
405
|
subroleId: selected,
|
|
389
406
|
...(adminPreview ? { adminPreview: true } : {}),
|
|
390
407
|
});
|
|
@@ -395,16 +412,25 @@ export class QaAccessService {
|
|
|
395
412
|
this.maybeSweepDelegatedSessions();
|
|
396
413
|
return owner;
|
|
397
414
|
}
|
|
398
|
-
|
|
415
|
+
/**
|
|
416
|
+
* The policy of one session, addressed by its authenticated account.
|
|
417
|
+
*
|
|
418
|
+
* Split from {@link policyForSession} so the integration API — whose caller
|
|
419
|
+
* proved an account with a service token instead of a browser one — freezes
|
|
420
|
+
* exactly the same capability snapshot. What the two entry points share is
|
|
421
|
+
* everything after identity; the identity check itself is the only part that
|
|
422
|
+
* differs, and it stays with whoever holds the credential.
|
|
423
|
+
*
|
|
424
|
+
* @param owner - the account that owns the session, or undefined when the
|
|
425
|
+
* deployment has no accounts service at all.
|
|
426
|
+
* @param sessionId - the session being admitted.
|
|
427
|
+
* @param agent - its live agent, for the tool catalog the policy resolves against.
|
|
428
|
+
* @returns the policy, or undefined without an accounts service.
|
|
429
|
+
*/
|
|
430
|
+
async policyForSessionOwner(owner, sessionId, agent) {
|
|
399
431
|
const accounts = this.options.accounts();
|
|
400
|
-
if (accounts === undefined)
|
|
432
|
+
if (accounts === undefined || owner === undefined)
|
|
401
433
|
return undefined;
|
|
402
|
-
const owner = accounts.ensureSessionAccess(token, sessionId, {
|
|
403
|
-
createdAt: agent.session.header.createdAt,
|
|
404
|
-
...(agent.session.header.parentSession === undefined
|
|
405
|
-
? {}
|
|
406
|
-
: { hasParent: true }),
|
|
407
|
-
});
|
|
408
434
|
let record = accounts.sessionAccess(sessionId);
|
|
409
435
|
const config = this.roles.snapshot();
|
|
410
436
|
const assignment = normalizeUserAccess(accounts.accessOf(owner.id), config);
|
|
@@ -457,6 +483,19 @@ export class QaAccessService {
|
|
|
457
483
|
}),
|
|
458
484
|
};
|
|
459
485
|
}
|
|
486
|
+
/** The browser's entry point: the token resolves the owning account. */
|
|
487
|
+
async policyForSession(token, sessionId, agent) {
|
|
488
|
+
const accounts = this.options.accounts();
|
|
489
|
+
if (accounts === undefined)
|
|
490
|
+
return undefined;
|
|
491
|
+
const owner = accounts.ensureSessionAccess(token, sessionId, {
|
|
492
|
+
createdAt: agent.session.header.createdAt,
|
|
493
|
+
...(agent.session.header.parentSession === undefined
|
|
494
|
+
? {}
|
|
495
|
+
: { hasParent: true }),
|
|
496
|
+
});
|
|
497
|
+
return this.policyForSessionOwner(owner, sessionId, agent);
|
|
498
|
+
}
|
|
460
499
|
/** Activation history of one session, for review and quality analysis. */
|
|
461
500
|
skillActivations(token, sessionId) {
|
|
462
501
|
const { accounts } = this.requireAdmin(token);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/access/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/access/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,8EAA8E;AAC9E,6CAA6C;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,iBAAiB,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAoB5E,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,wEAAwE;AACxE,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAgBlC,SAAS,sBAAsB,CAAC,MAA0B;IAIxD,OAAO;QACL,KAAK,EAAE;YACL,GAAG,IAAI,GAAG,CAAC;gBACT,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;gBAC7B,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc;gBACrC,gEAAgE;gBAChE,oEAAoE;gBACpE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;oBAC/C,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM;oBAC5B,GAAG,YAAY,CAAC,KAAK,CAAC,cAAc;oBACpC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;iBACnC,CAAC;aACH,CAAC;SACH;QACD,MAAM,EAAE;YACN,GAAG,IAAI,GAAG,CAAC;gBACT,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM;gBACvB,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;aACtE,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CACrB,MAA0B,EAC1B,QAAgD,EAChD,KAA0B;IAE1B,OAAO,UAAU,CAAC,MAAM,CAAC;SACtB,MAAM,CACL,IAAI,CAAC,SAAS,CAAC;QACb,MAAM;QACN,CAAC,GAAG,QAAQ,CAAC;aACV,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI;YACJ,UAAU,CAAC,QAAQ;YACnB,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,UAAU;SACtB,CAAC;QACJ,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE;KAClB,CAAC,CACH;SACA,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAmB,EACnB,MAA0B;IAE1B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IACpD,IACE,OAAO,CAAC,MAAM,KAAK,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EACvC,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,sEAAsE,CACvE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QACvC,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CACnB,MAAmC;IAEnC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACjD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3D,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3D,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvD,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC;gBAClC,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB;aACvC,CAAC;YACF,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACzE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7D,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7D,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACzD,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAClE,CAAC;QACF,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACrD,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACvD,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAmC,EACnC,OAAkC;IAElC,MAAM,IAAI,GAAG,CAAC,MAAyB,EAAE,EAAE,CACzC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,CAAC,MAAyB,EAAE,EAAE,CAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,CAAC,MAAyB,EAAE,EAAE,CAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,YAAY,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACzB,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QAC3C,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QACjC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;QACvC,OAAO,EAAE;YACP,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YAC7C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YAC7C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YACzC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC/D,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC3D,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YACrD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YACrD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;YACjD,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;SAC1D;QACD,YAAY,EAAE;YACZ,GAAG,IAAI,GAAG,CAAC;gBACT,GAAG,MAAM,CAAC,YAAY;gBACtB,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CACnD,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CACjC;aACF,CAAC;SACH;QACD,aAAa,EAAE;YACb,GAAG,IAAI,GAAG,CAAC;gBACT,GAAG,MAAM,CAAC,aAAa;gBACvB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAC3D,CAAC;SACH;QACD,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,MAAM,OAAO,eAAe;IAiBP,GAAG;IACH,OAAO;IAjBjB,KAAK,CAAmB;IACxB,OAAO,CAAsB;IAC9B,oBAAoB,GAAG,CAAC,CAAC;IACjC,4EAA4E;IACpE,cAAc,CAA4B;IAClD;;;;;OAKG;IACc,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/C,oBAAoB,GAAG,CAAC,CAAC;IACzB,cAAc,CAA4B;IAElD,YACmB,GAAY,EACZ,OA4BhB;mBA7BgB,GAAG;uBACH,OAAO;QA8BxB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,gBAAgB,EAAE,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CACpC,GAAG,EACH,OAAO,CAAC,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EACtC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EACxD,OAAO,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,SAAiB;QAChC,OAAO,CACL,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,KAAK,IAAI;YAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CACtC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,SAAiB;QACpC,wEAAwE;QACxE,mBAAmB;QACnB,MAAM,QAAQ,GACZ,IAAI,CAAC,GAYN,CAAC,QAAQ,CAAC;QACX,MAAM,MAAM,GAAG,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC;QAC3D,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACpC,OAAO;YACL,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;gBAChC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;YACpC,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,sBAAsB;QACpB,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAC5D,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3D,IAAI,CAAC,SAAS,CAAC,qBAAqB;YAAE,OAAO;QAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,oBAAoB,GAAG,MAAM,CAAC;QACzD,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,GAAG,QAAQ,EAAE,CAAC;YACtE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,oEAAoE;gBACpE,qDAAqD;gBACrD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;oBAC5D,MAAM,EAAE,4BAA4B;iBACrC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,qBAAqB,CAC5C,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EACnC,SAAS,CAAC,mBAAmB,CAC9B,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACpD,KAAK,EAAE,OAAO,CAAC,MAAM;gBACrB,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACjC,CAAC,CAAC;YACH,wEAAwE;YACxE,oCAAoC;YACpC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2DAA2D;YAC3D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE;gBAC3D,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,KAAa,EAAE,UAA6B;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACxD,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CACnE,CAAC;QACF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CACnC,KAAK,EACL,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAC1D,CAAC;QACF,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;gBAC3D,KAAK,EAAE,OAAO,CAAC,IAAI;gBACnB,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACtC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,wBAAwB;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAChD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC;gBACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,OAAO;qBACJ,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC;qBACxD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAC9B,CAAC;gBACF,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;oBACjC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACxC,CAAC;gBACD,MAAM,OAAO,GAAG,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;wBACjE,KAAK,EAAE,OAAO,CAAC,MAAM;wBACrB,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;qBACjC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,2DAA2D;gBAC3D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE;oBACrE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAChE,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,wEAAwE;IAChE,2BAA2B;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,SAAS;YAAE,OAAO;QAClD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO;QAClD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO;QAC9C,MAAM,QAAQ,GACZ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG,MAAM,CAAC;QACzE,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,GAAG,QAAQ,EAAE,CAAC;YACtE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACjE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,CACrB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACxE;YACD,cAAc,EAAE,MAAM,CAAC,cAAc;SACtC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,SAAiB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,mBAAmB,CACxC,KAAK,EACL,SAAS,EACT,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAC7B,CAAC;QACF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC;QAC7D,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,IAAI,GACR,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC;YACjD;gBACC,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,0BAA0B;gBACvC,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE;oBACZ,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;oBACzC,MAAM,EAAE,EAAE;iBACX;aACmB,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CACZ,KAAa,EACb,SAAiB,EACjB,gBAA+B,EAC/B,YAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,cAAc,CACxB,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,EAC3B,SAAS,EACT,gBAAgB,EAChB,YAAY,CACb,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,qBAAqB,CACnB,IAAyB,EACzB,SAAiB;QAEjB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEO,cAAc,CACpB,IAAyB,EACzB,SAAiB,EACjB,gBAA+B,EAC/B,YAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,gBAAgB,IAAI,UAAU,CAAC,cAAc,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAC/B,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,CAChD,CAAC;QACF,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACzE,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1B,MAAM,IAAI,eAAe,CACvB,gBAAgB,EAChB,mDAAmD,CACpD,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,eAAe,CACvB,cAAc,EACd,gDAAgD,CACjD,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE;YAC5D,SAAS,EAAE,QAAQ;YACnB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QACH,uEAAuE;QACvE,iEAAiE;QACjE,wBAAwB;QACxB,KAAK,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACnC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,qBAAqB,CACzB,KAA0C,EAC1C,SAAiB,EACjB,KAAY;QAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACpE,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,UAAU,CAAC,cAAc,CAAC;QACjE,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,GAAG,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,MAAM,GACV,MAAM,EAAE,kBAAkB,KAAK,SAAS;YACtC,CAAC,CAAC,uBAAuB,CAAC;gBACtB,MAAM;gBACN,SAAS;gBACT,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBACvC,YAAY,EAAE,EAAE;gBAChB,SAAS,EAAE;oBACT,KAAK,EAAE,OAAO,CAAC,OAAO;oBACtB,MAAM,EAAE,OAAO,CAAC,QAAQ;oBACxB,UAAU,EAAE,OAAO,CAAC,YAAY;iBACjC;gBACD,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,QAAQ,EAAE,cAAc,CACtB,MAAM,EACN,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,OAAO,CAChB;aACF,CAAC;YACJ,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,MAAM,EAAE,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC7C,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACpD,SAAS;gBACT,SAAS;gBACT,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,cAAc;aAChC,CAAC,CAAC;QACL,CAAC;QACD,OAAO;YACL,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI;YAC3C,YAAY,EAAE,GAAG,EAAE,CACjB,IAAI,MAAM,CAAC;gBACT,KAAK;gBACL,SAAS,EAAE,MAAM,CAAC,KAAK;gBACvB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,qEAAqE;gBACrE,+DAA+D;gBAC/D,eAAe,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC;gBACjE,WAAW,EAAE,OAAO,CAAC,aAAa;gBAClC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC;aAChE,CAAC;SACL,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,gBAAgB,CACpB,KAAa,EACb,SAAiB,EACjB,KAAY;QAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE;YAC3D,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS;YACzC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS;gBAClD,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,0EAA0E;IAC1E,gBAAgB,CACd,KAAa,EACb,SAAiB;QAEjB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,gBAAgB,IAAI,EAAE,CAAC;IACnE,CAAC;IAED,4EAA4E;IACpE,qBAAqB,CAC3B,SAAiB,EACjB,KAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;QACnC,IAAI,CAAC;YACH,QAAQ,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;gBAChE,SAAS;gBACT,KAAK,EAAE,KAAK,CAAC,SAAS;gBACtB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,cAAc,GAA0B,MAAM,CAAC,MAAM,CAAC;YAC1D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACjD,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAsB;aACvD,CAAC;YACF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAsB;SAC/C,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,uBAAuB,CAClC,OAAO,CAAC,WAAW,EACnB,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,EACrD,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CACjD,CAAC;QACF,MAAM,MAAM,GAA6B,kBAAkB,CAAC;YAC1D,MAAM;YACN,WAAW,EAAE,OAAO,CAAC,aAAa;YAClC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;YACjD,cAAc,EAAE,OAAO,CAAC,OAAO;SAChC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM;YACN,cAAc;YACd,OAAO,EAAE,IAAI;YACb,MAAM;YACN,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CACxC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CACnC;YACD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,0DAA0D;IAC1D,mBAAmB,CACjB,KAAa,EACb,KAAgC;QAEhC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,KAAgB;QAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,EAAU,EAAE,KAAgB;QACvD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,EAAU,EAAE,aAA4B;QACnE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,QAAQ;aACtB,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC9D,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CACtC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAC7B,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,EAAE,IAAI,OAAO,CAC7D,CAAC;YACF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,SAAS,CACjB,8DAA8D,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAChD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CACxB,CAAC;YACF,IAAI,aAAa,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,IAAI,GAAG,sBAAsB,CACjC;gBACE,eAAe,EAAE,OAAO;gBACxB,cAAc,EACZ,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,EAAE;oBAC/B,CAAC,CAAE,aAAwB;oBAC3B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc;aACjC,EACD,KAAK,CACN,CAAC;YACF,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,YAAY,CACV,KAAa,EACb,KAA4B;QAE5B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,gBAAgB,CACd,KAAa,EACb,MAAc,EACd,KAAmB;QAEnB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,+DAA+D;IACvD,eAAe,CAAC,SAAS,GAAG,oBAAoB;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACH,mBAAmB;QACjB,OAAO;YACL,GAAG,IAAI,GAAG,CAAC;gBACT,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK;gBAClD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,oBAAoB,CACxC;aACF,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,KAAa;QAIhC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,eAAe,CACvB,gBAAgB,EAChB,oDAAoD,CACrD,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,wBAAwB,CACtC,MAA0B;IAE1B,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC"}
|
package/lib/account-remotes.js
CHANGED
|
@@ -75,6 +75,19 @@ export function createQaAccountRemotes(options) {
|
|
|
75
75
|
const store = requireAccounts();
|
|
76
76
|
return run(() => store.login(email, password));
|
|
77
77
|
},
|
|
78
|
+
changePassword: (token, currentPassword, nextPassword) => {
|
|
79
|
+
const store = requireAccounts();
|
|
80
|
+
const session = run(() => store.changePassword(token, currentPassword, nextPassword));
|
|
81
|
+
// Who changed a password is worth a log line; the password itself never
|
|
82
|
+
// is. A change signs every other browser out, so a user asking "why was
|
|
83
|
+
// I logged out?" has an answer in the Host log.
|
|
84
|
+
logger.info("accounts.password-changed", { userId: session.user.id });
|
|
85
|
+
return session;
|
|
86
|
+
},
|
|
87
|
+
requestPasswordReset: (email) => {
|
|
88
|
+
const store = requireAccounts();
|
|
89
|
+
run(() => store.requestPasswordReset(email));
|
|
90
|
+
},
|
|
78
91
|
whoami: (token) => {
|
|
79
92
|
if (!getConfig().accounts.enabled)
|
|
80
93
|
return { authenticated: false };
|
|
@@ -113,6 +126,34 @@ export function createQaAccountRemotes(options) {
|
|
|
113
126
|
return store.updateOwnStarters(token, input);
|
|
114
127
|
});
|
|
115
128
|
},
|
|
129
|
+
listServiceTokens: (token) => {
|
|
130
|
+
const store = requireAccounts();
|
|
131
|
+
return run(() => ({ tokens: store.listServiceTokens(token) }));
|
|
132
|
+
},
|
|
133
|
+
createServiceToken: (token, input) => {
|
|
134
|
+
const config = getConfig();
|
|
135
|
+
const store = requireAccounts();
|
|
136
|
+
return run(() => {
|
|
137
|
+
if (!config.integration.enabled) {
|
|
138
|
+
throw new QaAccountsError("integration-disabled", "the QA integration API is disabled on this deployment");
|
|
139
|
+
}
|
|
140
|
+
// The owner is never taken from the request: an integration token is
|
|
141
|
+
// minted for the account that authenticated, which is also why the
|
|
142
|
+
// admin path (`mintServiceToken` with a `userId`) is not reachable
|
|
143
|
+
// from here.
|
|
144
|
+
return store.mintServiceToken(token, {
|
|
145
|
+
...(input.label === undefined ? {} : { label: input.label }),
|
|
146
|
+
...(input.scopes === undefined ? {} : { scopes: input.scopes }),
|
|
147
|
+
...(input.ttlDays === undefined ? {} : { ttlDays: input.ttlDays }),
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
},
|
|
151
|
+
revokeServiceToken: (token, tokenId) => {
|
|
152
|
+
const store = requireAccounts();
|
|
153
|
+
return run(() => ({
|
|
154
|
+
revoked: store.revokeServiceToken(token, tokenId),
|
|
155
|
+
}));
|
|
156
|
+
},
|
|
116
157
|
};
|
|
117
158
|
}
|
|
118
159
|
//# sourceMappingURL=account-remotes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-remotes.js","sourceRoot":"","sources":["../src/account-remotes.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,eAAe,EACf,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"account-remotes.js","sourceRoot":"","sources":["../src/account-remotes.ts"],"names":[],"mappings":"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"}
|