@yadsh/dsh-qa-surface 0.5.0 → 0.6.1
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 +206 -11
- package/compatibility.json +10 -1
- package/cordis.patch.yml +11 -1
- package/lib/account-remotes.js +10 -0
- package/lib/account-remotes.js.map +1 -1
- package/lib/accounts/errors.js.map +1 -1
- package/lib/accounts/file.js.map +1 -1
- package/lib/accounts/store.js +22 -0
- package/lib/accounts/store.js.map +1 -1
- package/lib/attestation.js +6 -0
- package/lib/attestation.js.map +1 -1
- package/lib/client/QaAccountsController.js +29 -0
- package/lib/client/QaAccountsController.js.map +1 -1
- package/lib/client/QaSessionController.js +205 -61
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +125 -56
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/QaSurfaceGuard.js +96 -0
- package/lib/client/QaSurfaceGuard.js.map +1 -0
- package/lib/client/QaTranscriptAdapter.js +11 -5
- package/lib/client/QaTranscriptAdapter.js.map +1 -1
- package/lib/client/attestation.js +14 -2
- package/lib/client/attestation.js.map +1 -1
- package/lib/client/components/QaChangelog.js +44 -0
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/components/QaComposer.js +1 -1
- package/lib/client/components/QaComposer.js.map +1 -1
- package/lib/client/components/QaHeader.js +2 -8
- package/lib/client/components/QaHeader.js.map +1 -1
- package/lib/client/components/QaMessage.js +20 -7
- package/lib/client/components/QaMessage.js.map +1 -1
- package/lib/client/components/QaModal.js +24 -6
- package/lib/client/components/QaModal.js.map +1 -1
- package/lib/client/components/QaSidebar.js +2 -6
- package/lib/client/components/QaSidebar.js.map +1 -1
- package/lib/client/components/QaSourcesPanel.js +6 -5
- package/lib/client/components/QaSourcesPanel.js.map +1 -1
- package/lib/client/components/QaWidthHandle.js +21 -1
- package/lib/client/components/QaWidthHandle.js.map +1 -1
- package/lib/client/components/surface-utils.js +2 -0
- package/lib/client/components/surface-utils.js.map +1 -1
- package/lib/client/index.js +72 -24
- package/lib/client/index.js.map +1 -1
- package/lib/client/panels/PanelHost.js +209 -0
- package/lib/client/panels/PanelHost.js.map +1 -0
- package/lib/client/panels/PanelLauncher.js +39 -0
- package/lib/client/panels/PanelLauncher.js.map +1 -0
- package/lib/client/panels/contract.js +2 -0
- package/lib/client/panels/contract.js.map +1 -0
- package/lib/client/panels/index.js +2 -0
- package/lib/client/panels/index.js.map +1 -0
- package/lib/client/panels/registry.js +171 -0
- package/lib/client/panels/registry.js.map +1 -0
- package/lib/client/project-session-state.js +13 -5
- package/lib/client/project-session-state.js.map +1 -1
- package/lib/client/settings/card.js +2 -2
- package/lib/client/settings/card.js.map +1 -1
- package/lib/client/settings/sections/accounts.js +3 -1
- package/lib/client/settings/sections/accounts.js.map +1 -1
- package/lib/client/settings/sections/documents.js +88 -0
- package/lib/client/settings/sections/documents.js.map +1 -0
- package/lib/client/settings/sections/interface.js +2 -0
- package/lib/client/settings/sections/interface.js.map +1 -1
- package/lib/client/settings/sections.js +1 -0
- package/lib/client/settings/sections.js.map +1 -1
- package/lib/client/settings-extensions/contract.js +2 -0
- package/lib/client/settings-extensions/contract.js.map +1 -0
- package/lib/client/settings-extensions/index.js +2 -0
- package/lib/client/settings-extensions/index.js.map +1 -0
- package/lib/client/settings-extensions/registry.js +63 -0
- package/lib/client/settings-extensions/registry.js.map +1 -0
- package/lib/client/settlement.js +51 -5
- package/lib/client/settlement.js.map +1 -1
- package/lib/client/source-preview.js +24 -0
- package/lib/client/source-preview.js.map +1 -0
- package/lib/client/styles.js +158 -32
- package/lib/client/styles.js.map +1 -1
- package/lib/client/subagent-codenames.js +109 -0
- package/lib/client/subagent-codenames.js.map +1 -0
- package/lib/client/types.js +2 -0
- package/lib/client/types.js.map +1 -1
- package/lib/client/user-settings/GeneralSettingsPage.js +13 -0
- package/lib/client/user-settings/GeneralSettingsPage.js.map +1 -0
- package/lib/client/user-settings/ProfileSettingsPage.js +59 -0
- package/lib/client/user-settings/ProfileSettingsPage.js.map +1 -0
- package/lib/client/user-settings/SkillCatalog.js +23 -0
- package/lib/client/user-settings/SkillCatalog.js.map +1 -0
- package/lib/client/user-settings/SkillEditor.js +89 -0
- package/lib/client/user-settings/SkillEditor.js.map +1 -0
- package/lib/client/user-settings/SkillToolPicker.js +58 -0
- package/lib/client/user-settings/SkillToolPicker.js.map +1 -0
- package/lib/client/user-settings/SkillsSettingsPage.js +171 -0
- package/lib/client/user-settings/SkillsSettingsPage.js.map +1 -0
- package/lib/client/user-settings/StartersSettingsPage.js +78 -0
- package/lib/client/user-settings/StartersSettingsPage.js.map +1 -0
- package/lib/client/user-settings/UserSettingsDialog.js +50 -0
- package/lib/client/user-settings/UserSettingsDialog.js.map +1 -0
- package/lib/client/user-settings/copy.js +84 -0
- package/lib/client/user-settings/copy.js.map +1 -0
- package/lib/client/user-settings/draft.js +127 -0
- package/lib/client/user-settings/draft.js.map +1 -0
- package/lib/client/user-settings/fields.js +24 -0
- package/lib/client/user-settings/fields.js.map +1 -0
- package/lib/client.js +5554 -1415
- package/lib/client.js.map +1 -1
- package/lib/config-resolvers/accounts.js +30 -0
- package/lib/config-resolvers/accounts.js.map +1 -1
- package/lib/config-resolvers/defaults.js +23 -0
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config-resolvers/tools.js +37 -0
- package/lib/config-resolvers/tools.js.map +1 -0
- package/lib/config-resolvers/ui.js +2 -0
- package/lib/config-resolvers/ui.js.map +1 -1
- package/lib/config.js +288 -0
- package/lib/config.js.map +1 -1
- package/lib/documents/artifacts/ids.js +43 -0
- package/lib/documents/artifacts/ids.js.map +1 -0
- package/lib/documents/artifacts/manifest.js +66 -0
- package/lib/documents/artifacts/manifest.js.map +1 -0
- package/lib/documents/artifacts/store.js +169 -0
- package/lib/documents/artifacts/store.js.map +1 -0
- package/lib/documents/capabilities.js +93 -0
- package/lib/documents/capabilities.js.map +1 -0
- package/lib/documents/config.js +302 -0
- package/lib/documents/config.js.map +1 -0
- package/lib/documents/defaults.js +78 -0
- package/lib/documents/defaults.js.map +1 -0
- package/lib/documents/errors.js +101 -0
- package/lib/documents/errors.js.map +1 -0
- package/lib/documents/index.js +80 -0
- package/lib/documents/index.js.map +1 -0
- package/lib/documents/inspect/facts.js +161 -0
- package/lib/documents/inspect/facts.js.map +1 -0
- package/lib/documents/inspect/zip.js +108 -0
- package/lib/documents/inspect/zip.js.map +1 -0
- package/lib/documents/markdown/directives.js +135 -0
- package/lib/documents/markdown/directives.js.map +1 -0
- package/lib/documents/markdown/frontmatter.js +35 -0
- package/lib/documents/markdown/frontmatter.js.map +1 -0
- package/lib/documents/markdown/normalize.js +113 -0
- package/lib/documents/markdown/normalize.js.map +1 -0
- package/lib/documents/orchestrator/assets.js +243 -0
- package/lib/documents/orchestrator/assets.js.map +1 -0
- package/lib/documents/orchestrator/convert-document.js +186 -0
- package/lib/documents/orchestrator/convert-document.js.map +1 -0
- package/lib/documents/orchestrator/create-document.js +292 -0
- package/lib/documents/orchestrator/create-document.js.map +1 -0
- package/lib/documents/orchestrator/extract-document.js +162 -0
- package/lib/documents/orchestrator/extract-document.js.map +1 -0
- package/lib/documents/orchestrator/inspect-document.js +89 -0
- package/lib/documents/orchestrator/inspect-document.js.map +1 -0
- package/lib/documents/orchestrator/runtime-deps.js +59 -0
- package/lib/documents/orchestrator/runtime-deps.js.map +1 -0
- package/lib/documents/orchestrator/scope.js +132 -0
- package/lib/documents/orchestrator/scope.js.map +1 -0
- package/lib/documents/providers/docling.js +247 -0
- package/lib/documents/providers/docling.js.map +1 -0
- package/lib/documents/providers/libreoffice.js +130 -0
- package/lib/documents/providers/libreoffice.js.map +1 -0
- package/lib/documents/providers/markitdown.js +89 -0
- package/lib/documents/providers/markitdown.js.map +1 -0
- package/lib/documents/providers/pandoc.js +161 -0
- package/lib/documents/providers/pandoc.js.map +1 -0
- package/lib/documents/providers/process.js +164 -0
- package/lib/documents/providers/process.js.map +1 -0
- package/lib/documents/providers/registry.js +152 -0
- package/lib/documents/providers/registry.js.map +1 -0
- package/lib/documents/providers/shared.js +75 -0
- package/lib/documents/providers/shared.js.map +1 -0
- package/lib/documents/runtime.js +114 -0
- package/lib/documents/runtime.js.map +1 -0
- package/lib/documents/security/file-types.js +188 -0
- package/lib/documents/security/file-types.js.map +1 -0
- package/lib/documents/security/limits.js +78 -0
- package/lib/documents/security/limits.js.map +1 -0
- package/lib/documents/security/mime.js +43 -0
- package/lib/documents/security/mime.js.map +1 -0
- package/lib/documents/security/paths.js +133 -0
- package/lib/documents/security/paths.js.map +1 -0
- package/lib/documents/templates/registry.js +147 -0
- package/lib/documents/templates/registry.js.map +1 -0
- package/lib/documents/templates/resolver.js +59 -0
- package/lib/documents/templates/resolver.js.map +1 -0
- package/lib/documents/tools/convert.js +125 -0
- package/lib/documents/tools/convert.js.map +1 -0
- package/lib/documents/tools/create.js +187 -0
- package/lib/documents/tools/create.js.map +1 -0
- package/lib/documents/tools/index.js +41 -0
- package/lib/documents/tools/index.js.map +1 -0
- package/lib/documents/tools/inspect.js +135 -0
- package/lib/documents/tools/inspect.js.map +1 -0
- package/lib/documents/tools/shared.js +88 -0
- package/lib/documents/tools/shared.js.map +1 -0
- package/lib/documents/tools/to-markdown.js +125 -0
- package/lib/documents/tools/to-markdown.js.map +1 -0
- package/lib/documents/types.js +12 -0
- package/lib/documents/types.js.map +1 -0
- package/lib/index.js +231 -22
- package/lib/index.js.map +1 -1
- package/lib/integration-principals.js +22 -0
- package/lib/integration-principals.js.map +1 -0
- package/lib/lockdown-policy.js +15 -3
- package/lib/lockdown-policy.js.map +1 -1
- package/lib/personal-skills/errors.js +9 -0
- package/lib/personal-skills/errors.js.map +1 -0
- package/lib/personal-skills/host.js +80 -0
- package/lib/personal-skills/host.js.map +1 -0
- package/lib/personal-skills/index.js +10 -0
- package/lib/personal-skills/index.js.map +1 -0
- package/lib/personal-skills/paths.js +127 -0
- package/lib/personal-skills/paths.js.map +1 -0
- package/lib/personal-skills/provider.js +109 -0
- package/lib/personal-skills/provider.js.map +1 -0
- package/lib/personal-skills/remotes.js +40 -0
- package/lib/personal-skills/remotes.js.map +1 -0
- package/lib/personal-skills/service.js +686 -0
- package/lib/personal-skills/service.js.map +1 -0
- package/lib/personal-skills/skill-file.js +278 -0
- package/lib/personal-skills/skill-file.js.map +1 -0
- package/lib/personal-skills/skill-format.js +202 -0
- package/lib/personal-skills/skill-format.js.map +1 -0
- package/lib/personal-skills/watcher.js +96 -0
- package/lib/personal-skills/watcher.js.map +1 -0
- package/lib/profile.js +6 -4
- package/lib/profile.js.map +1 -1
- package/lib/prompt-notes.js +19 -0
- package/lib/prompt-notes.js.map +1 -1
- package/lib/provenance/file-preview.js +68 -21
- package/lib/provenance/file-preview.js.map +1 -1
- package/lib/provenance/host-store.js +44 -11
- package/lib/provenance/host-store.js.map +1 -1
- package/lib/provenance/index.js +1 -0
- package/lib/provenance/index.js.map +1 -1
- package/lib/provenance/normalize.js +3 -1
- package/lib/provenance/normalize.js.map +1 -1
- package/lib/provenance/snapshot-store.js +154 -0
- package/lib/provenance/snapshot-store.js.map +1 -0
- package/lib/qa-tools/activation-detector.js +53 -0
- package/lib/qa-tools/activation-detector.js.map +1 -0
- package/lib/qa-tools/activation-manager.js +111 -0
- package/lib/qa-tools/activation-manager.js.map +1 -0
- package/lib/qa-tools/catalog.js +108 -0
- package/lib/qa-tools/catalog.js.map +1 -0
- package/lib/qa-tools/durable-marker.js +115 -0
- package/lib/qa-tools/durable-marker.js.map +1 -0
- package/lib/qa-tools/index.js +83 -0
- package/lib/qa-tools/index.js.map +1 -0
- package/lib/qa-tools/lifecycle.js +64 -0
- package/lib/qa-tools/lifecycle.js.map +1 -0
- package/lib/qa-tools/types.js +2 -0
- package/lib/qa-tools/types.js.map +1 -0
- package/lib/resolve-config.js +5 -0
- package/lib/resolve-config.js.map +1 -1
- package/lib/secure-session.js +75 -18
- package/lib/secure-session.js.map +1 -1
- package/lib/starters.js +117 -0
- package/lib/starters.js.map +1 -0
- package/lib/typert.host.js +767 -22
- package/lib/typert.remote-client.d.ts +17 -1
- package/lib/typert.remote-client.js +609 -17
- package/lib/types/account-remotes.d.ts +3 -1
- package/lib/types/accounts/errors.d.ts +1 -1
- package/lib/types/accounts/file.d.ts +10 -0
- package/lib/types/accounts/store.d.ts +7 -1
- package/lib/types/attestation.d.ts +2 -0
- package/lib/types/client/QaAccountsController.d.ts +7 -1
- package/lib/types/client/QaSessionController.d.ts +14 -0
- package/lib/types/client/QaSurface.d.ts +14 -4
- package/lib/types/client/QaSurfaceGuard.d.ts +27 -0
- package/lib/types/client/QaTranscriptAdapter.d.ts +7 -0
- package/lib/types/client/attestation.d.ts +8 -1
- package/lib/types/client/components/QaComposer.d.ts +3 -1
- package/lib/types/client/components/QaHeader.d.ts +3 -1
- package/lib/types/client/components/QaModal.d.ts +5 -4
- package/lib/types/client/components/QaSidebar.d.ts +8 -11
- package/lib/types/client/components/QaWidthHandle.d.ts +13 -0
- package/lib/types/client/index.d.ts +1 -0
- package/lib/types/client/panels/PanelHost.d.ts +18 -0
- package/lib/types/client/panels/PanelLauncher.d.ts +5 -0
- package/lib/types/client/panels/contract.d.ts +83 -0
- package/lib/types/client/panels/index.d.ts +3 -0
- package/lib/types/client/panels/registry.d.ts +40 -0
- package/lib/types/client/project-session-state.d.ts +7 -0
- package/lib/types/client/settings/sections/documents.d.ts +13 -0
- package/lib/types/client/settings/sections.d.ts +1 -0
- package/lib/types/client/settings-extensions/contract.d.ts +32 -0
- package/lib/types/client/settings-extensions/index.d.ts +3 -0
- package/lib/types/client/settings-extensions/registry.d.ts +15 -0
- package/lib/types/client/settlement.d.ts +41 -5
- package/lib/types/client/source-preview.d.ts +8 -0
- package/lib/types/client/styles.d.ts +2 -0
- package/lib/types/client/subagent-codenames.d.ts +18 -0
- package/lib/types/client/types.d.ts +35 -3
- package/lib/types/client/user-settings/GeneralSettingsPage.d.ts +14 -0
- package/lib/types/client/user-settings/ProfileSettingsPage.d.ts +18 -0
- package/lib/types/client/user-settings/SkillCatalog.d.ts +16 -0
- package/lib/types/client/user-settings/SkillEditor.d.ts +42 -0
- package/lib/types/client/user-settings/SkillToolPicker.d.ts +17 -0
- package/lib/types/client/user-settings/SkillsSettingsPage.d.ts +15 -0
- package/lib/types/client/user-settings/StartersSettingsPage.d.ts +14 -0
- package/lib/types/client/user-settings/UserSettingsDialog.d.ts +43 -0
- package/lib/types/client/user-settings/copy.d.ts +25 -0
- package/lib/types/client/user-settings/draft.d.ts +51 -0
- package/lib/types/client/user-settings/fields.d.ts +43 -0
- package/lib/types/config-resolvers/tools.d.ts +6 -0
- package/lib/types/documents/artifacts/ids.d.ts +14 -0
- package/lib/types/documents/artifacts/manifest.d.ts +32 -0
- package/lib/types/documents/artifacts/store.d.ts +67 -0
- package/lib/types/documents/capabilities.d.ts +32 -0
- package/lib/types/documents/config.d.ts +27 -0
- package/lib/types/documents/defaults.d.ts +161 -0
- package/lib/types/documents/errors.d.ts +42 -0
- package/lib/types/documents/index.d.ts +63 -0
- package/lib/types/documents/inspect/facts.d.ts +43 -0
- package/lib/types/documents/inspect/zip.d.ts +28 -0
- package/lib/types/documents/markdown/directives.d.ts +39 -0
- package/lib/types/documents/markdown/frontmatter.d.ts +15 -0
- package/lib/types/documents/markdown/normalize.d.ts +30 -0
- package/lib/types/documents/orchestrator/assets.d.ts +55 -0
- package/lib/types/documents/orchestrator/convert-document.d.ts +25 -0
- package/lib/types/documents/orchestrator/create-document.d.ts +18 -0
- package/lib/types/documents/orchestrator/extract-document.d.ts +24 -0
- package/lib/types/documents/orchestrator/inspect-document.d.ts +12 -0
- package/lib/types/documents/orchestrator/runtime-deps.d.ts +43 -0
- package/lib/types/documents/orchestrator/scope.d.ts +52 -0
- package/lib/types/documents/providers/docling.d.ts +54 -0
- package/lib/types/documents/providers/libreoffice.d.ts +40 -0
- package/lib/types/documents/providers/markitdown.d.ts +28 -0
- package/lib/types/documents/providers/pandoc.d.ts +42 -0
- package/lib/types/documents/providers/process.d.ts +54 -0
- package/lib/types/documents/providers/registry.d.ts +68 -0
- package/lib/types/documents/providers/shared.d.ts +27 -0
- package/lib/types/documents/runtime.d.ts +59 -0
- package/lib/types/documents/security/file-types.d.ts +39 -0
- package/lib/types/documents/security/limits.d.ts +24 -0
- package/lib/types/documents/security/mime.d.ts +13 -0
- package/lib/types/documents/security/paths.d.ts +38 -0
- package/lib/types/documents/templates/registry.d.ts +50 -0
- package/lib/types/documents/templates/resolver.d.ts +30 -0
- package/lib/types/documents/tools/convert.d.ts +9 -0
- package/lib/types/documents/tools/create.d.ts +14 -0
- package/lib/types/documents/tools/index.d.ts +33 -0
- package/lib/types/documents/tools/inspect.d.ts +9 -0
- package/lib/types/documents/tools/shared.d.ts +77 -0
- package/lib/types/documents/tools/to-markdown.d.ts +12 -0
- package/lib/types/documents/types.d.ts +294 -0
- package/lib/types/index.d.ts +75 -3
- package/lib/types/integration-principals.d.ts +9 -0
- package/lib/types/lockdown-policy.d.ts +12 -2
- package/lib/types/personal-skills/errors.d.ts +11 -0
- package/lib/types/personal-skills/host.d.ts +42 -0
- package/lib/types/personal-skills/index.d.ts +10 -0
- package/lib/types/personal-skills/paths.d.ts +39 -0
- package/lib/types/personal-skills/provider.d.ts +33 -0
- package/lib/types/personal-skills/remotes.d.ts +35 -0
- package/lib/types/personal-skills/service.d.ts +131 -0
- package/lib/types/personal-skills/skill-file.d.ts +64 -0
- package/lib/types/personal-skills/skill-format.d.ts +100 -0
- package/lib/types/personal-skills/watcher.d.ts +39 -0
- package/lib/types/profile.d.ts +13 -0
- package/lib/types/prompt-notes.d.ts +9 -0
- package/lib/types/provenance/file-preview.d.ts +47 -4
- package/lib/types/provenance/host-store.d.ts +7 -1
- package/lib/types/provenance/index.d.ts +1 -0
- package/lib/types/provenance/snapshot-store.d.ts +23 -0
- package/lib/types/qa-tools/activation-detector.d.ts +29 -0
- package/lib/types/qa-tools/activation-manager.d.ts +47 -0
- package/lib/types/qa-tools/catalog.d.ts +40 -0
- package/lib/types/qa-tools/durable-marker.d.ts +16 -0
- package/lib/types/qa-tools/index.d.ts +40 -0
- package/lib/types/qa-tools/lifecycle.d.ts +44 -0
- package/lib/types/qa-tools/types.d.ts +45 -0
- package/lib/types/secure-session.d.ts +33 -2
- package/lib/types/starters.d.ts +45 -0
- package/lib/types/types.d.ts +208 -3
- package/package.json +22 -9
- package/scripts/repair-session-events.mjs +260 -0
- package/lib/client/components/QaProfile.js +0 -64
- package/lib/client/components/QaProfile.js.map +0 -1
- package/lib/types/client/components/QaProfile.d.ts +0 -25
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { PluginLogger } from "@yadsh/dsh-plugin-log";
|
|
2
2
|
import { QaAccounts } from "./accounts/store.js";
|
|
3
|
-
import type { QaAccountProfileInput, QaAccountSession, QaAccountUserPublic, QaClaimResult, QaOwnershipEntry, QaWhoamiResult, ResolvedQaSurfaceConfig } from "./types.js";
|
|
3
|
+
import type { QaAccountProfileInput, QaAccountSession, QaAccountStartersInput, QaAccountUserPublic, QaClaimResult, QaOwnershipEntry, QaWhoamiResult, ResolvedQaSurfaceConfig } from "./types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Host-side bodies of the account remotes the `QaSurface` service exposes.
|
|
6
6
|
* The `@Remote`-decorated signatures stay on the service class (typert code
|
|
@@ -33,6 +33,8 @@ export interface QaAccountRemotes {
|
|
|
33
33
|
};
|
|
34
34
|
/** Replace the caller's own self-declared profile; the token is the identity. */
|
|
35
35
|
updateProfile(token: string, input: QaAccountProfileInput): QaAccountUserPublic;
|
|
36
|
+
/** Replace the caller's own starter buttons; the token is the identity. */
|
|
37
|
+
updateStarters(token: string, input: QaAccountStartersInput): QaAccountUserPublic;
|
|
36
38
|
}
|
|
37
39
|
/** Build the account-remotes context for one `QaSurface` service instance. */
|
|
38
40
|
export declare function createQaAccountRemotes(options: {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* marker pattern the attestation path established; the browser maps them to
|
|
4
4
|
* audience-safe copy and the precise cause stays in the Host logs.
|
|
5
5
|
*/
|
|
6
|
-
export type QaAccountsErrorReason = "auth-required" | "admin-required" | "invalid-credentials" | "account-disabled" | "email-taken" | "invalid-email" | "invalid-display-name" | "invalid-profile" | "profile-disabled" | "invalid-role" | "weak-password" | "registration-disabled" | "rate-limited" | "session-owned-elsewhere";
|
|
6
|
+
export type QaAccountsErrorReason = "auth-required" | "admin-required" | "invalid-credentials" | "account-disabled" | "email-taken" | "invalid-email" | "invalid-display-name" | "invalid-profile" | "profile-disabled" | "invalid-starters" | "starters-disabled" | "invalid-role" | "weak-password" | "registration-disabled" | "rate-limited" | "session-owned-elsewhere";
|
|
7
7
|
export declare class QaAccountsError extends Error {
|
|
8
8
|
readonly reason: QaAccountsErrorReason;
|
|
9
9
|
constructor(reason: QaAccountsErrorReason, message: string);
|
|
@@ -7,6 +7,14 @@ export interface StoredProfile {
|
|
|
7
7
|
instructions?: string;
|
|
8
8
|
updatedAt?: string;
|
|
9
9
|
}
|
|
10
|
+
/** One account's starter buttons as they rest in the accounts file. */
|
|
11
|
+
export interface StoredStarters {
|
|
12
|
+
items?: {
|
|
13
|
+
label?: string;
|
|
14
|
+
prompt?: string;
|
|
15
|
+
}[];
|
|
16
|
+
hideDefaults?: boolean;
|
|
17
|
+
}
|
|
10
18
|
export interface StoredUser {
|
|
11
19
|
readonly id: string;
|
|
12
20
|
readonly email: string;
|
|
@@ -28,6 +36,8 @@ export interface StoredUser {
|
|
|
28
36
|
tokenVersion?: number;
|
|
29
37
|
/** Absent until the owner fills the profile form for the first time. */
|
|
30
38
|
profile?: StoredProfile;
|
|
39
|
+
/** Absent until the owner customizes the starter buttons. */
|
|
40
|
+
starters?: StoredStarters;
|
|
31
41
|
}
|
|
32
42
|
export interface AccountsFile {
|
|
33
43
|
readonly version: 1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { QaAccountIdentityField, QaAccountProfile, QaAccountProfileInput, QaAccountRole, QaAccountSession, QaAccountUserPublic, QaClaimResult, QaOwnershipEntry, QaWhoamiResult } from "../types.js";
|
|
1
|
+
import type { QaAccountIdentityField, QaAccountProfile, QaAccountProfileInput, QaAccountRole, QaAccountSession, QaAccountStartersInput, QaAccountUserPublic, QaClaimResult, QaOwnershipEntry, QaWhoamiResult } from "../types.js";
|
|
2
2
|
import type { StoredUser } from "./file.js";
|
|
3
3
|
export { QaAccountsError } from "./errors.js";
|
|
4
4
|
export type { QaAccountsErrorReason } from "./errors.js";
|
|
@@ -142,6 +142,12 @@ export declare class QaAccounts {
|
|
|
142
142
|
* first, so a browser can only ever edit the profile it is signed in as.
|
|
143
143
|
*/
|
|
144
144
|
updateOwnProfile(token: string, input: QaAccountProfileInput): QaAccountUserPublic;
|
|
145
|
+
/**
|
|
146
|
+
* Replace the token account's starter buttons. Same self-service shape as
|
|
147
|
+
* {@link updateOwnProfile}: the token is the only identity, and a rejected
|
|
148
|
+
* write leaves the stored record untouched.
|
|
149
|
+
*/
|
|
150
|
+
updateOwnStarters(token: string, input: QaAccountStartersInput): QaAccountUserPublic;
|
|
145
151
|
/**
|
|
146
152
|
* Validate one profile write and stamp it onto the account. Throws before
|
|
147
153
|
* anything is mutated, so a rejected write leaves the stored profile, and
|
|
@@ -14,4 +14,6 @@ export declare class QaAttestationError extends Error {
|
|
|
14
14
|
readonly reason: QaAttestationReason;
|
|
15
15
|
constructor(reason: QaAttestationReason, message: string);
|
|
16
16
|
}
|
|
17
|
+
/** Keep deployment details in Host logs while preserving a stable wire hint. */
|
|
18
|
+
export declare function qaAttestationFailureMessage(message: string, error: unknown): string;
|
|
17
19
|
//# sourceMappingURL=attestation.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { QaAccountProfileInput, QaAccountUserPublic, QaOwnershipEntry, ResolvedQaSurfaceConfig } from "../types.js";
|
|
1
|
+
import type { QaAccountProfileInput, QaAccountStartersInput, QaAccountUserPublic, QaOwnershipEntry, ResolvedQaSurfaceConfig } from "../types.js";
|
|
2
2
|
import type { QaAccountsApi, StorageLike } from "./types.js";
|
|
3
3
|
export type QaAccountsSnapshot = {
|
|
4
4
|
readonly stage: "checking";
|
|
@@ -79,6 +79,12 @@ export declare class QaAccountsController {
|
|
|
79
79
|
* rather than through the gate's state machine.
|
|
80
80
|
*/
|
|
81
81
|
updateProfile(input: QaAccountProfileInput): Promise<string | null>;
|
|
82
|
+
/**
|
|
83
|
+
* Replace the signed-in user's own starter buttons, mirroring
|
|
84
|
+
* {@link updateProfile}: refusal copy on rejection, null once the snapshot
|
|
85
|
+
* carries the stored record, so the composer picks the new buttons up.
|
|
86
|
+
*/
|
|
87
|
+
updateStarters(input: QaAccountStartersInput): Promise<string | null>;
|
|
82
88
|
private authenticate;
|
|
83
89
|
/** Own the account, migrate the legacy index, then project authed. */
|
|
84
90
|
private enterSession;
|
|
@@ -88,7 +88,11 @@ export declare class QaSessionController {
|
|
|
88
88
|
private materializing;
|
|
89
89
|
private operationError;
|
|
90
90
|
private admissionPending;
|
|
91
|
+
private pendingSubmission;
|
|
92
|
+
private pendingSequence;
|
|
91
93
|
private policyReady;
|
|
94
|
+
/** Historical transcript retained after the Host classifies policy drift. */
|
|
95
|
+
private compatibilityReadOnly;
|
|
92
96
|
private drafting;
|
|
93
97
|
/** The chat session to return to when a subagent view closes. */
|
|
94
98
|
private chatSessionId;
|
|
@@ -110,6 +114,8 @@ export declare class QaSessionController {
|
|
|
110
114
|
subscribe: (listener: () => void) => (() => void);
|
|
111
115
|
ensureSession(): Promise<void>;
|
|
112
116
|
send(text: string, attachments?: readonly QaAttachmentDraft[]): Promise<boolean>;
|
|
117
|
+
/** Publish a browser-only copy before any network or Host admission awaits. */
|
|
118
|
+
private beginSubmission;
|
|
113
119
|
/**
|
|
114
120
|
* Ask for a fresh variant of the previous answer. The session has no
|
|
115
121
|
* truncation seam, so this sends the hidden regeneration instruction as an
|
|
@@ -190,6 +196,14 @@ export declare class QaSessionController {
|
|
|
190
196
|
* (first frame at once, further frames absorbed) lives in the publisher. */
|
|
191
197
|
private publishSessionUpdate;
|
|
192
198
|
private publish;
|
|
199
|
+
/**
|
|
200
|
+
* Display names of the known subagent sessions keyed by session id, for
|
|
201
|
+
* settlement notices to sign with. The durable catalogs carry each
|
|
202
|
+
* delegation's description verbatim; a child the host listed without a
|
|
203
|
+
* catalog falls back to its own list title. Tolerates a host bundle older
|
|
204
|
+
* than either field: an absent snapshot piece just contributes no names.
|
|
205
|
+
*/
|
|
206
|
+
private subagentNames;
|
|
193
207
|
private fail;
|
|
194
208
|
/**
|
|
195
209
|
* Attest the currently bound session. `ok` carries the session id the proof
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { ConnectionGenerationState } from "@deepseek-ai/dsh-client-connection/client";
|
|
2
|
-
import type { InjectFace, PropsRuntime } from "@deepseek-ai/dsh-client-ui-slots";
|
|
2
|
+
import type { InjectFace, PropsRenderSlots, PropsRuntime } from "@deepseek-ai/dsh-client-ui-slots";
|
|
3
3
|
import type { QaConfigController } from "./QaConfigController.js";
|
|
4
4
|
import type { QaRouteController } from "./QaRouteController.js";
|
|
5
5
|
import type { QaAccountsController } from "./QaAccountsController.js";
|
|
6
|
-
import type { QaApprovalApi, QaConversation, QaCreateSession, QaFileUpload, QaSecureSession, QaSessions, QaSessionsApi, QaQuestionApi, QaSourceApi } from "./types.js";
|
|
6
|
+
import type { QaApprovalApi, QaConversation, QaCreateSession, QaFileUpload, QaSecureSession, QaSessions, QaSessionsApi, QaQuestionApi, QaSkillApi, QaSourceApi } from "./types.js";
|
|
7
|
+
import type { QaSurfacePanelRegistry } from "./panels/registry.js";
|
|
8
|
+
import type { QaUserSettingsSections } from "./settings-extensions/index.js";
|
|
7
9
|
export interface QaSurfaceFace {
|
|
8
10
|
readonly route: QaRouteController;
|
|
9
11
|
readonly config: QaConfigController;
|
|
@@ -14,6 +16,11 @@ export interface QaSurfaceFace {
|
|
|
14
16
|
readonly secureSession: QaSecureSession;
|
|
15
17
|
readonly createSession: QaCreateSession;
|
|
16
18
|
readonly sourceApi: QaSourceApi;
|
|
19
|
+
/**
|
|
20
|
+
* Personal-skill half of the plugin's namespace. Absent on a page whose Host
|
|
21
|
+
* build does not answer it; the settings dialog then has no skills section.
|
|
22
|
+
*/
|
|
23
|
+
readonly skillApi?: QaSkillApi;
|
|
17
24
|
/**
|
|
18
25
|
* Approval half of the plugin's namespace. Absent on a page whose Host build
|
|
19
26
|
* does not answer it; the surface then only blocks sends it cannot attest.
|
|
@@ -28,8 +35,11 @@ export interface QaSurfaceFace {
|
|
|
28
35
|
readonly fileUpload?: () => QaFileUpload | undefined;
|
|
29
36
|
/** Present when the deployment mounts the QA account gate. */
|
|
30
37
|
readonly accounts?: QaAccountsController;
|
|
38
|
+
/** Global client-only panel metadata and presentation navigation. */
|
|
39
|
+
readonly panels: QaSurfacePanelRegistry;
|
|
40
|
+
/** First-class settings pages registered by additive QA plugins. */
|
|
41
|
+
readonly settingsSections: QaUserSettingsSections;
|
|
31
42
|
}
|
|
32
|
-
type QaSurfaceProps = PropsRuntime<"shell.overlay"> & InjectFace<QaSurfaceFace>;
|
|
43
|
+
export type QaSurfaceProps = PropsRuntime<"shell.overlay"> & PropsRenderSlots<"qa.surface.panel"> & InjectFace<QaSurfaceFace>;
|
|
33
44
|
export declare function QaSurface(props: QaSurfaceProps): import("react/jsx-runtime").JSX.Element | null;
|
|
34
|
-
export {};
|
|
35
45
|
//# sourceMappingURL=QaSurface.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type QaSurfaceProps } from "./QaSurface.js";
|
|
3
|
+
/**
|
|
4
|
+
* The registered `shell.overlay` entry: the surface behind an error boundary
|
|
5
|
+
* the host never sees past. The host's per-slot isolation retires a crashed
|
|
6
|
+
* entry, which for this slot means the QA overlay disappears and the operator
|
|
7
|
+
* shell beneath it becomes reachable — a render crash must never be allowed
|
|
8
|
+
* to make that trade. The boundary keeps the overlay mounted and swaps the
|
|
9
|
+
* surface for a fullscreen failure card; the reload button is the recovery,
|
|
10
|
+
* because after a render crash the component state below (controllers,
|
|
11
|
+
* stores) is untrustworthy.
|
|
12
|
+
*
|
|
13
|
+
* The body mask (`data-dsh-qa-surface`) is owned here, above the boundary:
|
|
14
|
+
* React unmounts a crashed subtree, and the stylesheet that hides the host
|
|
15
|
+
* frame's own columns hangs off that attribute, so a crash unmounting the
|
|
16
|
+
* surface must not lift the mask with it. Deleting the overlay element in
|
|
17
|
+
* the browser then reveals a blank page, not the shell.
|
|
18
|
+
*
|
|
19
|
+
* The wrapper is a function component only because the slot contract types
|
|
20
|
+
* entries as call signatures; its render is trivial and cannot itself throw
|
|
21
|
+
* into the host boundary. It also covers a face that failed to assemble: the
|
|
22
|
+
* slot inject hands over an empty face in that case, a missing route reads
|
|
23
|
+
* as permanently active, and the surface's first hook read throws into the
|
|
24
|
+
* boundary below.
|
|
25
|
+
*/
|
|
26
|
+
export declare function QaSurfaceGuard(props: QaSurfaceProps): ReactNode;
|
|
27
|
+
//# sourceMappingURL=QaSurfaceGuard.d.ts.map
|
|
@@ -13,5 +13,12 @@ export declare function projectTranscript(snapshot: ConversationSnapshot | undef
|
|
|
13
13
|
readonly running?: boolean;
|
|
14
14
|
readonly showToolActivity?: boolean;
|
|
15
15
|
readonly showReasoning?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The chat's subagent display names keyed by session id, read from the
|
|
18
|
+
* host list snapshot; settlement notices prefer them over the raw ids.
|
|
19
|
+
*/
|
|
20
|
+
readonly subagentNames?: Readonly<Record<string, string>>;
|
|
21
|
+
/** Sign settlement titles with deterministic codenames. */
|
|
22
|
+
readonly subagentCodenames?: boolean;
|
|
16
23
|
}): readonly QaMessage[];
|
|
17
24
|
//# sourceMappingURL=QaTranscriptAdapter.d.ts.map
|
|
@@ -6,8 +6,15 @@ import type { QaLockdownProof, ResolvedQaSurfaceConfig } from "../types.js";
|
|
|
6
6
|
* reason class and an operator hint.
|
|
7
7
|
*/
|
|
8
8
|
export declare class QaPolicyAttestationError extends Error {
|
|
9
|
-
|
|
9
|
+
readonly reason: string | null;
|
|
10
|
+
constructor(reason?: string | null);
|
|
10
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Refusals that classify an existing chat as belonging to an older deployment
|
|
14
|
+
* composition. Keeping only its transcript is safe: policyReady stays false,
|
|
15
|
+
* so no prompt, cancel, approval or question reaches the Host.
|
|
16
|
+
*/
|
|
17
|
+
export declare function canOpenAsCompatibilityReadOnly(reason: string | null): boolean;
|
|
11
18
|
/**
|
|
12
19
|
* Extract the coarse attestation reason code from a Host wire failure, if the
|
|
13
20
|
* failure carries the marker.
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { QaAttachmentDraft } from "../../types.js";
|
|
2
2
|
import { type QaAttachmentLimits } from "../attachments.js";
|
|
3
|
+
import type { QaQuickQuestion } from "../types.js";
|
|
3
4
|
export interface QaComposerProps {
|
|
4
5
|
readonly placeholder: string;
|
|
5
|
-
|
|
6
|
+
/** Shown while the chat is empty; the label reads, the prompt sends. */
|
|
7
|
+
readonly quickQuestions?: readonly QaQuickQuestion[];
|
|
6
8
|
readonly canSend: boolean;
|
|
7
9
|
readonly canStop: boolean;
|
|
8
10
|
readonly running: boolean;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* rendering — the badge counts move with the session state anyway, so
|
|
5
5
|
* reference guards would never pay off here.
|
|
6
6
|
*/
|
|
7
|
+
import type { ReactNode } from "react";
|
|
7
8
|
/**
|
|
8
9
|
* The subagent indication for headerless deployments: a slim status line
|
|
9
10
|
* above the transcript with the way back to the parent chat. With a header,
|
|
@@ -33,9 +34,10 @@ export interface QaHeaderProps {
|
|
|
33
34
|
readonly fileCount: number;
|
|
34
35
|
readonly filesOpen: boolean;
|
|
35
36
|
readonly onOpenFiles: () => void;
|
|
37
|
+
readonly panelLauncher?: ReactNode;
|
|
36
38
|
readonly showReset: boolean;
|
|
37
39
|
readonly resetDisabled: boolean;
|
|
38
40
|
readonly onReset: () => void;
|
|
39
41
|
}
|
|
40
|
-
export declare function QaHeader({ logoUrl, title, viewingSubagent, onCloseSubagent, agentPreset, agentCount, agentsOpen, onToggleAgents, sourcesVisible, sourcesCount, sourcesComplete, sourcesOpen, onOpenSources, fileCount, filesOpen, onOpenFiles, showReset, resetDisabled, onReset, }: QaHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
export declare function QaHeader({ logoUrl, title, viewingSubagent, onCloseSubagent, agentPreset, agentCount, agentsOpen, onToggleAgents, sourcesVisible, sourcesCount, sourcesComplete, sourcesOpen, onOpenSources, fileCount, filesOpen, onOpenFiles, panelLauncher, showReset, resetDisabled, onReset, }: QaHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
41
43
|
//# sourceMappingURL=QaHeader.d.ts.map
|
|
@@ -9,12 +9,13 @@ export interface QaModalProps {
|
|
|
9
9
|
readonly children: ReactNode;
|
|
10
10
|
/** Actions pinned under the body; omit for a body-only dialog. */
|
|
11
11
|
readonly footer?: ReactNode;
|
|
12
|
+
readonly wide?: boolean;
|
|
12
13
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
14
|
+
* Panel size: `wide` fits prose that must not wrap mid-sentence, and
|
|
15
|
+
* `settings` the sectioned user-settings dialog, which needs both a
|
|
16
|
+
* comfortable height and a two-column body.
|
|
16
17
|
*/
|
|
17
|
-
readonly
|
|
18
|
+
readonly size?: "default" | "wide" | "settings";
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* The shared QA dialog shell: backdrop, panel, head with the close control,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { SessionSummary } from "@deepseek-ai/dsh-api-session-controller/client";
|
|
2
|
-
import type { QaAccountIdentityField, QaAccountProfile, QaAccountProfileInput } from "../../types.js";
|
|
3
2
|
/** One renderable row of the chat-history sidebar. */
|
|
4
3
|
export interface QaChatRow {
|
|
5
4
|
readonly id: string;
|
|
@@ -58,17 +57,15 @@ export interface QaSidebarProps {
|
|
|
58
57
|
readonly role: string;
|
|
59
58
|
readonly onLogout: () => void;
|
|
60
59
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
60
|
+
* Entry point of the user-settings dialog: the name to show and the way to
|
|
61
|
+
* open it. Omitted when the deployment gives the account nothing to
|
|
62
|
+
* configure, which also leaves the footer name as plain text. Memoized by
|
|
63
|
+
* the caller: this object is compared by reference.
|
|
64
64
|
*/
|
|
65
|
-
readonly
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
readonly
|
|
69
|
-
readonly instructionsMaxLength: number;
|
|
70
|
-
/** Persist edited fields; resolves to refusal copy, or null. */
|
|
71
|
-
readonly onSave: (input: QaAccountProfileInput) => Promise<string | null>;
|
|
65
|
+
readonly settings?: {
|
|
66
|
+
/** Full name the user wrote, or the email when they wrote none. */
|
|
67
|
+
readonly label: string;
|
|
68
|
+
readonly onOpen: () => void;
|
|
72
69
|
};
|
|
73
70
|
};
|
|
74
71
|
}
|
|
@@ -6,6 +6,19 @@ import { type RefObject } from "react";
|
|
|
6
6
|
* lets the transcript fill it.
|
|
7
7
|
*/
|
|
8
8
|
export declare const QA_CONTENT_EDGE_BUDGET = 176;
|
|
9
|
+
/**
|
|
10
|
+
* Band between the text column edge and the handle strip: the transcript keeps
|
|
11
|
+
* 16px of side padding and the strip's inner edge sits 24px outside the content
|
|
12
|
+
* box. A bled block that grows past this band slides under the 40px drag
|
|
13
|
+
* target, so the stylesheet holds the bleed inside it.
|
|
14
|
+
*/
|
|
15
|
+
export declare const QA_HANDLE_FREE_BAND = 40;
|
|
16
|
+
/**
|
|
17
|
+
* Ceiling for the assistant bleed (fenced code blocks) per side. Eight pixels
|
|
18
|
+
* short of the free band, so both the strip and its glow stay on empty gutter
|
|
19
|
+
* at every width; the stylesheet caps it once more by the live side gutter.
|
|
20
|
+
*/
|
|
21
|
+
export declare const QA_BLEED_MAX_WIDTH: number;
|
|
9
22
|
export declare function readQaContentWidth(storage: Pick<Storage, "getItem">, key: string): number | null;
|
|
10
23
|
export declare function writeQaContentWidth(storage: Pick<Storage, "setItem">, key: string, width: number): void;
|
|
11
24
|
/**
|
|
@@ -13,4 +13,5 @@ export { QaAccountsController } from "./QaAccountsController.js";
|
|
|
13
13
|
export { QaRouteController, matchesQaRoute } from "./QaRouteController.js";
|
|
14
14
|
export { QaSessionController } from "./QaSessionController.js";
|
|
15
15
|
export { projectTranscript } from "./QaTranscriptAdapter.js";
|
|
16
|
+
export type { QaSurfacePanelDefinition, QaSurfacePanelOpenOptions, QaSurfacePanelOwnerProps, QaSurfacePanelPresentation, QaSurfacePanels, } from "./panels/contract.js";
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PropsRenderSlots } from "@deepseek-ai/dsh-client-ui-slots";
|
|
2
|
+
import type { QaSurfacePanelRegistry } from "./registry.js";
|
|
3
|
+
export declare const QA_PANEL_DEFAULT_RATIO = 0.42;
|
|
4
|
+
export declare const QA_PANEL_MIN_PX = 320;
|
|
5
|
+
export declare const QA_CHAT_MIN_PX = 400;
|
|
6
|
+
export declare const QA_PANEL_MAX_RATIO = 0.7;
|
|
7
|
+
export declare const QA_PANEL_MOBILE_BREAKPOINT_PX = 768;
|
|
8
|
+
type RenderPanelSlot = PropsRenderSlots<"qa.surface.panel">["renderSlot"];
|
|
9
|
+
export declare function clampQaPanelWidth(width: number, available: number): number;
|
|
10
|
+
export interface QaPanelHostProps {
|
|
11
|
+
readonly panels: QaSurfacePanelRegistry;
|
|
12
|
+
readonly sessionId: string | null;
|
|
13
|
+
readonly qaToken?: string;
|
|
14
|
+
readonly renderSlot: RenderPanelSlot;
|
|
15
|
+
}
|
|
16
|
+
export declare function QaPanelHost({ panels, sessionId, qaToken, renderSlot, }: QaPanelHostProps): import("react/jsx-runtime").JSX.Element | null;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=PanelHost.d.ts.map
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export declare const QA_SURFACE_PANEL_SLOT: "qa.surface.panel";
|
|
2
|
+
export type QaSurfacePanelOpenReason = "user" | "extension" | "activity";
|
|
3
|
+
export type QaSurfacePanelCloseReason = "user" | "extension";
|
|
4
|
+
export type QaSurfacePanelPresentation = "side" | "fullscreen";
|
|
5
|
+
export interface QaSurfacePanelDefinition {
|
|
6
|
+
/** Globally unique implementation identity. Package names are preferred. */
|
|
7
|
+
readonly id: string;
|
|
8
|
+
/** Stable logical identity used by navigation. */
|
|
9
|
+
readonly kind: string;
|
|
10
|
+
/** User-facing, lazily localized title. */
|
|
11
|
+
readonly title: () => string;
|
|
12
|
+
readonly description?: () => string;
|
|
13
|
+
/** Presentation token interpreted by QA Surface, never a React value. */
|
|
14
|
+
readonly icon?: string;
|
|
15
|
+
readonly order?: number;
|
|
16
|
+
/** Defaults to true. Programmatic navigation remains available when false. */
|
|
17
|
+
readonly userVisible?: boolean;
|
|
18
|
+
/** Defaults to false. Hidden retained bodies stay mounted but inert. */
|
|
19
|
+
readonly keepMounted?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface QaSurfacePanelOpenOptions {
|
|
22
|
+
readonly focus?: boolean;
|
|
23
|
+
readonly params?: unknown;
|
|
24
|
+
readonly reason?: QaSurfacePanelOpenReason;
|
|
25
|
+
}
|
|
26
|
+
export interface QaSurfacePanelOwnerProps {
|
|
27
|
+
readonly panelId: string;
|
|
28
|
+
readonly panelKind: string;
|
|
29
|
+
readonly sessionId: string | null;
|
|
30
|
+
/**
|
|
31
|
+
* Current QA bearer credential for Host remotes that authorize access to
|
|
32
|
+
* `sessionId`. Panel plugins must not persist, log, or place it in URLs.
|
|
33
|
+
* Empty when QA accounts are disabled.
|
|
34
|
+
*/
|
|
35
|
+
readonly qaToken: string;
|
|
36
|
+
readonly visible: boolean;
|
|
37
|
+
readonly presentation: QaSurfacePanelPresentation;
|
|
38
|
+
readonly params: unknown;
|
|
39
|
+
readonly actions: {
|
|
40
|
+
close(): void;
|
|
41
|
+
reveal(options?: {
|
|
42
|
+
readonly focus?: boolean;
|
|
43
|
+
}): void;
|
|
44
|
+
};
|
|
45
|
+
/** Aborts with registration/body lifetime, never merely because it is hidden. */
|
|
46
|
+
readonly signal: AbortSignal;
|
|
47
|
+
}
|
|
48
|
+
export interface QaSurfacePanelContext {
|
|
49
|
+
readonly sessionId: string | null;
|
|
50
|
+
readonly qaToken: string;
|
|
51
|
+
}
|
|
52
|
+
export interface QaSurfacePanels {
|
|
53
|
+
register(definition: QaSurfacePanelDefinition): () => void;
|
|
54
|
+
open(kind: string, options?: QaSurfacePanelOpenOptions): boolean;
|
|
55
|
+
close(options?: {
|
|
56
|
+
readonly reason?: QaSurfacePanelCloseReason;
|
|
57
|
+
}): void;
|
|
58
|
+
toggle(kind: string): boolean;
|
|
59
|
+
isRegistered(kind: string): boolean;
|
|
60
|
+
getActiveKind(): string | null;
|
|
61
|
+
/** Current QA session/credential pair for activity-driven extensions. */
|
|
62
|
+
getContext(): QaSurfacePanelContext;
|
|
63
|
+
list(): readonly QaSurfacePanelDefinition[];
|
|
64
|
+
}
|
|
65
|
+
declare module "@deepseek-ai/cordis" {
|
|
66
|
+
interface Context {
|
|
67
|
+
qaSurfacePanels: QaSurfacePanels;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
declare module "@deepseek-ai/dsh-client-ui-slots" {
|
|
71
|
+
interface SlotMap {
|
|
72
|
+
/**
|
|
73
|
+
* QA Surface owns this keyed seat. Panel plugins register their body under
|
|
74
|
+
* the exact `QaSurfacePanelDefinition.id` used by the metadata service.
|
|
75
|
+
*/
|
|
76
|
+
"qa.surface.panel": {
|
|
77
|
+
kind: "keyed";
|
|
78
|
+
scope: "root";
|
|
79
|
+
owner: QaSurfacePanelOwnerProps;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { QA_SURFACE_PANEL_SLOT } from "./contract.js";
|
|
2
|
+
export type { QaSurfacePanelContext, QaSurfacePanelCloseReason, QaSurfacePanelDefinition, QaSurfacePanelOpenOptions, QaSurfacePanelOpenReason, QaSurfacePanelOwnerProps, QaSurfacePanelPresentation, QaSurfacePanels, } from "./contract.js";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { QaSurfacePanelDefinition, QaSurfacePanelContext, QaSurfacePanelOpenOptions, QaSurfacePanels } from "./contract.js";
|
|
2
|
+
export interface QaSurfacePanelsSnapshot {
|
|
3
|
+
readonly definitions: readonly QaSurfacePanelDefinition[];
|
|
4
|
+
readonly activeKind: string | null;
|
|
5
|
+
readonly params: unknown;
|
|
6
|
+
readonly focusRequest: number;
|
|
7
|
+
readonly focus: boolean;
|
|
8
|
+
}
|
|
9
|
+
/** Client-only metadata/navigation registry. It never stores React components. */
|
|
10
|
+
export declare class QaSurfacePanelRegistry implements QaSurfacePanels {
|
|
11
|
+
private readonly byId;
|
|
12
|
+
private readonly byKind;
|
|
13
|
+
private readonly listeners;
|
|
14
|
+
private readonly paramsByKind;
|
|
15
|
+
private activeKind;
|
|
16
|
+
private focusRequest;
|
|
17
|
+
private focus;
|
|
18
|
+
private snapshot;
|
|
19
|
+
private context;
|
|
20
|
+
private disposed;
|
|
21
|
+
readonly subscribe: (listener: () => void) => (() => void);
|
|
22
|
+
readonly getSnapshot: () => QaSurfacePanelsSnapshot;
|
|
23
|
+
register(definition: QaSurfacePanelDefinition): () => void;
|
|
24
|
+
open(kind: string, options?: QaSurfacePanelOpenOptions): boolean;
|
|
25
|
+
close(_options?: {
|
|
26
|
+
readonly reason?: "user" | "extension";
|
|
27
|
+
}): void;
|
|
28
|
+
toggle(kind: string): boolean;
|
|
29
|
+
isRegistered(kind: string): boolean;
|
|
30
|
+
getActiveKind(): string | null;
|
|
31
|
+
getContext(): QaSurfacePanelContext;
|
|
32
|
+
/** QA Surface-owned lifecycle update; extensions consume it read-only. */
|
|
33
|
+
setContext(context: QaSurfacePanelContext): void;
|
|
34
|
+
list(): readonly QaSurfacePanelDefinition[];
|
|
35
|
+
signal(kind: string): AbortSignal | undefined;
|
|
36
|
+
params(kind: string): unknown;
|
|
37
|
+
dispose(): void;
|
|
38
|
+
private publish;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -18,10 +18,17 @@ export interface QaBoundProjectionInput {
|
|
|
18
18
|
readonly questions: readonly QaPendingQuestion[];
|
|
19
19
|
readonly operationError: string | null;
|
|
20
20
|
readonly policyReady: boolean;
|
|
21
|
+
/** Historical binding retained for transcript access after policy drift. */
|
|
22
|
+
readonly compatibilityReadOnly?: boolean;
|
|
21
23
|
readonly admissionPending: boolean;
|
|
22
24
|
readonly chatsRevision: number;
|
|
23
25
|
readonly viewingSubagent: QaSubagentView | null;
|
|
24
26
|
readonly config: ResolvedQaSurfaceConfig;
|
|
27
|
+
/**
|
|
28
|
+
* The chat's subagent display names keyed by session id, read from the
|
|
29
|
+
* host list snapshot; settlement notices prefer them over the raw ids.
|
|
30
|
+
*/
|
|
31
|
+
readonly subagentNames?: Readonly<Record<string, string>>;
|
|
25
32
|
/**
|
|
26
33
|
* The chat owner's display name for author labels; present only when an
|
|
27
34
|
* admin reads a foreign chat (chat-level, not per-message).
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Documents: the document pipeline's deployment knobs.
|
|
3
|
+
*
|
|
4
|
+
* Everything here is optional — the defaults are usable as they are — but two
|
|
5
|
+
* of them decide whether the four document tools work at all in a given
|
|
6
|
+
* deployment: the Docling endpoint and the executables the renderer needs.
|
|
7
|
+
* The section therefore shows the effective values the Host resolved, not only
|
|
8
|
+
* what this browser has written.
|
|
9
|
+
*/
|
|
10
|
+
import { type ConfigProps } from "./common.js";
|
|
11
|
+
/** Document creation, conversion and extraction. */
|
|
12
|
+
export declare function DocumentsSection(props: ConfigProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -15,6 +15,7 @@ export { AccessSection } from "./sections/access.js";
|
|
|
15
15
|
export { AccountsSection } from "./sections/accounts.js";
|
|
16
16
|
export { AttachmentsSection } from "./sections/attachments.js";
|
|
17
17
|
export { BrandingSection } from "./sections/branding.js";
|
|
18
|
+
export { DocumentsSection } from "./sections/documents.js";
|
|
18
19
|
export { EmbeddingSection } from "./sections/embedding.js";
|
|
19
20
|
export { InterfaceSection } from "./sections/interface.js";
|
|
20
21
|
export { LockdownSection } from "./sections/lockdown.js";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Context } from "@deepseek-ai/cordis";
|
|
2
|
+
import type { ComponentType } from "react";
|
|
3
|
+
/** Trusted browser identity supplied by QA Surface to a settings extension. */
|
|
4
|
+
export interface QaUserSettingsSectionProps {
|
|
5
|
+
/** Current QA account token. It is used only as transport authentication. */
|
|
6
|
+
readonly token: string;
|
|
7
|
+
}
|
|
8
|
+
/** One first-class page in the signed-in user's QA settings dialog. */
|
|
9
|
+
export interface QaUserSettingsSectionRegistration {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly title: string;
|
|
12
|
+
readonly order?: number;
|
|
13
|
+
readonly component: ComponentType<QaUserSettingsSectionProps>;
|
|
14
|
+
}
|
|
15
|
+
export interface QaUserSettingsSectionsSnapshot {
|
|
16
|
+
readonly sections: readonly QaUserSettingsSectionRegistration[];
|
|
17
|
+
readonly revision: number;
|
|
18
|
+
}
|
|
19
|
+
/** Client-side registry exposed by QA Surface to additive plugins. */
|
|
20
|
+
export interface QaUserSettingsSections {
|
|
21
|
+
readonly subscribe: (listener: () => void) => () => void;
|
|
22
|
+
readonly getSnapshot: () => QaUserSettingsSectionsSnapshot;
|
|
23
|
+
register(section: QaUserSettingsSectionRegistration): () => void;
|
|
24
|
+
}
|
|
25
|
+
declare module "@deepseek-ai/cordis" {
|
|
26
|
+
interface Context {
|
|
27
|
+
qaUserSettingsSections: QaUserSettingsSections;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Structural face used by consumers that do not otherwise depend on Cordis. */
|
|
31
|
+
export type QaUserSettingsSectionsContext = Pick<Context, "qaUserSettingsSections">;
|
|
32
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { QaUserSettingsSectionProps, QaUserSettingsSectionRegistration, QaUserSettingsSections, QaUserSettingsSectionsContext, QaUserSettingsSectionsSnapshot, } from "./contract.js";
|
|
2
|
+
export { QaUserSettingsSectionRegistry } from "./registry.js";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { QaUserSettingsSectionRegistration, QaUserSettingsSections, QaUserSettingsSectionsSnapshot } from "./contract.js";
|
|
2
|
+
/** Deterministic, observable registry backing the settings extension service. */
|
|
3
|
+
export declare class QaUserSettingsSectionRegistry implements QaUserSettingsSections {
|
|
4
|
+
private readonly entries;
|
|
5
|
+
private readonly listeners;
|
|
6
|
+
private revision;
|
|
7
|
+
private disposed;
|
|
8
|
+
private snapshot;
|
|
9
|
+
readonly subscribe: (listener: () => void) => (() => void);
|
|
10
|
+
readonly getSnapshot: () => QaUserSettingsSectionsSnapshot;
|
|
11
|
+
register(section: QaUserSettingsSectionRegistration): () => void;
|
|
12
|
+
dispose(): void;
|
|
13
|
+
private publish;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=registry.d.ts.map
|