@yadsh/dsh-qa-surface 0.16.0 → 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 +19 -2
- 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 +20 -0
- package/lib/accounts/store.js.map +1 -1
- package/lib/chat-sharing/native-fence.js +11 -2
- package/lib/chat-sharing/native-fence.js.map +1 -1
- package/lib/chat-sharing/store.js +9 -3
- package/lib/chat-sharing/store.js.map +1 -1
- package/lib/chat-sharing/transport.js +66 -11
- package/lib/chat-sharing/transport.js.map +1 -1
- package/lib/client/QaAccountsController.js +18 -0
- package/lib/client/QaAccountsController.js.map +1 -1
- package/lib/client/QaSessionController.js +12 -3
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +49 -8
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/QaTranscriptAdapter.js +15 -2
- package/lib/client/QaTranscriptAdapter.js.map +1 -1
- package/lib/client/answer-review.js +89 -0
- package/lib/client/answer-review.js.map +1 -0
- package/lib/client/chat-artifacts.js +1 -0
- package/lib/client/chat-artifacts.js.map +1 -1
- package/lib/client/components/QaAnswerReviewStatus.js +45 -0
- package/lib/client/components/QaAnswerReviewStatus.js.map +1 -0
- package/lib/client/components/QaChangelog.js +35 -0
- 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 +22 -19
- package/lib/client/components/QaChatSharing.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 +8 -2
- 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 +10 -1
- 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 +57 -13
- 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 +22 -9
- 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 +18 -4
- package/lib/client/components/source-refs.js.map +1 -1
- package/lib/client/index.js +16 -2
- package/lib/client/index.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/render.js +23 -5
- package/lib/client/markdown/render.js.map +1 -1
- package/lib/client/markdown/source-chip.js +2 -1
- package/lib/client/markdown/source-chip.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/source-filters-styles.js +11 -0
- package/lib/client/source-filters-styles.js.map +1 -0
- package/lib/client/styles.js +53 -2
- package/lib/client/styles.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.js +2820 -955
- 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/index.js +50 -3
- 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 +1 -1
- package/lib/prompt-notes.js.map +1 -1
- package/lib/provenance/collector.js +2 -0
- package/lib/provenance/collector.js.map +1 -1
- package/lib/provenance/connectors.js +25 -19
- package/lib/provenance/connectors.js.map +1 -1
- package/lib/provenance/dedupe.js +17 -0
- package/lib/provenance/dedupe.js.map +1 -1
- package/lib/provenance/document-preview.js +12 -2
- package/lib/provenance/document-preview.js.map +1 -1
- package/lib/provenance/extractors.js +23 -5
- package/lib/provenance/extractors.js.map +1 -1
- package/lib/provenance/file-preview.js +9 -2
- package/lib/provenance/file-preview.js.map +1 -1
- package/lib/provenance/integration-extractor.js +5 -6
- package/lib/provenance/integration-extractor.js.map +1 -1
- 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/questions.js +6 -1
- package/lib/questions.js.map +1 -1
- package/lib/shared/documents.js +12 -0
- package/lib/shared/documents.js.map +1 -1
- package/lib/typert.host.js +419 -110
- package/lib/typert.remote-client.d.ts +9 -5
- package/lib/typert.remote-client.js +383 -102
- 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 +6 -1
- package/lib/types/answer-review.js +2 -0
- package/lib/types/answer-review.js.map +1 -0
- package/lib/types/chat-sharing/store.d.ts +1 -0
- package/lib/types/chat-sharing/transport.d.ts +1 -0
- package/lib/types/client/QaAccountsController.d.ts +1 -0
- package/lib/types/client/answer-review.d.ts +16 -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 +4 -2
- package/lib/types/client/components/QaMarkdownPreview.d.ts +13 -0
- 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/QaZoomImage.d.ts +38 -0
- 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/settings/styles.d.ts +2 -5
- package/lib/types/client/source-filters-styles.d.ts +2 -0
- package/lib/types/client/types.d.ts +11 -5
- package/lib/types/index.d.ts +8 -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/prompt-notes.d.ts +1 -1
- package/lib/types/provenance/document-preview.d.ts +3 -2
- package/lib/types/provenance/file-preview.d.ts +2 -1
- 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 +3 -0
- package/lib/types/questions.d.ts +2 -1
- package/lib/types/shared/documents.d.ts +2 -0
- package/lib/types/types/accounts.d.ts +5 -1
- package/lib/types/types/answer-review.d.ts +11 -0
- package/lib/types/types/config.d.ts +3 -0
- package/lib/types/types/session.d.ts +18 -3
- package/lib/types/types.d.ts +1 -0
- package/package.json +3 -3
|
@@ -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. */
|
|
@@ -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[];
|
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. */
|
|
@@ -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
|
|
@@ -134,8 +134,10 @@ export type QaServiceTokenScope = "ask" | "sessions:read";
|
|
|
134
134
|
export interface QaServiceTokenCreateInput {
|
|
135
135
|
/** A note the operator's list shows; empty becomes a generic label. */
|
|
136
136
|
readonly label?: string;
|
|
137
|
-
/** Requested scopes; unknown ones are dropped, empty
|
|
137
|
+
/** Requested scopes; unknown ones are dropped, explicit empty grants none. */
|
|
138
138
|
readonly scopes?: readonly string[];
|
|
139
|
+
/** Whether API turns may ask clarifying questions; omitted preserves existing behavior. */
|
|
140
|
+
readonly allowClarifications?: boolean;
|
|
139
141
|
/** How long the token lives, in days; bounded server-side. */
|
|
140
142
|
readonly ttlDays?: number;
|
|
141
143
|
}
|
|
@@ -148,6 +150,8 @@ export interface QaServiceTokenSummary {
|
|
|
148
150
|
readonly id: string;
|
|
149
151
|
readonly label: string;
|
|
150
152
|
readonly scopes: readonly QaServiceTokenScope[];
|
|
153
|
+
/** Older Hosts omit this field and keep clarifications enabled. */
|
|
154
|
+
readonly allowClarifications?: boolean;
|
|
151
155
|
readonly createdAt: string;
|
|
152
156
|
readonly expiresAt: string;
|
|
153
157
|
readonly lastUsedAt: string | null;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Host-recorded review of one immutable assistant message. */
|
|
2
|
+
export interface QaAnswerReview {
|
|
3
|
+
readonly version: 1;
|
|
4
|
+
readonly candidateSeq: number;
|
|
5
|
+
readonly candidateHash: string;
|
|
6
|
+
readonly requestSeq: number | null;
|
|
7
|
+
readonly round: number;
|
|
8
|
+
readonly status: "reviewing" | "recovering" | "pass" | "revise" | "failure" | "cancelled" | "waived";
|
|
9
|
+
readonly at: number;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=answer-review.d.ts.map
|
|
@@ -38,6 +38,8 @@ export interface QaSourcesConfig {
|
|
|
38
38
|
readonly filePreview?: {
|
|
39
39
|
readonly enabled?: boolean;
|
|
40
40
|
readonly markdownRenderedByDefault?: boolean;
|
|
41
|
+
/** Render a leading YAML mapping as a document metadata card. */
|
|
42
|
+
readonly renderFrontmatter?: boolean;
|
|
41
43
|
readonly allowRawToggle?: boolean;
|
|
42
44
|
readonly maxBytes?: number;
|
|
43
45
|
readonly maxMarkdownRenderBytes?: number;
|
|
@@ -534,6 +536,7 @@ export interface ResolvedQaSurfaceConfig {
|
|
|
534
536
|
readonly filePreview: {
|
|
535
537
|
readonly enabled: boolean;
|
|
536
538
|
readonly markdownRenderedByDefault: boolean;
|
|
539
|
+
readonly renderFrontmatter: boolean;
|
|
537
540
|
readonly allowRawToggle: boolean;
|
|
538
541
|
readonly maxBytes: number;
|
|
539
542
|
readonly maxMarkdownRenderBytes: number;
|
|
@@ -9,18 +9,32 @@ export interface QaSourceFilePreview {
|
|
|
9
9
|
readonly markdown: boolean;
|
|
10
10
|
readonly renderableMarkdown: boolean;
|
|
11
11
|
readonly document?: QaDocumentPreview;
|
|
12
|
+
readonly frontmatter?: import("../markdown-frontmatter.js").MarkdownFrontmatter;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
|
-
* A
|
|
15
|
-
* pipeline turned a Word file into PDF, and the browser shows that PDF.
|
|
15
|
+
* A PDF payload, including Word documents rendered by the document pipeline.
|
|
16
16
|
*/
|
|
17
|
-
export interface
|
|
17
|
+
export interface QaPdfPreview {
|
|
18
18
|
readonly kind: "pdf";
|
|
19
19
|
readonly base64: string;
|
|
20
20
|
readonly mime: "application/pdf";
|
|
21
21
|
readonly name: string;
|
|
22
22
|
readonly bytes: number;
|
|
23
23
|
}
|
|
24
|
+
/** A bounded cell window; the complete workbook stays on the Host. */
|
|
25
|
+
export interface QaSpreadsheetPreview {
|
|
26
|
+
readonly kind: "spreadsheet";
|
|
27
|
+
readonly name: string;
|
|
28
|
+
readonly bytes: number;
|
|
29
|
+
readonly inventory: import("@yadsh/dsh-documents").SpreadsheetInspectResult;
|
|
30
|
+
readonly page: import("@yadsh/dsh-documents").SpreadsheetReadResult;
|
|
31
|
+
}
|
|
32
|
+
export interface QaSpreadsheetPreviewSelection {
|
|
33
|
+
readonly sheet?: string;
|
|
34
|
+
readonly startRow?: number;
|
|
35
|
+
readonly startColumn?: number;
|
|
36
|
+
}
|
|
37
|
+
export type QaDocumentPreview = QaPdfPreview | QaSpreadsheetPreview;
|
|
24
38
|
/** One directory entry of a chat's own workspace, as the files panel browses it. */
|
|
25
39
|
export interface QaWorkspaceEntry {
|
|
26
40
|
readonly name: string;
|
|
@@ -111,6 +125,7 @@ export type QaMessage = QaUserMessage | {
|
|
|
111
125
|
* while the browser's own message id does not.
|
|
112
126
|
*/
|
|
113
127
|
readonly seq?: number;
|
|
128
|
+
readonly review?: import("./answer-review.js").QaAnswerReview;
|
|
114
129
|
/** Final text of a completed turn with a durable fork boundary. */
|
|
115
130
|
readonly forkable?: boolean;
|
|
116
131
|
/** Host turn this answer belongs to; groups regenerations into variants. */
|
package/lib/types/types.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export type * from "./types/config.js";
|
|
|
8
8
|
export type * from "./types/slash.js";
|
|
9
9
|
export type * from "./types/documents.js";
|
|
10
10
|
export type * from "./types/session.js";
|
|
11
|
+
export type * from "./types/answer-review.js";
|
|
11
12
|
export type * from "./types/quality.js";
|
|
12
13
|
export type * from "./types/admin.js";
|
|
13
14
|
export type { QaSourceEvidence, QaSourceKind, QaSourceLocation, QaSourceOrigin, QaSourceReference, QaTurnSources, } from "./provenance/types.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yadsh/dsh-qa-surface",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "A focused end-user QA surface backed by native DeepSeek Harness sessions",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -137,9 +137,9 @@
|
|
|
137
137
|
"yaml": "^2.9.0",
|
|
138
138
|
"zod": "^4.4.3",
|
|
139
139
|
"@yadsh/dsh-audit-core": "^0.1.2",
|
|
140
|
-
"@yadsh/dsh-plugin-kit": "^0.5.1",
|
|
141
|
-
"@yadsh/dsh-documents": "^0.7.0",
|
|
142
140
|
"@yadsh/dsh-audit-ui": "^0.1.3",
|
|
141
|
+
"@yadsh/dsh-documents": "^0.8.0",
|
|
142
|
+
"@yadsh/dsh-plugin-kit": "^0.6.0",
|
|
143
143
|
"@yadsh/dsh-plugin-log": "^0.4.2"
|
|
144
144
|
},
|
|
145
145
|
"devDependencies": {
|