@yadsh/dsh-qa-surface 0.15.7 → 0.17.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 +27 -2
- package/lib/access/capability-catalog.js +11 -4
- package/lib/access/capability-catalog.js.map +1 -1
- package/lib/access/service.js +46 -5
- package/lib/access/service.js.map +1 -1
- package/lib/account-remotes.js +9 -0
- package/lib/account-remotes.js.map +1 -1
- package/lib/accounts/database.js +34 -3
- package/lib/accounts/database.js.map +1 -1
- package/lib/accounts/store.js +22 -2
- package/lib/accounts/store.js.map +1 -1
- package/lib/admin/service.js +4 -2
- package/lib/admin/service.js.map +1 -1
- package/lib/admin/session-log.js +3 -0
- package/lib/admin/session-log.js.map +1 -1
- package/lib/agent-scope.js +9 -0
- package/lib/agent-scope.js.map +1 -0
- package/lib/chat-sharing/native-fence.js +120 -0
- package/lib/chat-sharing/native-fence.js.map +1 -0
- package/lib/chat-sharing/resources.js +57 -0
- package/lib/chat-sharing/resources.js.map +1 -0
- package/lib/chat-sharing/store.js +199 -0
- package/lib/chat-sharing/store.js.map +1 -0
- package/lib/chat-sharing/transport.js +329 -0
- package/lib/chat-sharing/transport.js.map +1 -0
- package/lib/chat-sharing/turn-guard.js +154 -0
- package/lib/chat-sharing/turn-guard.js.map +1 -0
- package/lib/chat-sharing/types.js +2 -0
- package/lib/chat-sharing/types.js.map +1 -0
- package/lib/chat-sharing/uploads.js +55 -0
- package/lib/chat-sharing/uploads.js.map +1 -0
- package/lib/client/QaAccountsController.js +47 -2
- package/lib/client/QaAccountsController.js.map +1 -1
- package/lib/client/QaConfigController.js +7 -12
- package/lib/client/QaConfigController.js.map +1 -1
- package/lib/client/QaSessionController.js +195 -19
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +156 -14
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/QaSurfaceGuard.js +6 -1
- package/lib/client/QaSurfaceGuard.js.map +1 -1
- package/lib/client/QaTranscriptAdapter.js +28 -5
- package/lib/client/QaTranscriptAdapter.js.map +1 -1
- package/lib/client/account-conversation.js +33 -0
- package/lib/client/account-conversation.js.map +1 -0
- package/lib/client/account-sessions.js +106 -0
- package/lib/client/account-sessions.js.map +1 -0
- package/lib/client/account-upload.js +30 -0
- package/lib/client/account-upload.js.map +1 -0
- package/lib/client/answer-review.js +89 -0
- package/lib/client/answer-review.js.map +1 -0
- package/lib/client/chat-artifacts.js +18 -3
- package/lib/client/chat-artifacts.js.map +1 -1
- package/lib/client/chat-sharing-api.js +2 -0
- package/lib/client/chat-sharing-api.js.map +1 -0
- package/lib/client/components/QaAnswerReviewStatus.js +45 -0
- package/lib/client/components/QaAnswerReviewStatus.js.map +1 -0
- package/lib/client/components/QaChangelog.js +92 -3
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/components/QaChatActions.js +52 -0
- package/lib/client/components/QaChatActions.js.map +1 -0
- package/lib/client/components/QaChatSharing.js +95 -0
- package/lib/client/components/QaChatSharing.js.map +1 -0
- package/lib/client/components/QaComposer.js +8 -4
- package/lib/client/components/QaComposer.js.map +1 -1
- package/lib/client/components/QaFileAttachment.js +12 -3
- package/lib/client/components/QaFileAttachment.js.map +1 -1
- package/lib/client/components/QaFilesPanel.js +11 -4
- package/lib/client/components/QaFilesPanel.js.map +1 -1
- package/lib/client/components/QaHeader.js +3 -3
- package/lib/client/components/QaHeader.js.map +1 -1
- package/lib/client/components/QaMarkdownPreview.js +86 -0
- package/lib/client/components/QaMarkdownPreview.js.map +1 -0
- package/lib/client/components/QaMessage.js +41 -10
- package/lib/client/components/QaMessage.js.map +1 -1
- package/lib/client/components/QaModal.js +17 -0
- package/lib/client/components/QaModal.js.map +1 -1
- package/lib/client/components/QaRightRail.js +6 -4
- package/lib/client/components/QaRightRail.js.map +1 -1
- package/lib/client/components/QaRightRailResize.js +129 -0
- package/lib/client/components/QaRightRailResize.js.map +1 -0
- package/lib/client/components/QaSidebar.js +11 -2
- package/lib/client/components/QaSidebar.js.map +1 -1
- package/lib/client/components/QaSourceFilters.js +22 -0
- package/lib/client/components/QaSourceFilters.js.map +1 -0
- package/lib/client/components/QaSourcesPanel.js +66 -14
- package/lib/client/components/QaSourcesPanel.js.map +1 -1
- package/lib/client/components/QaSpreadsheetPreview.js +56 -0
- package/lib/client/components/QaSpreadsheetPreview.js.map +1 -0
- package/lib/client/components/QaWelcomeNotice.js +2 -2
- package/lib/client/components/QaWelcomeNotice.js.map +1 -1
- package/lib/client/components/QaWorkspaceBrowser.js +46 -12
- package/lib/client/components/QaWorkspaceBrowser.js.map +1 -1
- package/lib/client/components/QaZoomImage.js +56 -0
- package/lib/client/components/QaZoomImage.js.map +1 -0
- package/lib/client/components/source-refs.js +57 -24
- package/lib/client/components/source-refs.js.map +1 -1
- package/lib/client/index.js +76 -8
- package/lib/client/index.js.map +1 -1
- package/lib/client/lineage.js +4 -3
- package/lib/client/lineage.js.map +1 -1
- package/lib/client/markdown/SourceImage.js +52 -0
- package/lib/client/markdown/SourceImage.js.map +1 -0
- package/lib/client/markdown/blocks.js +150 -115
- package/lib/client/markdown/blocks.js.map +1 -1
- package/lib/client/markdown/katex-css.js +1 -1
- package/lib/client/markdown/render.js +26 -9
- package/lib/client/markdown/render.js.map +1 -1
- package/lib/client/markdown/source-chip.js +6 -2
- package/lib/client/markdown/source-chip.js.map +1 -1
- package/lib/client/notifications/notification-dispatcher.js +50 -11
- package/lib/client/notifications/notification-dispatcher.js.map +1 -1
- package/lib/client/notifications/use-turn-notifications.js +107 -18
- package/lib/client/notifications/use-turn-notifications.js.map +1 -1
- package/lib/client/project-session-state.js +28 -13
- package/lib/client/project-session-state.js.map +1 -1
- package/lib/client/session-admission.js +9 -1
- package/lib/client/session-admission.js.map +1 -1
- package/lib/client/session-sources.js +44 -3
- package/lib/client/session-sources.js.map +1 -1
- package/lib/client/settings/sections/sources.js +1 -1
- package/lib/client/settings/sections/sources.js.map +1 -1
- package/lib/client/settings/styles.js +18 -28
- package/lib/client/settings/styles.js.map +1 -1
- package/lib/client/slash/useSlashNavigation.js +8 -5
- package/lib/client/slash/useSlashNavigation.js.map +1 -1
- package/lib/client/source-filters-styles.js +11 -0
- package/lib/client/source-filters-styles.js.map +1 -0
- package/lib/client/source-preview.js +1 -1
- package/lib/client/source-preview.js.map +1 -1
- package/lib/client/styles.js +62 -4
- package/lib/client/styles.js.map +1 -1
- package/lib/client/turn-sources.js +2 -1
- package/lib/client/turn-sources.js.map +1 -1
- package/lib/client/types.js.map +1 -1
- package/lib/client/use-right-rail.js +1 -1
- package/lib/client/use-right-rail.js.map +1 -1
- package/lib/client/user-settings/IntegrationTokensPage.js +30 -6
- package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -1
- package/lib/client/workspace-download.js +42 -2
- package/lib/client/workspace-download.js.map +1 -1
- package/lib/client.js +6481 -2234
- package/lib/client.js.map +1 -1
- package/lib/config-resolvers/defaults.js +4 -3
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config-resolvers/sources.js +2 -0
- package/lib/config-resolvers/sources.js.map +1 -1
- package/lib/config.js +3 -0
- package/lib/config.js.map +1 -1
- package/lib/enforcement/skill-policy.js +29 -4
- package/lib/enforcement/skill-policy.js.map +1 -1
- package/lib/enforcement/skill-resource-paths.js +32 -0
- package/lib/enforcement/skill-resource-paths.js.map +1 -0
- package/lib/enforcement/structured-result.js +38 -0
- package/lib/enforcement/structured-result.js.map +1 -0
- package/lib/enforcement/tool-grants.js +3 -1
- package/lib/enforcement/tool-grants.js.map +1 -1
- package/lib/index.js +447 -17
- package/lib/index.js.map +1 -1
- package/lib/integration/host-runner.js +1 -0
- package/lib/integration/host-runner.js.map +1 -1
- package/lib/integration/question-policy.js +126 -0
- package/lib/integration/question-policy.js.map +1 -0
- package/lib/integration/service.js +2 -0
- package/lib/integration/service.js.map +1 -1
- package/lib/llm-identity.js +27 -0
- package/lib/llm-identity.js.map +1 -0
- package/lib/markdown-frontmatter.js +47 -0
- package/lib/markdown-frontmatter.js.map +1 -0
- package/lib/markdown-images.js +33 -0
- package/lib/markdown-images.js.map +1 -0
- package/lib/prompt-notes.js +19 -2
- package/lib/prompt-notes.js.map +1 -1
- package/lib/provenance/collector.js +15 -1
- package/lib/provenance/collector.js.map +1 -1
- package/lib/provenance/connectors.js +57 -27
- package/lib/provenance/connectors.js.map +1 -1
- package/lib/provenance/dedupe.js +25 -1
- package/lib/provenance/dedupe.js.map +1 -1
- package/lib/provenance/document-preview.js +31 -3
- package/lib/provenance/document-preview.js.map +1 -1
- package/lib/provenance/extractors.js +88 -4
- package/lib/provenance/extractors.js.map +1 -1
- package/lib/provenance/file-download.js +56 -0
- package/lib/provenance/file-download.js.map +1 -0
- package/lib/provenance/file-preview.js +20 -2
- package/lib/provenance/file-preview.js.map +1 -1
- package/lib/provenance/host-store.js +59 -10
- package/lib/provenance/host-store.js.map +1 -1
- package/lib/provenance/integration-extractor.js +62 -0
- package/lib/provenance/integration-extractor.js.map +1 -0
- package/lib/provenance/snapshot-store.js +2 -0
- package/lib/provenance/snapshot-store.js.map +1 -1
- package/lib/provenance/source-content.js +103 -0
- package/lib/provenance/source-content.js.map +1 -0
- package/lib/provenance/source-image.js +57 -0
- package/lib/provenance/source-image.js.map +1 -0
- package/lib/provenance/spreadsheet-preview.js +52 -0
- package/lib/provenance/spreadsheet-preview.js.map +1 -0
- package/lib/qa-tools/docs-tools.js +14 -0
- package/lib/qa-tools/docs-tools.js.map +1 -1
- package/lib/questions.js +6 -1
- package/lib/questions.js.map +1 -1
- package/lib/secure-session.js +9 -3
- package/lib/secure-session.js.map +1 -1
- package/lib/session-fork-host.js +157 -0
- package/lib/session-fork-host.js.map +1 -0
- package/lib/session-fork.js +34 -0
- package/lib/session-fork.js.map +1 -0
- package/lib/session-ownership.js +5 -1
- package/lib/session-ownership.js.map +1 -1
- package/lib/shared/documents.js +12 -0
- package/lib/shared/documents.js.map +1 -1
- package/lib/shared/session-lineage.js +6 -0
- package/lib/shared/session-lineage.js.map +1 -0
- package/lib/slash/draft-target.js +21 -0
- package/lib/slash/draft-target.js.map +1 -0
- package/lib/slash/remotes.js +39 -4
- package/lib/slash/remotes.js.map +1 -1
- package/lib/typert.host.js +1869 -163
- package/lib/typert.remote-client.d.ts +56 -5
- package/lib/typert.remote-client.js +1678 -154
- package/lib/types/access/capability-catalog.d.ts +1 -1
- package/lib/types/access/service.d.ts +7 -0
- package/lib/types/access.js +2 -0
- package/lib/types/access.js.map +1 -0
- package/lib/types/account-remotes.d.ts +3 -0
- package/lib/types/accounts/database.d.ts +5 -0
- package/lib/types/accounts/store.d.ts +7 -2
- package/lib/types/accounts.js +2 -0
- package/lib/types/accounts.js.map +1 -0
- package/lib/types/admin/session-log.d.ts +2 -0
- package/lib/types/admin.js +2 -0
- package/lib/types/admin.js.map +1 -0
- package/lib/types/agent-scope.d.ts +4 -0
- package/lib/types/answer-review.js +2 -0
- package/lib/types/answer-review.js.map +1 -0
- package/lib/types/capability.js +2 -0
- package/lib/types/capability.js.map +1 -0
- package/lib/types/chat-sharing/native-fence.d.ts +11 -0
- package/lib/types/chat-sharing/resources.d.ts +5 -0
- package/lib/types/chat-sharing/store.d.ts +29 -0
- package/lib/types/chat-sharing/transport.d.ts +32 -0
- package/lib/types/chat-sharing/turn-guard.d.ts +21 -0
- package/lib/types/chat-sharing/types.d.ts +25 -0
- package/lib/types/chat-sharing/uploads.d.ts +5 -0
- package/lib/types/client/QaAccountsController.d.ts +4 -0
- package/lib/types/client/QaConfigController.d.ts +3 -2
- package/lib/types/client/QaSessionController.d.ts +17 -3
- package/lib/types/client/QaSurface.d.ts +6 -1
- package/lib/types/client/account-conversation.d.ts +6 -0
- package/lib/types/client/account-sessions.d.ts +7 -0
- package/lib/types/client/account-upload.d.ts +15 -0
- package/lib/types/client/answer-review.d.ts +16 -0
- package/lib/types/client/chat-sharing-api.d.ts +35 -0
- package/lib/types/client/components/QaAnswerReviewStatus.d.ts +8 -0
- package/lib/types/client/components/QaChatActions.d.ts +7 -0
- package/lib/types/client/components/QaChatSharing.d.ts +12 -0
- package/lib/types/client/components/QaComposer.d.ts +2 -0
- package/lib/types/client/components/QaFileAttachment.d.ts +3 -2
- package/lib/types/client/components/QaFilesPanel.d.ts +4 -1
- package/lib/types/client/components/QaMarkdownPreview.d.ts +13 -0
- package/lib/types/client/components/QaMessage.d.ts +5 -2
- package/lib/types/client/components/QaModal.d.ts +9 -0
- package/lib/types/client/components/QaRightRail.d.ts +3 -2
- package/lib/types/client/components/QaRightRailResize.d.ts +9 -0
- package/lib/types/client/components/QaSidebar.d.ts +2 -0
- package/lib/types/client/components/QaSourceFilters.d.ts +12 -0
- package/lib/types/client/components/QaSpreadsheetPreview.d.ts +8 -0
- package/lib/types/client/components/QaWelcomeNotice.d.ts +1 -1
- package/lib/types/client/components/QaWorkspaceBrowser.d.ts +8 -1
- package/lib/types/client/components/QaZoomImage.d.ts +38 -0
- package/lib/types/client/components/source-refs.d.ts +1 -0
- package/lib/types/client/lineage.d.ts +2 -2
- package/lib/types/client/markdown/SourceImage.d.ts +7 -0
- package/lib/types/client/markdown/blocks.d.ts +8 -1
- package/lib/types/client/markdown/render.d.ts +5 -1
- package/lib/types/client/markdown/source-chip.d.ts +1 -0
- package/lib/types/client/notifications/notification-dispatcher.d.ts +10 -6
- package/lib/types/client/notifications/use-turn-notifications.d.ts +4 -0
- package/lib/types/client/project-session-state.d.ts +1 -0
- package/lib/types/client/session-admission.d.ts +2 -0
- package/lib/types/client/session-sources.d.ts +1 -0
- package/lib/types/client/settings/styles.d.ts +2 -5
- package/lib/types/client/source-filters-styles.d.ts +2 -0
- package/lib/types/client/turn-sources.d.ts +1 -1
- package/lib/types/client/types.d.ts +18 -5
- package/lib/types/client/workspace-download.d.ts +9 -1
- package/lib/types/config.js +2 -0
- package/lib/types/config.js.map +1 -0
- package/lib/types/documents.js +2 -0
- package/lib/types/documents.js.map +1 -0
- package/lib/types/enforcement/skill-resource-paths.d.ts +5 -0
- package/lib/types/enforcement/structured-result.d.ts +11 -0
- package/lib/types/expert-memory.js +2 -0
- package/lib/types/expert-memory.js.map +1 -0
- package/lib/types/index.d.ts +42 -3
- package/lib/types/integration/contract.d.ts +1 -0
- package/lib/types/integration/question-policy.d.ts +20 -0
- package/lib/types/integration/service.d.ts +1 -0
- package/lib/types/llm-identity.d.ts +20 -0
- package/lib/types/markdown-frontmatter.d.ts +10 -0
- package/lib/types/markdown-images.d.ts +3 -0
- package/lib/types/policy.js +2 -0
- package/lib/types/policy.js.map +1 -0
- package/lib/types/prompt-notes.d.ts +3 -1
- package/lib/types/provenance/connectors.d.ts +4 -1
- package/lib/types/provenance/document-preview.d.ts +5 -2
- package/lib/types/provenance/extractors.d.ts +2 -0
- package/lib/types/provenance/file-download.d.ts +10 -0
- package/lib/types/provenance/file-preview.d.ts +2 -1
- package/lib/types/provenance/host-store.d.ts +2 -0
- package/lib/types/provenance/integration-extractor.d.ts +5 -0
- package/lib/types/provenance/source-content.d.ts +19 -0
- package/lib/types/provenance/source-image.d.ts +4 -0
- package/lib/types/provenance/spreadsheet-preview.d.ts +5 -0
- package/lib/types/provenance/types.d.ts +5 -0
- package/lib/types/qa-tools/docs-tools.d.ts +2 -0
- package/lib/types/quality.js +7 -0
- package/lib/types/quality.js.map +1 -0
- package/lib/types/questions.d.ts +2 -1
- package/lib/types/session-fork-host.d.ts +27 -0
- package/lib/types/session-fork.d.ts +7 -0
- package/lib/types/session.js +2 -0
- package/lib/types/session.js.map +1 -0
- package/lib/types/shared/documents.d.ts +2 -0
- package/lib/types/shared/session-lineage.d.ts +7 -0
- package/lib/types/skills.js +2 -0
- package/lib/types/skills.js.map +1 -0
- package/lib/types/slash/draft-target.d.ts +7 -0
- package/lib/types/slash/remotes.d.ts +7 -0
- package/lib/types/slash.js +2 -0
- package/lib/types/slash.js.map +1 -0
- package/lib/types/types/access.d.ts +43 -0
- package/lib/types/types/accounts.d.ts +177 -0
- package/lib/types/types/admin.d.ts +286 -0
- package/lib/types/types/answer-review.d.ts +11 -0
- package/lib/types/types/capability.d.ts +230 -0
- package/lib/types/types/config.d.ts +597 -0
- package/lib/types/types/documents.d.ts +34 -0
- package/lib/types/types/expert-memory.d.ts +35 -0
- package/lib/types/types/policy.d.ts +54 -0
- package/lib/types/types/quality.d.ts +100 -0
- package/lib/types/types/session.d.ts +397 -0
- package/lib/types/types/skills.d.ts +143 -0
- package/lib/types/types/slash.d.ts +159 -0
- package/lib/types/types.d.ts +14 -2180
- package/package.json +8 -7
package/lib/types/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import type { QaChatAccess, QaChatGrant, QaChatMode, QaChatAuthor, QaChatJson } from "./chat-sharing/types.js";
|
|
2
|
+
import type { SessionPageRequest, SessionFollowRequest, SessionPromptRequest, SessionPromptValue, SessionAttachmentRequest, SessionAttachmentValue, SessionRenameRequest, SessionRenameValue, SessionCancelValue, SessionUpdateQueueRequest, SessionUpdateQueueValue, SessionSearchRequest, SessionSelectModelRequest, SessionSelectModelValue } from "@deepseek-ai/dsh-api-session-controller/types";
|
|
1
3
|
import { TypertRemoteService } from "@deepseek-ai/dsh-typert-protocol";
|
|
2
4
|
import type { Context } from "@deepseek-ai/cordis";
|
|
3
5
|
import type { QaSurfaceConfigRefs } from "./config.js";
|
|
4
6
|
import type { QaAccountNotificationsInput } from "./types.js";
|
|
5
7
|
import type { QaTurnSources } from "./provenance/types.js";
|
|
6
|
-
import type { QaAccountProfileInput, QaAccountSession, QaAccountStartersInput, QaAccountUserPublic, QaApprovalDecision, QaClaimResult, QaDocumentPreview, QaIssuedServiceToken, QaLockdownProof, QaOwnershipEntry, QaPasswordResetRequest, QaPendingApproval, QaPendingQuestion, QaQuestionAnswerItem, QaQueueStatus, QaServiceTokenCreateInput, QaServiceTokenSummary, ResolvedQaSurfaceConfig, QaAdminSkillScope, QaAdminSkillsView, QaExpertMemoryDraft, QaExpertMemoryPage, QaExpertMemoryRecord, QaExpertMemoryScope, QaSkillDocument, QaSkillDraftInput, QaSkillRemoval, QaSkillSummary, QaSkillToolDescriptor, QaSkillValidation, QaSourceFilePreview, QaWhoamiResult, QaWorkspaceFile, QaWorkspaceListing, QaPrincipal, QaAccessAdminSnapshot, QaAdminAuditEvent, QaAdminOverview, QaAdminPage, QaAdminUserDetail, QaAdminUserRow, QaAdminUserUpdate, QaAuditQuery, QaCapabilitySelection, QaConversationDetail, QaConversationDeletion, QaConversationQuery, QaConversationReview, QaConversationReviewInput, QaConversationSummary, QaCurrentAccess, QaFeedbackHarvestEntry, QaFeedbackHarvestResult, QaFeedbackQuery, QaFeedbackRow, QaMessageFeedback, QaMessageFeedbackInput, QaModelCatalogEntry, QaModelPair, QaQualityMetrics, QaReviewQueueItem, QaReviewQueueRow, QaSessionAccess, QaSlashCatalog, QaSlashExecution, QaSlashSubmitAttachment, QaSkillActivationRecord, QaSkillAssignmentOverride, QaSubrole, QaUserAccess, QaUserQuery } from "./types.js";
|
|
8
|
+
import type { QaAccountProfileInput, QaAccountSession, QaAccountStartersInput, QaAccountUserPublic, QaApprovalDecision, QaClaimResult, QaDocumentPreview, QaSpreadsheetPreviewSelection, QaDocumentWorkflowStatus, QaIssuedServiceToken, QaLockdownProof, QaOwnershipEntry, QaPasswordResetRequest, QaPendingApproval, QaPendingQuestion, QaQuestionAnswerItem, QaQueueStatus, QaServiceTokenCreateInput, QaServiceTokenSummary, ResolvedQaSurfaceConfig, QaAdminSkillScope, QaAdminSkillsView, QaExpertMemoryDraft, QaExpertMemoryPage, QaExpertMemoryRecord, QaExpertMemoryScope, QaSkillDocument, QaSkillDraftInput, QaSkillRemoval, QaSkillSummary, QaSkillToolDescriptor, QaSkillValidation, QaSourceFilePreview, QaWhoamiResult, QaWorkspaceFile, QaWorkspaceFileChunk, QaWorkspaceListing, QaPrincipal, QaAccessAdminSnapshot, QaAdminAuditEvent, QaAdminOverview, QaAdminPage, QaAdminUserDetail, QaAdminUserRow, QaAdminUserUpdate, QaAuditQuery, QaCapabilitySelection, QaConversationDetail, QaConversationDeletion, QaConversationQuery, QaConversationReview, QaConversationReviewInput, QaConversationSummary, QaCurrentAccess, QaFeedbackHarvestEntry, QaFeedbackHarvestResult, QaFeedbackQuery, QaFeedbackRow, QaMessageFeedback, QaMessageFeedbackInput, QaModelCatalogEntry, QaModelPair, QaQualityMetrics, QaReviewQueueItem, QaReviewQueueRow, QaSessionAccess, QaSlashCatalog, QaSlashExecution, QaSlashSubmitAttachment, QaSkillActivationRecord, QaSkillAssignmentOverride, QaSubrole, QaUserAccess, QaUserQuery } from "./types.js";
|
|
7
9
|
export declare const name = "qa-surface";
|
|
8
10
|
export declare const inject: string[];
|
|
9
11
|
import { QA_SURFACE_SETTINGS_NAMESPACE } from "./shared/settings.js";
|
|
@@ -66,6 +68,10 @@ export declare class QaSurface extends TypertRemoteService {
|
|
|
66
68
|
* opens the admin console never grows one.
|
|
67
69
|
*/
|
|
68
70
|
private qualityStore;
|
|
71
|
+
private chatSharingStore;
|
|
72
|
+
private readonly chatTransport;
|
|
73
|
+
private readonly chatTurnGuard;
|
|
74
|
+
private sharing;
|
|
69
75
|
constructor(ctx: Context, entry?: Partial<QaSurfaceConfigRefs>);
|
|
70
76
|
/** The quality store, opening its file the first time anyone needs it. */
|
|
71
77
|
private quality;
|
|
@@ -208,6 +214,9 @@ export declare class QaSurface extends TypertRemoteService {
|
|
|
208
214
|
accountsRevokeServiceToken(token: string, tokenId: string): {
|
|
209
215
|
readonly revoked: boolean;
|
|
210
216
|
};
|
|
217
|
+
accountsSetServiceTokenClarifications(token: string, tokenId: string, allowed: boolean): {
|
|
218
|
+
readonly updated: boolean;
|
|
219
|
+
};
|
|
211
220
|
/**
|
|
212
221
|
* Serve the effective QA configuration to the browser. The DSH gateway pins
|
|
213
222
|
* settings RPCs to loopback, so a browser served over the LAN always sees
|
|
@@ -236,6 +245,8 @@ export declare class QaSurface extends TypertRemoteService {
|
|
|
236
245
|
* intentionally not registered or attached as another DSH workspace.
|
|
237
246
|
*/
|
|
238
247
|
createSession(token: string, subroleId: string | null, adminPreview: boolean): Promise<string>;
|
|
248
|
+
/** Create an independently admitted ordinary branch of the caller's own chat. */
|
|
249
|
+
forkSession(token: string, sourceId: string, answerSeq: number): Promise<string>;
|
|
239
250
|
/** The selector model for the signed-in user; admin grants are irrelevant. */
|
|
240
251
|
accessCurrent(token: string): QaCurrentAccess;
|
|
241
252
|
/** The immutable role pinned to an existing session. */
|
|
@@ -341,6 +352,27 @@ export declare class QaSurface extends TypertRemoteService {
|
|
|
341
352
|
adminAudit(token: string, query: QaAuditQuery, cursor: string | null, limit: number | null): Promise<QaAdminPage<QaAdminAuditEvent>>;
|
|
342
353
|
/** Pin and attest the effective policy. The browser supplies identity only. */
|
|
343
354
|
secureSession(token: string, sessionId: string): Promise<QaLockdownProof>;
|
|
355
|
+
chatVisible(token: string): readonly QaChatAccess[];
|
|
356
|
+
chatAccess(token: string, sessionId: string): QaChatAccess;
|
|
357
|
+
chatGrants(token: string, sessionId: string): readonly QaChatGrant[];
|
|
358
|
+
chatSetGrant(token: string, sessionId: string, email: string, mode: QaChatMode | null): readonly QaChatGrant[];
|
|
359
|
+
chatAuthors(token: string, sessionId: string): readonly QaChatAuthor[];
|
|
360
|
+
chatAudit(token: string, sessionId: string, full: boolean): Promise<QaChatJson>;
|
|
361
|
+
chatAttachmentPath(token: string, sessionId: string, attachmentId: string): Promise<string>;
|
|
362
|
+
chatList(token: string, signal: AbortSignal): Promise<QaChatJson>;
|
|
363
|
+
chatSearch(token: string, request: SessionSearchRequest, signal: AbortSignal): Promise<QaChatJson>;
|
|
364
|
+
chatSelectModel(token: string, request: SessionSelectModelRequest): Promise<SessionSelectModelValue>;
|
|
365
|
+
chatPage(token: string, request: SessionPageRequest, signal: AbortSignal): Promise<QaChatJson>;
|
|
366
|
+
chatFollow(token: string, request: SessionFollowRequest, signal: AbortSignal): AsyncIterable<QaChatJson>;
|
|
367
|
+
chatControl(token: string, signal: AbortSignal): AsyncIterable<QaChatJson>;
|
|
368
|
+
chatProjections(token: string, sessionId: string, signal: AbortSignal): Promise<QaChatJson>;
|
|
369
|
+
chatPrompt(token: string, request: SessionPromptRequest, signal: AbortSignal): Promise<SessionPromptValue>;
|
|
370
|
+
chatAttachment(token: string, request: SessionAttachmentRequest): Promise<SessionAttachmentValue>;
|
|
371
|
+
chatRename(token: string, request: SessionRenameRequest): Promise<SessionRenameValue>;
|
|
372
|
+
chatCancel(token: string, sessionId: string): Promise<SessionCancelValue>;
|
|
373
|
+
chatUpdateQueue(token: string, request: SessionUpdateQueueRequest): Promise<SessionUpdateQueueValue>;
|
|
374
|
+
private admitChatRead;
|
|
375
|
+
private requireChatOwner;
|
|
344
376
|
/** Return canonical Host snapshots from plugin-owned durable provenance. */
|
|
345
377
|
sources(token: string, sessionId: string): Promise<readonly QaTurnSources[]>;
|
|
346
378
|
/**
|
|
@@ -376,7 +408,9 @@ export declare class QaSurface extends TypertRemoteService {
|
|
|
376
408
|
* read — the normal case for a deployment whose docs and code live beside
|
|
377
409
|
* the per-account scratch directory — could never be opened in the panel.
|
|
378
410
|
*/
|
|
379
|
-
readSourceFile(token: string, sessionId: string, sourcePath: string): Promise<QaSourceFilePreview>;
|
|
411
|
+
readSourceFile(token: string, sessionId: string, sourcePath: string, selection?: QaSpreadsheetPreviewSelection): Promise<QaSourceFilePreview>;
|
|
412
|
+
/** Load one relative raster illustration of an attested Markdown source. */
|
|
413
|
+
readSourceImage(token: string, sessionId: string, sourcePath: string, imagePath: string): Promise<string>;
|
|
380
414
|
/**
|
|
381
415
|
* List one directory of the chat's own workspace for the files panel.
|
|
382
416
|
*
|
|
@@ -395,6 +429,11 @@ export declare class QaSurface extends TypertRemoteService {
|
|
|
395
429
|
* reopening a cited source.
|
|
396
430
|
*/
|
|
397
431
|
readWorkspaceFile(token: string, sessionId: string, path: string): Promise<QaWorkspaceFile>;
|
|
432
|
+
/** Download one bounded chunk after revalidating this chat's ownership. */
|
|
433
|
+
readWorkspaceFileChunk(token: string, sessionId: string, path: string, offset: number, version: string | null): Promise<QaWorkspaceFileChunk>;
|
|
434
|
+
documentWorkflowStatus(token: string, sessionId: string, workflowId: string): Promise<QaDocumentWorkflowStatus>;
|
|
435
|
+
/** Browser-authenticated human consent; intentionally absent from the agent's tool registry. */
|
|
436
|
+
approveDocumentWorkflow(token: string, sessionId: string, workflowId: string, revision: number, sha256: string): Promise<QaDocumentWorkflowStatus>;
|
|
398
437
|
/**
|
|
399
438
|
* Render one Word document of the chat's workspace as a PDF for the panel.
|
|
400
439
|
*
|
|
@@ -405,7 +444,7 @@ export declare class QaSurface extends TypertRemoteService {
|
|
|
405
444
|
* produced PDF is read back here and travels as base64, so the audience never
|
|
406
445
|
* reaches an unfenced byte route.
|
|
407
446
|
*/
|
|
408
|
-
previewWorkspaceDocument(token: string, sessionId: string, path: string): Promise<QaDocumentPreview>;
|
|
447
|
+
previewWorkspaceDocument(token: string, sessionId: string, path: string, selection?: QaSpreadsheetPreviewSelection): Promise<QaDocumentPreview>;
|
|
409
448
|
/**
|
|
410
449
|
* Shared admission facts of both browse methods: the preview switch is what
|
|
411
450
|
* opens the panel's file reading at all, and the chat's cwd is the tree that
|
|
@@ -166,6 +166,7 @@ export interface QaIntegrationRunner {
|
|
|
166
166
|
/** The chat to continue, or null for a new conversation. */
|
|
167
167
|
readonly chatId: string | null;
|
|
168
168
|
readonly message: string;
|
|
169
|
+
readonly allowClarifications?: boolean;
|
|
169
170
|
readonly attachments: readonly QaIntegrationAttachment[];
|
|
170
171
|
readonly ticketKey: string | null;
|
|
171
172
|
/** Ends the wait: the caller's own lifetime merged with the deployment's budget. */
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Context } from "@deepseek-ai/cordis";
|
|
2
|
+
import type { Agent } from "@deepseek-ai/dsh-agent";
|
|
3
|
+
import type { QaAccounts } from "../accounts/store.js";
|
|
4
|
+
export declare const QA_INTEGRATION_NO_CLARIFICATIONS = "Clarifying questions are disabled for this integration turn. Do not call ask_user_question or ask follow-up questions in your answer. Answer from available evidence, label assumptions and missing facts, and state what cannot be determined when evidence is insufficient. Do not invent facts or bypass permission approvals.";
|
|
5
|
+
/** A queued request's durable policy follows its turn and its delegated agents. */
|
|
6
|
+
export declare class QaIntegrationQuestionPolicy {
|
|
7
|
+
private readonly ctx;
|
|
8
|
+
private readonly accounts;
|
|
9
|
+
private readonly qaRoot;
|
|
10
|
+
private readonly turns;
|
|
11
|
+
private readonly notes;
|
|
12
|
+
private readonly disposers;
|
|
13
|
+
constructor(ctx: Context, accounts: () => QaAccounts | undefined, qaRoot?: (id: string) => string | undefined);
|
|
14
|
+
allowed(agent: Agent): boolean;
|
|
15
|
+
private root;
|
|
16
|
+
/** Recover after a plugin reload from consumed messages, never queued future input. */
|
|
17
|
+
private recover;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=question-policy.d.ts.map
|
|
@@ -31,6 +31,7 @@ export declare const QA_INTEGRATION_MAX_CITATIONS = 5;
|
|
|
31
31
|
export declare function sourceCitations(sources: readonly QaSourceReference[]): readonly string[];
|
|
32
32
|
/** Who a presented credential turned out to be. */
|
|
33
33
|
export interface QaIntegrationIdentity {
|
|
34
|
+
readonly allowClarifications: boolean;
|
|
34
35
|
readonly tokenId: string;
|
|
35
36
|
readonly userId: string;
|
|
36
37
|
readonly scopes: readonly QaServiceTokenScope[];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Service, type Context } from "@deepseek-ai/cordis";
|
|
2
|
+
import type { QaAccounts } from "./accounts/store.js";
|
|
3
|
+
interface IdentityAccounts {
|
|
4
|
+
ownerIdOf: QaAccounts["ownerIdOf"];
|
|
5
|
+
accountById: QaAccounts["accountById"];
|
|
6
|
+
}
|
|
7
|
+
export interface QaLlmIdentityOptions {
|
|
8
|
+
/** Resolves only roots attested by this QA deployment and their live children. */
|
|
9
|
+
rootOf(sessionId: string): string | undefined;
|
|
10
|
+
accounts(): IdentityAccounts | undefined;
|
|
11
|
+
}
|
|
12
|
+
/** Runtime-only identity seam; it grants no account or tool access. */
|
|
13
|
+
export declare class QaLlmIdentity extends Service {
|
|
14
|
+
private readonly options;
|
|
15
|
+
constructor(ctx: Context, options: QaLlmIdentityOptions);
|
|
16
|
+
/** Stable pseudonym of the chat's active owner, never the browser viewing it. */
|
|
17
|
+
forSession(sessionId: string): string | undefined;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=llm-identity.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { QaSourceMetadata } from "./provenance/types.js";
|
|
2
|
+
export interface MarkdownFrontmatter {
|
|
3
|
+
readonly body: string;
|
|
4
|
+
/** Physical lines removed, including both fences. */
|
|
5
|
+
readonly offset: number;
|
|
6
|
+
readonly fields: QaSourceMetadata;
|
|
7
|
+
}
|
|
8
|
+
/** Only a complete, bounded YAML mapping at the start earns a metadata card. */
|
|
9
|
+
export declare function readFrontmatter(text: string): MarkdownFrontmatter | undefined;
|
|
10
|
+
//# sourceMappingURL=markdown-frontmatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/types/policy.ts"],"names":[],"mappings":""}
|
|
@@ -31,6 +31,7 @@ export declare const QA_DELEGATION_NOTE = "dsh-qa-surface:delegation-naming";
|
|
|
31
31
|
export declare const QA_DOCUMENTS_NOTE = "dsh-qa-surface:attached-documents";
|
|
32
32
|
/** Note name carrying the deployment's rule about where an answer comes from. */
|
|
33
33
|
export declare const QA_SOURCE_PRIORITY_NOTE = "dsh-qa-surface:source-priority";
|
|
34
|
+
export declare const QA_BRANCH_NOTE = "dsh-qa-surface:chat-branch";
|
|
34
35
|
/**
|
|
35
36
|
* Built-in note texts. Each is the fallback for its settings template
|
|
36
37
|
* (`notes.*.template`); the placeholders mark the parts the injector
|
|
@@ -40,7 +41,7 @@ export declare const QA_IDENTITY_NOTE_TEMPLATE = "{identity}\n\n{instructions}";
|
|
|
40
41
|
export declare const QA_SOURCES_NOTE_TEMPLATE = "Source provenance is collected automatically from your tool calls; the QA surface lists what it collected beside the answer. Do not append a manual Sources/\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438 bibliography of your own.";
|
|
41
42
|
export declare const QA_SOURCES_FALLBACK_TEMPLATE = "A delegated run whose provider cannot expose tool events must call {reportTool} before finishing.";
|
|
42
43
|
export declare const QA_DELEGATION_NOTE_TEMPLATE = "When you start a background subagent, give the delegation a short vivid name in its description field: two or three words in the user's language that say what the run is for (\u00AB\u0421\u0432\u0435\u0440\u043A\u0430 \u043E\u0442\u0447\u0451\u0442\u043E\u0432\u00BB, \"Log triage\"). The QA surface shows that description as the subagent's display name in the operator's panel and completion notices.";
|
|
43
|
-
export declare const QA_DOCUMENTS_NOTE_TEMPLATE = "A document a chat user attached is a path on disk, not text: read it with the deployment's document pipeline \u2014 `document_inspect` says what a DOCX or PDF is, `document_to_markdown` extracts its text, `document_from_url` stores the text of an attachment that only exists behind a URL. The plain file reader refuses those formats as binary, so that refusal is expected and is not a hint to go looking for the file somewhere else. When the pipeline itself refuses a path, report the refusal and the path it named instead of trying another reader.";
|
|
44
|
+
export declare const QA_DOCUMENTS_NOTE_TEMPLATE = "A document a chat user attached is a path on disk, not text: read it with the deployment's document pipeline \u2014 `document_inspect` says what a DOCX or PDF is, `document_to_markdown` extracts its text, `document_from_url` stores the text of an attachment that only exists behind a URL. For XLSX, CSV, TSV, ODS or FODS, `spreadsheet_inspect` lists all sheets and detects text delimiter/encoding, `spreadsheet_read` reads pages, and `spreadsheet_create` creates a file in the selected format. CSV/TSV have one Data sheet with string fields; reuse detected delimiter and encoding when paging. XLSX/ODS/FODS support multiple sheets. Inspect all sheet names before selecting data; formula values are saved caches, not recalculated results. The plain file reader refuses those formats as binary, so that refusal is expected and is not a hint to go looking for the file somewhere else. When the pipeline itself refuses a path, report the refusal and the path it named instead of trying another reader.";
|
|
44
45
|
export declare const QA_SOURCE_PRIORITY_NOTE_TEMPLATE = "Answer from the source that owns the question: read what the conversation and its attachments already carry, then search the product documentation and ask the domain expert, and only then look in memory. Recalled memory is background from earlier sessions \u2014 a miss there is not evidence that no source exists, and it is not where a document, a page or a product fact should be looked up.";
|
|
45
46
|
export interface QaIdentityRenderInput {
|
|
46
47
|
/** The owner's account address; the one fact accounts always provide. */
|
|
@@ -163,6 +164,7 @@ export declare class QaPromptNotes {
|
|
|
163
164
|
* farthest ancestor known at that moment.
|
|
164
165
|
*/
|
|
165
166
|
private rootSessionId;
|
|
167
|
+
private branchNotes;
|
|
166
168
|
/** The owner's email and profile, or nothing while the chat is anonymous. */
|
|
167
169
|
private identityOf;
|
|
168
170
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { canonicalizeUrl } from "./normalize.js";
|
|
2
|
-
import type { SourceExtractor } from "./types.js";
|
|
2
|
+
import type { SourceExtractor, SourceExtractorContext } from "./types.js";
|
|
3
|
+
type UnknownRecord = Record<string, unknown>;
|
|
4
|
+
export declare function contextRecords(context: SourceExtractorContext): UnknownRecord[];
|
|
3
5
|
type UrlOptions = Parameters<typeof canonicalizeUrl>[1];
|
|
6
|
+
export declare function canonicalUri(item: UnknownRecord, urlOptions: UrlOptions): string | undefined;
|
|
4
7
|
export declare function createJiraExtractor(urlOptions?: UrlOptions): SourceExtractor;
|
|
5
8
|
export declare function createConfluenceExtractor(urlOptions?: UrlOptions): SourceExtractor;
|
|
6
9
|
export declare function createKnowledgeExtractor(urlOptions?: UrlOptions): SourceExtractor;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DocumentsFace } from "@yadsh/dsh-documents";
|
|
2
|
-
import type { QaDocumentPreview } from "../types.js";
|
|
2
|
+
import type { QaDocumentPreview, QaSpreadsheetPreviewSelection } from "../types.js";
|
|
3
3
|
import { type QaAllowedFileRequest } from "./file-preview.js";
|
|
4
4
|
/** Look up the document subsystem a sibling Host plugin published. */
|
|
5
5
|
export type DocumentsLookup = () => DocumentsFace | undefined;
|
|
@@ -9,6 +9,7 @@ export interface QaDocumentPreviewRequest extends QaAllowedFileRequest {
|
|
|
9
9
|
readonly sessionId: string;
|
|
10
10
|
/** Bytes of the rendered PDF the panel accepts before it gives up. */
|
|
11
11
|
readonly maxBytes: number;
|
|
12
|
+
readonly selection?: QaSpreadsheetPreviewSelection;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* Render one Word document as a PDF for the files panel.
|
|
@@ -24,5 +25,7 @@ export interface QaDocumentPreviewRequest extends QaAllowedFileRequest {
|
|
|
24
25
|
* an uploaded Word file lives in the attachment store, and a pipeline that is
|
|
25
26
|
* not told about that root refuses the file this check just accepted.
|
|
26
27
|
*/
|
|
27
|
-
export declare function previewConvertibleDocument({ documents, sessionId, maxBytes, ...file }: QaDocumentPreviewRequest): Promise<QaDocumentPreview>;
|
|
28
|
+
export declare function previewConvertibleDocument({ documents, sessionId, maxBytes, selection, ...file }: QaDocumentPreviewRequest): Promise<QaDocumentPreview>;
|
|
29
|
+
/** Native PDF or pipeline preview, after the caller has verified chat evidence. */
|
|
30
|
+
export declare function previewSourceDocument(request: QaDocumentPreviewRequest): Promise<QaDocumentPreview>;
|
|
28
31
|
//# sourceMappingURL=document-preview.d.ts.map
|
|
@@ -4,6 +4,8 @@ export declare const readFileExtractor: SourceExtractor;
|
|
|
4
4
|
export declare function createWebSearchExtractor(maxPromotedPerSearch?: number, urlOptions?: Parameters<typeof canonicalizeUrl>[1]): SourceExtractor;
|
|
5
5
|
export declare function createWebFetchExtractor(urlOptions?: Parameters<typeof canonicalizeUrl>[1]): SourceExtractor;
|
|
6
6
|
export declare const webFetchExtractor: SourceExtractor;
|
|
7
|
+
/** Document tools consume inputs; generated output paths stay artifacts. */
|
|
8
|
+
export declare const documentSourceExtractor: SourceExtractor;
|
|
7
9
|
export declare const fileSearchExtractor: SourceExtractor;
|
|
8
10
|
export declare class SourceExtractorRegistry {
|
|
9
11
|
private readonly extractors;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { QaWorkspaceFileChunk } from "../types.js";
|
|
2
|
+
import { type QaAllowedFileRequest } from "./file-preview.js";
|
|
3
|
+
/** Each RPC stays small; downloads never use the preview's byte limit. */
|
|
4
|
+
export declare const QA_DOWNLOAD_CHUNK_BYTES: number;
|
|
5
|
+
export declare const QA_DOWNLOAD_MAX_BYTES: number;
|
|
6
|
+
export declare function readWorkspaceFileChunk(request: QaAllowedFileRequest & {
|
|
7
|
+
readonly offset: number;
|
|
8
|
+
readonly version: string | null;
|
|
9
|
+
}): Promise<QaWorkspaceFileChunk>;
|
|
10
|
+
//# sourceMappingURL=file-download.d.ts.map
|
|
@@ -40,6 +40,7 @@ export interface QaSourceFilePreviewRequest {
|
|
|
40
40
|
readonly attachmentRoot?: string;
|
|
41
41
|
readonly maxBytes: number;
|
|
42
42
|
readonly maxMarkdownRenderBytes: number;
|
|
43
|
+
readonly renderFrontmatter?: boolean;
|
|
43
44
|
}
|
|
44
45
|
/** A file request the panel may make: the chat's own tree or a shared root. */
|
|
45
46
|
export interface QaAllowedFileRequest {
|
|
@@ -77,7 +78,7 @@ export declare function resolveAllowedFile({ filePath, cwd, sharedReadOnlyRoots,
|
|
|
77
78
|
* same way before it is matched, or a file inside the chat's own workspace is
|
|
78
79
|
* refused as foreign evidence.
|
|
79
80
|
*/
|
|
80
|
-
export declare function readSourceFilePreview({ sourcePath, cwd, isEvidence, sharedReadOnlyRoots, attachmentRoot, maxBytes, maxMarkdownRenderBytes, }: QaSourceFilePreviewRequest): Promise<QaSourceFilePreview>;
|
|
81
|
+
export declare function readSourceFilePreview({ sourcePath, cwd, isEvidence, sharedReadOnlyRoots, attachmentRoot, maxBytes, maxMarkdownRenderBytes, renderFrontmatter, }: QaSourceFilePreviewRequest): Promise<QaSourceFilePreview>;
|
|
81
82
|
/** One directory request from the files panel. */
|
|
82
83
|
export interface QaWorkspaceListRequest {
|
|
83
84
|
/** The directory to list, absolute or relative to the chat cwd. Empty = root. */
|
|
@@ -60,6 +60,8 @@ export declare class QaProvenanceHost {
|
|
|
60
60
|
private forgetAll;
|
|
61
61
|
bundles(sessionId: string): readonly QaTurnSources[];
|
|
62
62
|
sourceAllowed(sessionId: string, path: string): boolean;
|
|
63
|
+
/** Copy only evidence of turns present in the child's durable prefix. */
|
|
64
|
+
forkSnapshots(parentId: string, childId: string, throughTurn: number): void;
|
|
63
65
|
private seed;
|
|
64
66
|
private observeEvent;
|
|
65
67
|
private shouldCollect;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SourceExtractor } from "./types.js";
|
|
2
|
+
import type { canonicalizeUrl } from "./normalize.js";
|
|
3
|
+
/** Successful provider retrievals with explicit addresses or object identity. */
|
|
4
|
+
export declare function integrationExtractor(options?: Parameters<typeof canonicalizeUrl>[1]): SourceExtractor;
|
|
5
|
+
//# sourceMappingURL=integration-extractor.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Text retained from a single addressed tool result, never from model prose. */
|
|
2
|
+
export declare const MAX_SOURCE_CONTENT = 32000;
|
|
3
|
+
type RecordValue = Record<string, unknown>;
|
|
4
|
+
export declare function retainedSourceContent(value: string | undefined, partial?: boolean): {
|
|
5
|
+
content?: undefined;
|
|
6
|
+
contentTruncated?: undefined;
|
|
7
|
+
} | {
|
|
8
|
+
content: string;
|
|
9
|
+
contentTruncated: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function structuredSourceContent(item: RecordValue): {
|
|
12
|
+
content?: undefined;
|
|
13
|
+
contentTruncated?: undefined;
|
|
14
|
+
} | {
|
|
15
|
+
content: string;
|
|
16
|
+
contentTruncated: boolean;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=source-content.d.ts.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type QaSourceFilePreviewRequest } from "./file-preview.js";
|
|
2
|
+
/** The image must be named by an attested Markdown file and stay inside allowed roots. */
|
|
3
|
+
export declare function readSourceImage(request: QaSourceFilePreviewRequest, imagePath: string): Promise<string>;
|
|
4
|
+
//# sourceMappingURL=source-image.d.ts.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { QaDocumentPreviewRequest } from "./document-preview.js";
|
|
2
|
+
import type { QaSpreadsheetPreview } from "../types.js";
|
|
3
|
+
/** Reuse the agent's bounded parser and the panel's canonical root fence. */
|
|
4
|
+
export declare function previewSpreadsheetDocument(request: QaDocumentPreviewRequest): Promise<QaSpreadsheetPreview>;
|
|
5
|
+
//# sourceMappingURL=spreadsheet-preview.d.ts.map
|
|
@@ -33,6 +33,9 @@ export interface QaSourceReference {
|
|
|
33
33
|
readonly uri?: string;
|
|
34
34
|
readonly path?: string;
|
|
35
35
|
readonly snippet?: string;
|
|
36
|
+
/** Bounded text actually returned for this source by a retrieval tool. */
|
|
37
|
+
readonly content?: string;
|
|
38
|
+
readonly contentTruncated?: boolean;
|
|
36
39
|
readonly locations: readonly QaSourceLocation[];
|
|
37
40
|
readonly evidence: QaSourceEvidence;
|
|
38
41
|
readonly origins: readonly QaSourceOrigin[];
|
|
@@ -60,6 +63,8 @@ export interface SourceExtractorContext {
|
|
|
60
63
|
readonly origin: QaSourceOrigin;
|
|
61
64
|
/** Canonical session/workspace root used to make local paths portable. */
|
|
62
65
|
readonly workspaceRoot?: string;
|
|
66
|
+
/** Configured documentation root for replaying legacy docs_read results. */
|
|
67
|
+
readonly documentationRoot?: string;
|
|
63
68
|
}
|
|
64
69
|
export interface QaReportedSource {
|
|
65
70
|
readonly kind: QaSourceKind;
|
|
@@ -123,6 +123,8 @@ export interface QaDocsSearchResult extends QaDocsIdentity {
|
|
|
123
123
|
/** The outcome of one documentation read. */
|
|
124
124
|
export interface QaDocsReadResult extends QaDocsIdentity {
|
|
125
125
|
readonly path: string;
|
|
126
|
+
/** Actual read target, kept out of the model-facing rendering. */
|
|
127
|
+
readonly absolutePath: string;
|
|
126
128
|
readonly from: number;
|
|
127
129
|
readonly to: number;
|
|
128
130
|
readonly totalLines: number;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Quality layer: user feedback, reviewer results, and the admin audit trail.
|
|
3
|
+
// These are the durable records the admin console reads and writes; every one
|
|
4
|
+
// is keyed to an exact conversation message, never to a conversation alone.
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=quality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality.js","sourceRoot":"","sources":["../../src/types/quality.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E"}
|
package/lib/types/questions.d.ts
CHANGED
|
@@ -62,9 +62,10 @@ export declare class QaQuestionGate {
|
|
|
62
62
|
private readonly interactive;
|
|
63
63
|
private readonly ownership;
|
|
64
64
|
private readonly logger;
|
|
65
|
+
private readonly questionsAllowed;
|
|
65
66
|
private readonly pending;
|
|
66
67
|
private readonly disposers;
|
|
67
|
-
constructor(ctx: Context, interactive: () => boolean, ownership: QaSessionOwnership, logger: PluginLogger);
|
|
68
|
+
constructor(ctx: Context, interactive: () => boolean, ownership: QaSessionOwnership, logger: PluginLogger, questionsAllowed?: (agent: Agent) => boolean);
|
|
68
69
|
/** Claim question requests for the chats this deployment answers. */
|
|
69
70
|
install(): void;
|
|
70
71
|
/** Questions of one chat, oldest first: what the QA view renders. */
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Context } from "@deepseek-ai/cordis";
|
|
2
|
+
import type { PluginLogger } from "@yadsh/dsh-plugin-log";
|
|
3
|
+
import type { QaAccounts } from "./accounts/store.js";
|
|
4
|
+
import type { QaAccessService } from "./access/service.js";
|
|
5
|
+
import type { QaPolicyAdmission } from "./secure-session.js";
|
|
6
|
+
import type { QaIntegrationPrincipalBindings } from "./integration-principals.js";
|
|
7
|
+
import type { QaProvenanceHost } from "./provenance/host-store.js";
|
|
8
|
+
import type { QaStoredSessionEraser } from "./admin/session-log.js";
|
|
9
|
+
import type { ResolvedQaSurfaceConfig } from "./types.js";
|
|
10
|
+
export interface QaForkHostOptions {
|
|
11
|
+
readonly ctx: Context;
|
|
12
|
+
readonly config: ResolvedQaSurfaceConfig;
|
|
13
|
+
readonly accounts: Pick<QaAccounts, "currentUser" | "ownerIdOf" | "sessionAccess" | "updateSessionAccess" | "releaseSessionReservation"> | undefined;
|
|
14
|
+
readonly access: Pick<QaAccessService, "isDelegatedChild" | "session" | "reserveSession" | "modelPolicyFor">;
|
|
15
|
+
readonly admission: Pick<QaPolicyAdmission, "secureSession" | "preflightDeployment">;
|
|
16
|
+
readonly principals: Pick<QaIntegrationPrincipalBindings, "attest">;
|
|
17
|
+
readonly provenance: Pick<QaProvenanceHost, "forkSnapshots" | "dropSession">;
|
|
18
|
+
readonly logger: PluginLogger;
|
|
19
|
+
readonly sessionFiles: QaStoredSessionEraser;
|
|
20
|
+
readonly sharing?: {
|
|
21
|
+
forkAuthors(sourceId: string, targetId: string, requests: readonly string[]): void;
|
|
22
|
+
dropSession(id: string): void;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** Native durable prefix and agent lifecycle, admitted as an independent QA root. */
|
|
26
|
+
export declare function forkQaSession(options: QaForkHostOptions, token: string, sourceId: string, answerSeq: number): Promise<string>;
|
|
27
|
+
//# sourceMappingURL=session-fork-host.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StoredSessionEvent } from "./admin/conversation-log.js";
|
|
2
|
+
/** Resolve a selected durable answer to the end of its completed turn. */
|
|
3
|
+
export declare function qaForkBoundary(events: readonly StoredSessionEvent[], answerSeq: number): {
|
|
4
|
+
readonly atSeq: number;
|
|
5
|
+
readonly turn: number;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=session-fork.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":""}
|
|
@@ -17,4 +17,6 @@ export declare const QA_PDF_MEDIA_TYPE = "application/pdf";
|
|
|
17
17
|
* previewable (Markdown as text, PDF through the browser's own viewer).
|
|
18
18
|
*/
|
|
19
19
|
export declare function isConvertibleDocument(mediaType: string): boolean;
|
|
20
|
+
export declare function isSpreadsheetDocument(mediaType: string): boolean;
|
|
21
|
+
export declare function isPreviewableDocument(mediaType: string): boolean;
|
|
20
22
|
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** A seeded ordinary child is a fork; delegated runs retain their own origin. */
|
|
2
|
+
export declare function qaDelegatedHeader(header: {
|
|
3
|
+
readonly parentSession?: unknown;
|
|
4
|
+
readonly origin?: unknown;
|
|
5
|
+
readonly isSeeded?: boolean;
|
|
6
|
+
}): boolean;
|
|
7
|
+
//# sourceMappingURL=session-lineage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/types/skills.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface QaSlashDraftTarget {
|
|
2
|
+
readonly subroleId: string | null;
|
|
3
|
+
readonly adminPreview: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function slashDraftTarget(subroleId: string | null, adminPreview: boolean): string;
|
|
6
|
+
export declare function parseSlashDraftTarget(target: string): QaSlashDraftTarget | undefined;
|
|
7
|
+
//# sourceMappingURL=draft-target.d.ts.map
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Context } from "@deepseek-ai/cordis";
|
|
2
2
|
import type { PluginLogger } from "@yadsh/dsh-plugin-log";
|
|
3
3
|
import type { QaSlashCatalog, QaSlashExecution, QaSlashSubmitAttachment, ResolvedQaSurfaceConfig } from "../types.js";
|
|
4
|
+
import { type QaSlashNativeSkill } from "./catalog.js";
|
|
5
|
+
import { type QaSlashDraftTarget } from "./draft-target.js";
|
|
4
6
|
/**
|
|
5
7
|
* Host-side bodies of the slash remotes. The `@Remote`-decorated signatures
|
|
6
8
|
* stay on the `QaSurface` service class (typert code generation reads the class
|
|
@@ -19,6 +21,11 @@ export interface QaSlashRemotes {
|
|
|
19
21
|
}
|
|
20
22
|
export interface QaSlashRemotesOptions {
|
|
21
23
|
readonly ctx: Context;
|
|
24
|
+
/** Reads the preset scope with the authenticated draft role, without a session. */
|
|
25
|
+
readonly draftSkills?: (token: string, target: QaSlashDraftTarget) => Promise<{
|
|
26
|
+
readonly skills: readonly QaSlashNativeSkill[];
|
|
27
|
+
readonly grantedSkills: readonly string[] | undefined;
|
|
28
|
+
}>;
|
|
22
29
|
readonly getConfig: () => ResolvedQaSurfaceConfig;
|
|
23
30
|
readonly logger: PluginLogger;
|
|
24
31
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slash.js","sourceRoot":"","sources":["../../src/types/slash.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { QaCapabilityConfig, QaCapabilityDescriptor, QaCapabilitySelection, QaSkillAccess, QaSubrole, QaUserAccess } from "./capability.js";
|
|
2
|
+
import type { QaAccountRole } from "./policy.js";
|
|
3
|
+
export type QaAccessAuditAction = "subrole.created" | "subrole.updated" | "subrole.deleted" | "common.updated" | "assignment.updated" | "skill.assignment-updated";
|
|
4
|
+
export interface QaAccessAuditEvent {
|
|
5
|
+
readonly timestamp: string;
|
|
6
|
+
readonly actorId: string;
|
|
7
|
+
readonly action: QaAccessAuditAction;
|
|
8
|
+
readonly targetId?: string;
|
|
9
|
+
/** JSON snapshots serialized at the storage boundary for a strict Remote type. */
|
|
10
|
+
readonly before?: string;
|
|
11
|
+
readonly after?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Admin table row: credentials and token material are never projected. */
|
|
14
|
+
export interface QaAccessUser {
|
|
15
|
+
readonly id: string;
|
|
16
|
+
readonly email: string;
|
|
17
|
+
readonly displayName: string;
|
|
18
|
+
readonly accessRole: QaAccountRole;
|
|
19
|
+
readonly disabled: boolean;
|
|
20
|
+
readonly access: QaUserAccess;
|
|
21
|
+
}
|
|
22
|
+
/** Ordinary user's role selector data. */
|
|
23
|
+
export interface QaCurrentAccess {
|
|
24
|
+
readonly subroles: readonly QaSubrole[];
|
|
25
|
+
readonly defaultSubrole: string;
|
|
26
|
+
}
|
|
27
|
+
/** The role pinned to one existing session. */
|
|
28
|
+
export interface QaSessionAccess {
|
|
29
|
+
readonly subrole: QaSubrole;
|
|
30
|
+
readonly adminPreview: boolean;
|
|
31
|
+
}
|
|
32
|
+
/** One authoritative payload for the /qa/admin application. */
|
|
33
|
+
export interface QaAccessAdminSnapshot {
|
|
34
|
+
readonly config: QaCapabilityConfig;
|
|
35
|
+
/** Immutable capabilities inherited by every role; exposed read-only. */
|
|
36
|
+
readonly systemRequired: QaCapabilitySelection;
|
|
37
|
+
readonly catalog: readonly QaCapabilityDescriptor[];
|
|
38
|
+
/** Every discovered skill with its declared audience and grant ceiling. */
|
|
39
|
+
readonly skills: readonly QaSkillAccess[];
|
|
40
|
+
readonly users: readonly QaAccessUser[];
|
|
41
|
+
readonly audit: readonly QaAccessAuditEvent[];
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=access.d.ts.map
|