@yadsh/dsh-qa-surface 0.15.7 → 0.16.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 +8 -0
- 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/accounts/store.js +2 -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 +111 -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 +193 -0
- package/lib/chat-sharing/store.js.map +1 -0
- package/lib/chat-sharing/transport.js +274 -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 +29 -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 +186 -19
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +110 -9
- 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 +13 -3
- 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/chat-artifacts.js +17 -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/QaChangelog.js +57 -3
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/components/QaChatSharing.js +92 -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/QaMessage.js +34 -9
- package/lib/client/components/QaMessage.js.map +1 -1
- package/lib/client/components/QaSidebar.js +1 -1
- package/lib/client/components/QaSidebar.js.map +1 -1
- package/lib/client/components/QaSourcesPanel.js +12 -4
- package/lib/client/components/QaSourcesPanel.js.map +1 -1
- package/lib/client/components/QaWorkspaceBrowser.js +28 -7
- package/lib/client/components/QaWorkspaceBrowser.js.map +1 -1
- package/lib/client/components/source-refs.js +42 -23
- package/lib/client/components/source-refs.js.map +1 -1
- package/lib/client/index.js +60 -6
- 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/katex-css.js +1 -1
- package/lib/client/markdown/render.js +3 -4
- package/lib/client/markdown/render.js.map +1 -1
- package/lib/client/markdown/source-chip.js +4 -1
- 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/slash/useSlashNavigation.js +8 -5
- package/lib/client/slash/useSlashNavigation.js.map +1 -1
- package/lib/client/source-preview.js +1 -1
- package/lib/client/source-preview.js.map +1 -1
- package/lib/client/styles.js +9 -2
- 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/workspace-download.js +42 -2
- package/lib/client/workspace-download.js.map +1 -1
- package/lib/client.js +3329 -947
- package/lib/client.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 +397 -14
- package/lib/index.js.map +1 -1
- package/lib/prompt-notes.js +18 -1
- package/lib/prompt-notes.js.map +1 -1
- package/lib/provenance/collector.js +13 -1
- package/lib/provenance/collector.js.map +1 -1
- package/lib/provenance/connectors.js +32 -8
- package/lib/provenance/connectors.js.map +1 -1
- package/lib/provenance/dedupe.js +8 -1
- package/lib/provenance/dedupe.js.map +1 -1
- package/lib/provenance/document-preview.js +19 -1
- package/lib/provenance/document-preview.js.map +1 -1
- package/lib/provenance/extractors.js +67 -1
- 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 +12 -1
- 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 +63 -0
- package/lib/provenance/integration-extractor.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/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/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 +1633 -236
- package/lib/typert.remote-client.d.ts +48 -1
- package/lib/typert.remote-client.js +1477 -234
- 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/accounts/store.d.ts +1 -1
- 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/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 +28 -0
- package/lib/types/chat-sharing/transport.d.ts +31 -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 +3 -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/chat-sharing-api.d.ts +35 -0
- package/lib/types/client/components/QaChatSharing.d.ts +10 -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/QaMessage.d.ts +5 -2
- package/lib/types/client/components/QaWorkspaceBrowser.d.ts +8 -1
- package/lib/types/client/components/source-refs.d.ts +1 -0
- package/lib/types/client/lineage.d.ts +2 -2
- 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/turn-sources.d.ts +1 -1
- package/lib/types/client/types.d.ts +8 -1
- 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 +35 -1
- package/lib/types/policy.js +2 -0
- package/lib/types/policy.js.map +1 -0
- package/lib/types/prompt-notes.d.ts +2 -0
- package/lib/types/provenance/connectors.d.ts +4 -1
- package/lib/types/provenance/document-preview.d.ts +2 -0
- package/lib/types/provenance/extractors.d.ts +2 -0
- package/lib/types/provenance/file-download.d.ts +10 -0
- package/lib/types/provenance/host-store.d.ts +2 -0
- package/lib/types/provenance/integration-extractor.d.ts +5 -0
- package/lib/types/provenance/types.d.ts +2 -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/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/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 +173 -0
- package/lib/types/types/admin.d.ts +286 -0
- package/lib/types/types/capability.d.ts +230 -0
- package/lib/types/types/config.d.ts +594 -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 +382 -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 +13 -2180
- package/package.json +8 -7
|
@@ -12,6 +12,7 @@ export class QaHostSourceBridge {
|
|
|
12
12
|
refreshing = false;
|
|
13
13
|
/** The refusal already reported, so a repeating failure reaches the console once. */
|
|
14
14
|
refusal = "";
|
|
15
|
+
sessionId = "";
|
|
15
16
|
/** Bumped on reset so a stale in-flight fetch never lands. */
|
|
16
17
|
generation = 0;
|
|
17
18
|
constructor(sourceApi, token) {
|
|
@@ -25,6 +26,7 @@ export class QaHostSourceBridge {
|
|
|
25
26
|
this.signature = "";
|
|
26
27
|
this.refreshing = false;
|
|
27
28
|
this.refusal = "";
|
|
29
|
+
this.sessionId = "";
|
|
28
30
|
}
|
|
29
31
|
/**
|
|
30
32
|
* The Host's bundles win the turns they share with the projection, with one
|
|
@@ -47,7 +49,29 @@ export class QaHostSourceBridge {
|
|
|
47
49
|
continue;
|
|
48
50
|
merged.set(bundle.turn, bundle);
|
|
49
51
|
}
|
|
50
|
-
|
|
52
|
+
const bundles = [...merged.values()].sort((left, right) => left.turn - right.turn);
|
|
53
|
+
if (this.refusal === "")
|
|
54
|
+
return bundles;
|
|
55
|
+
const incomplete = {
|
|
56
|
+
provider: "host",
|
|
57
|
+
reason: "source-bundle-unavailable",
|
|
58
|
+
};
|
|
59
|
+
return bundles.length === 0
|
|
60
|
+
? [
|
|
61
|
+
{
|
|
62
|
+
version: 1,
|
|
63
|
+
sessionId: this.sessionId,
|
|
64
|
+
turn: 0,
|
|
65
|
+
sources: [],
|
|
66
|
+
complete: false,
|
|
67
|
+
incompleteOrigins: [incomplete],
|
|
68
|
+
},
|
|
69
|
+
]
|
|
70
|
+
: bundles.map((bundle) => ({
|
|
71
|
+
...bundle,
|
|
72
|
+
complete: false,
|
|
73
|
+
incompleteOrigins: [...(bundle.incompleteOrigins ?? []), incomplete],
|
|
74
|
+
}));
|
|
51
75
|
}
|
|
52
76
|
/**
|
|
53
77
|
* Fetch the Host bundles of one chat; a changed payload republishes through
|
|
@@ -70,22 +94,39 @@ export class QaHostSourceBridge {
|
|
|
70
94
|
const result = await this.sourceApi.sources(this.token(), sessionId);
|
|
71
95
|
if (generation !== this.generation)
|
|
72
96
|
return;
|
|
97
|
+
this.sessionId = sessionId;
|
|
73
98
|
if (!result.ok) {
|
|
74
|
-
const refusal = refusalKey(result.error);
|
|
99
|
+
const refusal = refusalKey(result.error) || "source-bundle-unavailable";
|
|
75
100
|
if (refusal !== this.refusal) {
|
|
76
101
|
this.refusal = refusal;
|
|
77
102
|
console.warn("dsh-qa-surface: the Host refused this chat's source bundles; showing only what the transcript itself carries", result.error);
|
|
103
|
+
onChanged();
|
|
78
104
|
}
|
|
79
105
|
return;
|
|
80
106
|
}
|
|
107
|
+
const recovered = this.refusal !== "";
|
|
81
108
|
this.refusal = "";
|
|
82
109
|
const signature = JSON.stringify(result.value);
|
|
83
|
-
if (signature === this.signature)
|
|
110
|
+
if (signature === this.signature) {
|
|
111
|
+
if (recovered)
|
|
112
|
+
onChanged();
|
|
84
113
|
return;
|
|
114
|
+
}
|
|
85
115
|
this.signature = signature;
|
|
86
116
|
this.bundles = result.value;
|
|
87
117
|
onChanged();
|
|
88
118
|
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
if (generation !== this.generation)
|
|
121
|
+
return;
|
|
122
|
+
this.sessionId = sessionId;
|
|
123
|
+
const refusal = refusalKey(error) || "source-bundle-unavailable";
|
|
124
|
+
if (refusal !== this.refusal) {
|
|
125
|
+
this.refusal = refusal;
|
|
126
|
+
console.warn("dsh-qa-surface: source bundle transport is unavailable", error);
|
|
127
|
+
onChanged();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
89
130
|
finally {
|
|
90
131
|
if (generation === this.generation)
|
|
91
132
|
this.refreshing = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sources.js","sourceRoot":"","sources":["../../src/client/session-sources.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;
|
|
1
|
+
{"version":3,"file":"session-sources.js","sourceRoot":"","sources":["../../src/client/session-sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,19 +16,23 @@ import { flattenPaletteGroups, groupPaletteRows } from "./palette-rows.js";
|
|
|
16
16
|
*/
|
|
17
17
|
export function useSlashNavigation(options) {
|
|
18
18
|
const { draft, slash, setDraft } = options;
|
|
19
|
-
const [
|
|
19
|
+
const [dismissedDraft, setDismissedDraft] = useState(null);
|
|
20
20
|
const [pickedId, setPickedId] = useState(null);
|
|
21
21
|
const [active, setActive] = useState(0);
|
|
22
22
|
const lastReopen = useRef(options.reopen);
|
|
23
23
|
const query = slashPaletteQuery(draft);
|
|
24
|
-
const canOpen = slash.enabled && query !== undefined &&
|
|
24
|
+
const canOpen = slash.enabled && query !== undefined && dismissedDraft !== draft;
|
|
25
25
|
const open = canOpen;
|
|
26
26
|
useEffect(() => {
|
|
27
27
|
if (lastReopen.current === options.reopen)
|
|
28
28
|
return;
|
|
29
29
|
lastReopen.current = options.reopen;
|
|
30
|
-
|
|
30
|
+
setDismissedDraft(null);
|
|
31
31
|
}, [options.reopen]);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (dismissedDraft !== null && dismissedDraft !== draft)
|
|
34
|
+
setDismissedDraft(null);
|
|
35
|
+
}, [draft, dismissedDraft]);
|
|
32
36
|
// The ranking decides which rows are shown and in which order; the grouping
|
|
33
37
|
// decides how they are captioned. Publishing the grouped order is what keeps
|
|
34
38
|
// the arrow keys on the rows the palette actually draws — see
|
|
@@ -62,7 +66,6 @@ export function useSlashNavigation(options) {
|
|
|
62
66
|
}, [pickedId, slash.entries, draft]);
|
|
63
67
|
const insert = useCallback((entry) => {
|
|
64
68
|
setPickedId(entry.id);
|
|
65
|
-
setDismissed(true);
|
|
66
69
|
setDraft(`/${entry.name} `);
|
|
67
70
|
}, [setDraft]);
|
|
68
71
|
return {
|
|
@@ -93,7 +96,7 @@ export function useSlashNavigation(options) {
|
|
|
93
96
|
},
|
|
94
97
|
pick: insert,
|
|
95
98
|
dismiss: () => {
|
|
96
|
-
|
|
99
|
+
setDismissedDraft(draft);
|
|
97
100
|
},
|
|
98
101
|
picked,
|
|
99
102
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSlashNavigation.js","sourceRoot":"","sources":["../../../src/client/slash/useSlashNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAoC3E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAkC;IAElC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"useSlashNavigation.js","sourceRoot":"","sources":["../../../src/client/slash/useSlashNavigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export function sourcePreviewFailureCopy(failure) {
|
|
|
20
20
|
return "Такой файл не открывается в панели — его можно скачать и посмотреть отдельно.";
|
|
21
21
|
}
|
|
22
22
|
if (reason === "not-evidence") {
|
|
23
|
-
return "
|
|
23
|
+
return "Сервер не подтвердил этот источник для текущего чата. Предпросмотр недоступен.";
|
|
24
24
|
}
|
|
25
25
|
return "Не удалось открыть источник. Возможно, файл был перемещён или больше недоступен.";
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-preview.js","sourceRoot":"","sources":["../../src/client/source-preview.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+EAA+E;AAC/E,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAEvD,SAAS,cAAc,CAAC,OAAgB;IACtC,MAAM,OAAO,GAAI,OAAsD;QACrE,EAAE,OAAO,CAAC;IACZ,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QAC/B,OAAO,4IAA4I,CAAC;IACtJ,CAAC;IACD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,OAAO,+EAA+E,CAAC;IACzF,CAAC;IACD,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"source-preview.js","sourceRoot":"","sources":["../../src/client/source-preview.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+EAA+E;AAC/E,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAEvD,SAAS,cAAc,CAAC,OAAgB;IACtC,MAAM,OAAO,GAAI,OAAsD;QACrE,EAAE,OAAO,CAAC;IACZ,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QAC/B,OAAO,4IAA4I,CAAC;IACtJ,CAAC;IACD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,OAAO,+EAA+E,CAAC;IACzF,CAAC;IACD,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,OAAO,gFAAgF,CAAC;IAC1F,CAAC;IACD,OAAO,kFAAkF,CAAC;AAC5F,CAAC"}
|
package/lib/client/styles.js
CHANGED
|
@@ -916,11 +916,11 @@ a.dsh-qa-srcref:hover,button.dsh-qa-srcref:hover{border-color:var(--dsw-alias-la
|
|
|
916
916
|
.dsh-qa-composer-wrap--drag .dsh-qa-composer{border-color:var(--dsh-qa-accent);border-style:dashed;background:color-mix(in srgb,var(--dsh-qa-accent) 6%,var(--dsw-specific-input-major))}
|
|
917
917
|
.dsh-qa-composer__images{display:flex;flex-wrap:wrap;gap:8px}
|
|
918
918
|
.dsh-qa-composer__files{display:flex;flex-wrap:wrap;gap:8px}
|
|
919
|
-
.dsh-qa-file{display:
|
|
919
|
+
.dsh-qa-file{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px 10px;width:280px;max-width:100%;min-width:0;box-sizing:border-box;padding:8px 10px;border:1px solid var(--dsw-alias-border-l2);border-radius:12px;background:var(--dsw-alias-bg-layer-2)}
|
|
920
920
|
.dsh-qa-file__badge{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:9px;background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);font-size:10px;font-weight:700;letter-spacing:.02em}
|
|
921
921
|
.dsh-qa-file__text{display:flex;flex-direction:column;gap:1px;min-width:0}
|
|
922
922
|
.dsh-qa-file__name{color:var(--dsw-alias-label-primary);font-size:13px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
923
|
-
.dsh-qa-file__meta{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}
|
|
923
|
+
.dsh-qa-file__meta{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px;white-space:nowrap}
|
|
924
924
|
.dsh-qa-file button{display:grid;place-items:center;flex:none;width:18px;height:18px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--dsw-alias-label-tertiary);cursor:pointer}
|
|
925
925
|
.dsh-qa-file button:hover{color:var(--dsh-qa-error)}
|
|
926
926
|
.dsh-qa-file button:focus-visible{outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsh-qa-accent));outline-offset:1px}
|
|
@@ -930,6 +930,8 @@ a.dsh-qa-srcref:hover,button.dsh-qa-srcref:hover{border-color:var(--dsw-alias-la
|
|
|
930
930
|
.dsh-qa-file .dsh-qa-file__open:hover .dsh-qa-file__name{color:var(--dsw-alias-brand-primary)}
|
|
931
931
|
.dsh-qa-file .dsh-qa-file__download{width:auto;height:auto;padding:2px 8px;border:1px solid var(--dsw-alias-border-l2);border-radius:999px;background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-secondary);font-size:11px}
|
|
932
932
|
.dsh-qa-file .dsh-qa-file__download:hover{background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-dimmed)}
|
|
933
|
+
.dsh-qa-file .dsh-qa-file__approve{grid-column:1/-1;width:100%;padding:6px 10px;border-radius:8px;font-size:12px;line-height:18px;white-space:normal;text-align:center}
|
|
934
|
+
.dsh-qa-file__error{grid-column:1/-1;min-width:0;font-size:12px;line-height:18px;overflow-wrap:anywhere;color:var(--dsh-qa-error)}
|
|
933
935
|
.dsh-qa-message__artifacts{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
|
|
934
936
|
.dsh-qa-composer__image{position:relative;display:block;width:64px;height:64px;flex:none}
|
|
935
937
|
.dsh-qa-composer__image img{display:block;width:100%;height:100%;object-fit:cover;border-radius:10px;border:1px solid var(--dsw-alias-border-l2)}
|
|
@@ -938,6 +940,11 @@ a.dsh-qa-srcref:hover,button.dsh-qa-srcref:hover{border-color:var(--dsw-alias-la
|
|
|
938
940
|
.dsh-qa-composer__image button:focus-visible{outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsh-qa-accent));outline-offset:1px}
|
|
939
941
|
.dsh-qa-composer__image button svg{width:9px;height:9px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
|
|
940
942
|
.dsh-qa-composer__attachment-error{margin:0;color:var(--dsh-qa-error);font-size:12px;line-height:18px}
|
|
943
|
+
.dsh-qa-composer__fast{flex:none;padding:4px 9px;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;background:transparent;color:var(--dsw-alias-label-secondary);font:inherit;font-size:12px;cursor:pointer}
|
|
944
|
+
.dsh-qa-composer__fast:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}
|
|
945
|
+
.dsh-qa-composer__fast--active{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-secondary)}
|
|
946
|
+
.dsh-qa-composer__fast:disabled{opacity:.5;cursor:default}
|
|
947
|
+
.dsh-qa-composer__fast-warning{margin:8px 0 0;padding:8px 12px;border:1px solid var(--dsw-alias-border-l2);border-radius:10px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}
|
|
941
948
|
.dsh-qa-composer__attach{display:grid;place-items:center;flex:none;width:30px;height:30px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--dsw-alias-label-tertiary);cursor:pointer}
|
|
942
949
|
.dsh-qa-composer__attach:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}
|
|
943
950
|
.dsh-qa-composer__attach:disabled{opacity:.4;cursor:default}
|
package/lib/client/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/client/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACH,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,SAAS;IAChB,yDAAyD;IACzD,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,SAAS;IACtB,uBAAuB;IACvB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,kBAAkB;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,gBAAgB;IAChB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,SAAS;IACrB,yBAAyB;IACzB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,SAAS;IACvB,mDAAmD;IACnD,cAAc,EAAE,SAAS;IACzB,qDAAqD;IACrD,OAAO,EAAE,wBAAwB;CACzB,CAAC;AAEX,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAC/B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAE/C,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;KACrD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;KAChE,IAAI,CAAC,GAAG,CAAC,CAAC;AAEb;;;;;;;;;;;;GAYG;AACH,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAA;qHAC0E,CAAC;AAEtH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;kBACzB,eAAe;;;;;qBAKZ,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA6HpB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAkOf,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mJAmDoH,kBAAkB
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/client/styles.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ const DEFAULT_SOURCE_EXTRACTORS = createDefaultSourceExtractorRegistry();
|
|
|
18
18
|
* metadata is persisted by DSH, this projection is identical on live updates
|
|
19
19
|
* and replay and requires no assistant-authored bibliography.
|
|
20
20
|
*/
|
|
21
|
-
export function projectTurnSources(snapshot, sessionId = "unknown", workspaceRoot) {
|
|
21
|
+
export function projectTurnSources(snapshot, sessionId = "unknown", workspaceRoot, documentationRoot) {
|
|
22
22
|
const legacy = chatLegacyOf(snapshot);
|
|
23
23
|
const heads = new Map();
|
|
24
24
|
for (const node of legacy.nodes) {
|
|
@@ -85,6 +85,7 @@ export function projectTurnSources(snapshot, sessionId = "unknown", workspaceRoo
|
|
|
85
85
|
role: "parent",
|
|
86
86
|
},
|
|
87
87
|
...(workspaceRoot === undefined ? {} : { workspaceRoot }),
|
|
88
|
+
...(documentationRoot === undefined ? {} : { documentationRoot }),
|
|
88
89
|
});
|
|
89
90
|
}
|
|
90
91
|
return [...collectors.entries()]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-sources.js","sourceRoot":"","sources":["../../src/client/turn-sources.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,MAAM,6BAA6B,CAAC;AAEnF,wFAAwF;AACxF,MAAM,YAAY,GAA4B,MAAM,CAAC,MAAM,CAAC;IAC1D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,WAAW,EAAE,IAAI,GAAG,EAAE;IACtB,QAAQ,EAAE,IAAI,GAAG,EAAE;IACnB,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;CAChC,CAAC,CAAC;AAEH,yGAAyG;AACzG,MAAM,UAAU,YAAY,CAC1B,QAA0C;IAE1C,OAAO,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC;AAC7D,CAAC;AAED,MAAM,yBAAyB,GAAG,oCAAoC,EAAE,CAAC;AASzE;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA0C,EAC1C,SAAS,GAAG,SAAS,EACrB,aAAsB;
|
|
1
|
+
{"version":3,"file":"turn-sources.js","sourceRoot":"","sources":["../../src/client/turn-sources.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,MAAM,6BAA6B,CAAC;AAEnF,wFAAwF;AACxF,MAAM,YAAY,GAA4B,MAAM,CAAC,MAAM,CAAC;IAC1D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,WAAW,EAAE,IAAI,GAAG,EAAE;IACtB,QAAQ,EAAE,IAAI,GAAG,EAAE;IACnB,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;CAChC,CAAC,CAAC;AAEH,yGAAyG;AACzG,MAAM,UAAU,YAAY,CAC1B,QAA0C;IAE1C,OAAO,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC;AAC7D,CAAC;AAED,MAAM,yBAAyB,GAAG,oCAAoC,EAAE,CAAC;AASzE;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA0C,EAC1C,SAAS,GAAG,SAAS,EACrB,aAAsB,EACtB,iBAA0B;IAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QACxC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE;gBAAE,SAAS;YAChE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;IACxD,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QACpC,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS,GAAG,IAAI,iBAAiB,CAAC;gBAChC,SAAS;gBACT,IAAI;gBACJ,QAAQ,EAAE,yBAAyB;aACpC,CAAC,CAAC;YACH,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,WAA+B,CAAC;IACpC,IAAI,WAA+B,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YACxB,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YACxB,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,OAAO;YAAE,SAAS;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,wEAAwE;QACxE,wEAAwE;QACxE,+BAA+B;QAC/B,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,WAAW,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;QAC1D,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,MAAM,EAAE;gBACN,SAAS;gBACT,IAAI;gBACJ,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,WAAW,CAAC,KAAK,SAAS;oBAC3C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;gBACxC,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,QAAQ;aACf;YACD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;YACzD,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC;SAClE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;SAC7B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA2B,EAC3B,aAA4B;IAE5B,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,UAAU,GAAG,aAAa,EAAE,IAAI,EAAE,CAAC;IACzC,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AAChF,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAC5B,QAA0C,EAC1C,SAAS,GAAG,SAAS,EACrB,aAAsB;IAEtB,OAAO,CACL,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAC7E,CAAC;AACJ,CAAC"}
|
package/lib/client/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AA6uBA,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAAmB,MAAM,CAAC,MAAM,CAAC;IACjE,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,IAAI;IACf,uEAAuE;IACvE,uEAAuE;IACvE,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3B,cAAc,EAAE,IAAI;IACpB,KAAK,EAAE,IAAI;IACX,qBAAqB,EAAE,KAAK;IAC5B,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1B,eAAe,EAAE,IAAI;IACrB,uBAAuB,EAAE,SAAS;IAClC,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,iCAAiC;IACjC,YAAY,EAAE,IAAI;IAClB,0EAA0E;IAC1E,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,cAAc,EAAE,aAAa;QAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,CAAC;KACV,CAAC;CACH,CAAC,CAAC"}
|
|
@@ -16,17 +16,57 @@ export function fileNameOf(path) {
|
|
|
16
16
|
}
|
|
17
17
|
/** Save one workspace file under its own name. */
|
|
18
18
|
export function downloadWorkspaceFile(file) {
|
|
19
|
+
if (file.truncated) {
|
|
20
|
+
throw new Error("Файл прочитан частично. Скачивание требует полного файла.");
|
|
21
|
+
}
|
|
19
22
|
const bytes = file.base64 === undefined
|
|
20
23
|
? new TextEncoder().encode(file.text ?? "")
|
|
21
24
|
: base64ToBytes(file.base64);
|
|
22
|
-
|
|
25
|
+
saveBlob(new Blob([bytes], { type: file.mime }), file.path);
|
|
26
|
+
}
|
|
27
|
+
function saveBlob(blob, path) {
|
|
28
|
+
const url = URL.createObjectURL(blob);
|
|
23
29
|
const anchor = document.createElement("a");
|
|
24
30
|
anchor.href = url;
|
|
25
|
-
anchor.download = fileNameOf(
|
|
31
|
+
anchor.download = fileNameOf(path);
|
|
26
32
|
anchor.rel = "noreferrer";
|
|
27
33
|
document.body.append(anchor);
|
|
28
34
|
anchor.click();
|
|
29
35
|
anchor.remove();
|
|
30
36
|
URL.revokeObjectURL(url);
|
|
31
37
|
}
|
|
38
|
+
/** Read one immutable file version in full; a refusal never saves partial bytes. */
|
|
39
|
+
export async function downloadWorkspacePath(path, read) {
|
|
40
|
+
const chunks = [];
|
|
41
|
+
let offset = 0;
|
|
42
|
+
let version = null;
|
|
43
|
+
let size;
|
|
44
|
+
while (true) {
|
|
45
|
+
const result = await read(offset, version);
|
|
46
|
+
if (!result.ok)
|
|
47
|
+
throw new Error("Не удалось скачать файл целиком.");
|
|
48
|
+
const chunk = result.value;
|
|
49
|
+
if (chunk.offset !== offset ||
|
|
50
|
+
!Number.isSafeInteger(chunk.size) ||
|
|
51
|
+
chunk.size < 0 ||
|
|
52
|
+
chunk.size > 256 * 1024 * 1024 ||
|
|
53
|
+
(size !== undefined && chunk.size !== size) ||
|
|
54
|
+
(version !== null && chunk.version !== version))
|
|
55
|
+
throw new Error("Файл изменился во время скачивания.");
|
|
56
|
+
size = chunk.size;
|
|
57
|
+
version = chunk.version;
|
|
58
|
+
const bytes = base64ToBytes(chunk.base64);
|
|
59
|
+
if (offset + bytes.length > size || (!chunk.done && bytes.length === 0)) {
|
|
60
|
+
throw new Error("Файл прочитан не полностью.");
|
|
61
|
+
}
|
|
62
|
+
chunks.push(bytes);
|
|
63
|
+
offset += bytes.length;
|
|
64
|
+
if (chunk.done) {
|
|
65
|
+
if (offset !== size)
|
|
66
|
+
throw new Error("Файл прочитан не полностью.");
|
|
67
|
+
saveBlob(new Blob(chunks, { type: "application/octet-stream" }), path);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
32
72
|
//# sourceMappingURL=workspace-download.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-download.js","sourceRoot":"","sources":["../../src/client/workspace-download.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;GASG;AAEH,uEAAuE;AACvE,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;IAC1E,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AAC/C,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,qBAAqB,CAAC,IAAqB;IACzD,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,KAAK,SAAS;QACvB,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC3C,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,
|
|
1
|
+
{"version":3,"file":"workspace-download.js","sourceRoot":"","sources":["../../src/client/workspace-download.ts"],"names":[],"mappings":"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"}
|