@semiont/react-ui 0.5.27 → 0.5.29
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 +3 -3
- package/dist/{PdfAnnotationCanvas.client-EVUPTUWZ.js → PdfAnnotationCanvas.client-LSH3PZPY.js} +32 -5
- package/dist/{ar-OU3DQGC6.js → ar-AZBRADEB.js} +43 -23
- package/dist/{bn-PHWCR6AZ.js → bn-CCEW6AOS.js} +43 -23
- package/dist/{chunk-VXASXU4K.js → chunk-3ZBKCWUZ.js} +1 -1
- package/dist/{chunk-5VDTWRXJ.js → chunk-G4VHL4UA.js} +31 -31
- package/dist/{chunk-PCRRBU7H.js → chunk-SDKFZLEX.js} +43 -23
- package/dist/{cs-NEXYZ62I.js → cs-HXPF2CTE.js} +43 -23
- package/dist/{da-FAT43YCU.js → da-K5NTK7LH.js} +43 -23
- package/dist/{de-KRQ3WBCU.js → de-GMRQEDZI.js} +43 -23
- package/dist/{el-Q4IU3EKC.js → el-EUB4CI4G.js} +43 -23
- package/dist/{en-2KADE7N4.js → en-R5XA26NF.js} +2 -2
- package/dist/{es-2IO3R2MK.js → es-Z32DAZ6W.js} +43 -23
- package/dist/{fa-Q5GOQFXX.js → fa-G7HN6B32.js} +43 -23
- package/dist/{fi-R6NMRWBE.js → fi-3YBLZO7I.js} +43 -23
- package/dist/{fr-QY4D5E6J.js → fr-VUBH7BBS.js} +43 -23
- package/dist/{he-X6Y77XHY.js → he-WQQEY26B.js} +43 -23
- package/dist/{hi-XL7IOEQM.js → hi-HJZ6W4JB.js} +43 -23
- package/dist/{id-QZ4ZZS67.js → id-ZOGZ37MI.js} +43 -23
- package/dist/index.css +279 -74
- package/dist/index.d.ts +318 -393
- package/dist/index.js +2619 -2687
- package/dist/{it-ME2Q7OB6.js → it-DT6UW66F.js} +43 -23
- package/dist/{ja-HX7QASRI.js → ja-RUKQCOLO.js} +43 -23
- package/dist/{ko-EQO5AHAV.js → ko-ZH5ADKZM.js} +43 -23
- package/dist/{ms-UILFSF3I.js → ms-Y2AFPZTU.js} +43 -23
- package/dist/{nl-NNI45PMK.js → nl-OQEWIXNA.js} +43 -23
- package/dist/{no-MAL5F6P6.js → no-KPAYJZWY.js} +43 -23
- package/dist/{pl-4RMY6JAJ.js → pl-WSXK2UUD.js} +43 -23
- package/dist/{pt-VQH2X3QQ.js → pt-NWRJRUCK.js} +43 -23
- package/dist/{ro-XXCQO2OG.js → ro-3CGVMOC6.js} +43 -23
- package/dist/{sv-7Z6EJ6U4.js → sv-HGSEBA7S.js} +43 -23
- package/dist/test-utils.js +16 -7
- package/dist/{th-L3DXXYVQ.js → th-NZ4G352Z.js} +43 -23
- package/dist/{tr-P3DFVLFJ.js → tr-LGGS4DLW.js} +43 -23
- package/dist/{uk-7C5D3PXS.js → uk-AIX536L4.js} +43 -23
- package/dist/{vi-ZLTLEO7P.js → vi-V6CVQZLQ.js} +43 -23
- package/dist/{zh-5FHVWDIN.js → zh-AGKPGI3L.js} +43 -23
- package/package.json +16 -15
- package/src/components/AssistProgress.tsx +36 -2
- package/src/components/CodeMirrorRenderer.tsx +8 -8
- package/src/components/StatusDisplay.tsx +13 -13
- package/src/components/__tests__/AssistProgress.test.tsx +59 -0
- package/src/components/__tests__/StatusDisplay.test.tsx +9 -9
- package/src/components/modals/ComposeStep.tsx +233 -0
- package/src/components/modals/ConfigureGatherStep.tsx +10 -18
- package/src/components/modals/ConfigureGenerationStep.tsx +178 -34
- package/src/components/modals/ConfigureSearchStep.tsx +19 -0
- package/src/components/modals/ContextSummary.tsx +185 -72
- package/src/components/modals/CorpusPane.tsx +75 -0
- package/src/components/modals/DiscardPrompt.tsx +38 -0
- package/src/components/modals/GatherContextStep.tsx +237 -107
- package/src/components/modals/ReferenceWizardModal.tsx +252 -59
- package/src/components/modals/ResourceGenerateModal.tsx +225 -112
- package/src/components/modals/SearchModal.css +337 -101
- package/src/components/modals/SearchResultsStep.tsx +61 -68
- package/src/components/modals/WizardFooter.tsx +7 -1
- package/src/components/modals/__tests__/ComposeStep.test.tsx +152 -0
- package/src/components/modals/__tests__/ConfigureGatherStep.test.tsx +14 -26
- package/src/components/modals/__tests__/ConfigureGenerationStep.test.tsx +206 -8
- package/src/components/modals/__tests__/ConfigureSearchStep.test.tsx +24 -1
- package/src/components/modals/__tests__/GatherContextStep.resource.test.tsx +463 -25
- package/src/components/modals/__tests__/ReferenceWizardModal.test.tsx +442 -39
- package/src/components/modals/__tests__/ResourceGenerateModal.test.tsx +300 -86
- package/src/components/modals/__tests__/SearchResultsStep.test.tsx +61 -0
- package/src/components/modals/__tests__/WizardFooter.test.tsx +116 -9
- package/src/components/pdf-annotation/PdfAnnotationCanvas.tsx +34 -1
- package/src/components/pdf-annotation/__tests__/PdfAnnotationCanvas.test.tsx +38 -1
- package/src/components/resource/AnnotateView.tsx +3 -3
- package/src/components/resource/BrowseView.tsx +8 -8
- package/src/components/resource/DownloadFileLink.tsx +1 -1
- package/src/components/resource/ResourceViewer.tsx +4 -4
- package/src/components/resource/__tests__/AnnotateView.embeddable.test.tsx +1 -1
- package/src/components/resource/__tests__/BrowseView.embeddable.test.tsx +1 -1
- package/src/components/resource/__tests__/BrowseView.reference-hover.test.tsx +1 -1
- package/src/components/resource/__tests__/BrowseView.test.tsx +11 -11
- package/src/components/resource/__tests__/download-link.test.tsx +6 -6
- package/src/components/resource/annotate-renderers.tsx +3 -3
- package/src/components/resource/panels/AssistSection.css +35 -0
- package/src/components/resource/panels/ReferenceEntry.tsx +11 -4
- package/src/components/resource/panels/ReferencesPanel.tsx +9 -1
- package/src/components/resource/panels/ResourceInfoPanel.tsx +89 -20
- package/src/components/resource/panels/UnifiedAnnotationsPanel.tsx +7 -2
- package/src/components/resource/panels/__tests__/ReferenceEntry.test.tsx +41 -0
- package/src/components/resource/panels/__tests__/ReferencesPanel.observable-flow.test.tsx +1 -1
- package/src/components/resource/panels/__tests__/ReferencesPanel.test.tsx +84 -3
- package/src/components/resource/panels/__tests__/ResourceInfoPanel.test.tsx +149 -7
- package/src/features/auth/__tests__/SignInForm.a11y.test.tsx +12 -12
- package/src/features/auth/components/SignInForm.tsx +53 -53
- package/src/features/auth-welcome/state/__tests__/welcome-state-unit.test.ts +2 -2
- package/src/features/resource-compose/__tests__/ResourceComposePage.test.tsx +0 -65
- package/src/features/resource-compose/components/ResourceComposePage.tsx +35 -133
- package/src/features/resource-compose/state/__tests__/compose-page-state-unit.test.ts +1 -100
- package/src/features/resource-compose/state/compose-page-state-unit.ts +5 -57
- package/src/features/resource-discovery/__tests__/ResourceDiscoveryPage.test.tsx +1 -1
- package/src/features/resource-discovery/components/ResourceDiscoveryPage.tsx +2 -2
- package/src/features/resource-discovery/state/discover-state-unit.ts +1 -1
- package/src/features/resource-viewer/__tests__/ResourceViewerPage.test.tsx +73 -17
- package/src/features/resource-viewer/__tests__/generation-options.test.ts +53 -0
- package/src/features/resource-viewer/components/ResourceViewerPage.tsx +148 -83
- package/src/features/resource-viewer/generation-options.ts +29 -0
- package/src/styles/core/forms.css +35 -8
- package/src/styles/features/resource-viewer.css +0 -22
- package/src/styles/features/resource.css +0 -4
- package/src/styles/index.css +0 -1
- package/translations/ar.json +42 -22
- package/translations/bn.json +42 -22
- package/translations/cs.json +42 -22
- package/translations/da.json +42 -22
- package/translations/de.json +42 -22
- package/translations/el.json +42 -22
- package/translations/en.json +42 -22
- package/translations/es.json +42 -22
- package/translations/fa.json +42 -22
- package/translations/fi.json +42 -22
- package/translations/fr.json +42 -22
- package/translations/he.json +42 -22
- package/translations/hi.json +42 -22
- package/translations/id.json +42 -22
- package/translations/it.json +42 -22
- package/translations/ja.json +42 -22
- package/translations/ko.json +42 -22
- package/translations/ms.json +42 -22
- package/translations/nl.json +42 -22
- package/translations/no.json +42 -22
- package/translations/pl.json +42 -22
- package/translations/pt.json +42 -22
- package/translations/ro.json +42 -22
- package/translations/sv.json +42 -22
- package/translations/th.json +42 -22
- package/translations/tr.json +42 -22
- package/translations/uk.json +42 -22
- package/translations/vi.json +42 -22
- package/translations/zh.json +42 -22
- package/dist/PdfAnnotationCanvas.client-EVUPTUWZ.js.map +0 -1
- package/dist/PdfAnnotationCanvas.client-TGDPPGXJ.css.map +0 -1
- package/dist/ar-OU3DQGC6.js.map +0 -1
- package/dist/bn-PHWCR6AZ.js.map +0 -1
- package/dist/chunk-5VDTWRXJ.js.map +0 -1
- package/dist/chunk-BTUG3VJJ.js.map +0 -1
- package/dist/chunk-O23TLLXW.js.map +0 -1
- package/dist/chunk-PCRRBU7H.js.map +0 -1
- package/dist/chunk-QT7LYM72.js.map +0 -1
- package/dist/chunk-VXASXU4K.js.map +0 -1
- package/dist/cs-NEXYZ62I.js.map +0 -1
- package/dist/da-FAT43YCU.js.map +0 -1
- package/dist/de-KRQ3WBCU.js.map +0 -1
- package/dist/el-Q4IU3EKC.js.map +0 -1
- package/dist/en-2KADE7N4.js.map +0 -1
- package/dist/es-2IO3R2MK.js.map +0 -1
- package/dist/fa-Q5GOQFXX.js.map +0 -1
- package/dist/fi-R6NMRWBE.js.map +0 -1
- package/dist/fr-QY4D5E6J.js.map +0 -1
- package/dist/he-X6Y77XHY.js.map +0 -1
- package/dist/hi-XL7IOEQM.js.map +0 -1
- package/dist/id-QZ4ZZS67.js.map +0 -1
- package/dist/index.css.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/integrations/css-modules-helper.js.map +0 -1
- package/dist/integrations/styled-components-theme.js.map +0 -1
- package/dist/it-ME2Q7OB6.js.map +0 -1
- package/dist/ja-HX7QASRI.js.map +0 -1
- package/dist/ko-EQO5AHAV.js.map +0 -1
- package/dist/ms-UILFSF3I.js.map +0 -1
- package/dist/nl-NNI45PMK.js.map +0 -1
- package/dist/no-MAL5F6P6.js.map +0 -1
- package/dist/pl-4RMY6JAJ.js.map +0 -1
- package/dist/pt-VQH2X3QQ.js.map +0 -1
- package/dist/ro-XXCQO2OG.js.map +0 -1
- package/dist/sv-7Z6EJ6U4.js.map +0 -1
- package/dist/test-utils.css.map +0 -1
- package/dist/test-utils.js.map +0 -1
- package/dist/th-L3DXXYVQ.js.map +0 -1
- package/dist/tr-P3DFVLFJ.js.map +0 -1
- package/dist/uk-7C5D3PXS.js.map +0 -1
- package/dist/vi-ZLTLEO7P.js.map +0 -1
- package/dist/zh-5FHVWDIN.js.map +0 -1
- package/src/components/modals/ResourceSearchModal.tsx +0 -224
- package/src/components/modals/__tests__/ResourceSearchModal.test.tsx +0 -163
- package/src/features/admin-exchange/__tests__/AdminExchangePage.test.tsx +0 -137
- package/src/features/admin-exchange/__tests__/ExportCard.test.tsx +0 -41
- package/src/features/admin-exchange/__tests__/ImportCard.test.tsx +0 -148
- package/src/features/admin-exchange/__tests__/ImportProgress.test.tsx +0 -117
- package/src/features/admin-exchange/components/AdminExchangePage.tsx +0 -117
- package/src/features/admin-exchange/components/ExportCard.tsx +0 -35
- package/src/features/admin-exchange/components/ImportCard.tsx +0 -183
- package/src/features/admin-exchange/components/ImportProgress.tsx +0 -80
- package/src/features/admin-exchange/state/__tests__/exchange-state-unit.test.ts +0 -185
- package/src/features/admin-exchange/state/exchange-state-unit.ts +0 -133
- package/src/features/moderation-linked-data/__tests__/LinkedDataPage.test.tsx +0 -118
- package/src/features/moderation-linked-data/components/LinkedDataPage.tsx +0 -118
- package/src/styles/features/exchange.css +0 -374
|
@@ -13,6 +13,8 @@ var AssistProgress = {
|
|
|
13
13
|
codeCompleteCreated: "\u0110\xE3 t\u1EA1o {{count}} {{kind}}",
|
|
14
14
|
codeGeneratingResource: "\u0110ang t\u1EA1o\u2026",
|
|
15
15
|
codeCreatingResource: "\u0110ang t\u1EA1o t\xE0i nguy\xEAn\u2026",
|
|
16
|
+
codeCompleteGenerated: "\u0110\xE3 t\u1EA1o t\xE0i nguy\xEAn",
|
|
17
|
+
codeCompleteGeneratedTruncated: "\u0110\xE3 t\u1EA1o t\xE0i nguy\xEAn \u2014 b\u1ECB c\u1EAFt \u1EDF gi\u1EDBi h\u1EA1n \u0111\u1ED9 d\xE0i",
|
|
16
18
|
kindHighlight: "\u0111\xE1nh d\u1EA5u",
|
|
17
19
|
kindComment: "b\xECnh lu\u1EADn",
|
|
18
20
|
kindAssessment: "\u0111\xE1nh gi\xE1",
|
|
@@ -247,6 +249,7 @@ var ReferencesPanel = {
|
|
|
247
249
|
noIncomingReferences: "Kh\xF4ng c\xF3 tham chi\u1EBFu \u0111\u1EBFn",
|
|
248
250
|
stub: "Tham chi\u1EBFu s\u01A1 khai (ch\u01B0a li\xEAn k\u1EBFt)",
|
|
249
251
|
resolved: "Tham chi\u1EBFu \u0111\xE3 ph\xE2n gi\u1EA3i (\u0111\xE3 li\xEAn k\u1EBFt)",
|
|
252
|
+
derived: "Ph\xE1i sinh",
|
|
250
253
|
open: "M\u1EDF",
|
|
251
254
|
unlink: "H\u1EE7y li\xEAn k\u1EBFt",
|
|
252
255
|
resolve: "Gi\u1EA3i quy\u1EBFt tham chi\u1EBFu",
|
|
@@ -254,7 +257,6 @@ var ReferencesPanel = {
|
|
|
254
257
|
createReference: "T\u1EA1o tham chi\u1EBFu",
|
|
255
258
|
entityTypesOptional: "Lo\u1EA1i th\u1EF1c th\u1EC3 (T\xF9y ch\u1ECDn)",
|
|
256
259
|
fragmentSelected: "\u0110\xE3 ch\u1ECDn \u0111o\u1EA1n v\u0103n b\u1EA3n",
|
|
257
|
-
imageRegionSelected: "\u0110\xE3 ch\u1ECDn v\xF9ng h\xECnh \u1EA3nh",
|
|
258
260
|
annotateReferences: "Ch\xFA th\xEDch tham chi\u1EBFu",
|
|
259
261
|
selectEntityTypes: "Lo\u1EA1i th\u1EF1c th\u1EC3:",
|
|
260
262
|
select: "Ch\u1ECDn",
|
|
@@ -265,8 +267,6 @@ var ReferencesPanel = {
|
|
|
265
267
|
annotating: "\u0110ang ch\xFA th\xEDch...",
|
|
266
268
|
includeDescriptiveReferences: "Bao g\u1ED3m tham chi\u1EBFu m\xF4 t\u1EA3",
|
|
267
269
|
descriptiveReferencesTooltip: "C\u0169ng t\xECm c\xE1c c\u1EE5m t\u1EEB nh\u01B0 'v\u1ECB CEO', 'g\xE3 kh\u1ED5ng l\u1ED3 c\xF4ng ngh\u1EC7', 'nh\xE0 v\u1EADt l\xFD' (ngo\xE0i t\xEAn ri\xEAng)",
|
|
268
|
-
annotationProgressTitle: "\u0110ang ch\xFA th\xEDch tham chi\u1EBFu th\u1EF1c th\u1EC3",
|
|
269
|
-
cancelAnnotation: "H\u1EE7y ch\xFA th\xEDch",
|
|
270
270
|
found: "\u0110\xE3 t\xECm th\u1EA5y {{count}}",
|
|
271
271
|
complete: "Ho\xE0n th\xE0nh ch\xFA th\xEDch!",
|
|
272
272
|
failed: "Ch\xFA th\xEDch th\u1EA5t b\u1EA1i",
|
|
@@ -381,19 +381,14 @@ var Settings = {
|
|
|
381
381
|
};
|
|
382
382
|
var AnnotateView = {};
|
|
383
383
|
var ResourceGenerate = {
|
|
384
|
-
gatherTitle: "C\u1EA5u h\xECnh Thu th\u1EADp",
|
|
385
|
-
reviewTitle: "Xem l\u1EA1i Ng\u1EEF c\u1EA3nh",
|
|
386
|
-
configureTitle: "C\u1EA5u h\xECnh T\u1EA1o sinh",
|
|
387
|
-
next: "Ti\u1EBFp theo",
|
|
388
|
-
back: "Quay l\u1EA1i",
|
|
389
|
-
cancel: "H\u1EE7y",
|
|
390
384
|
gatherIntro: "Ch\u1ECDn n\u1ED9i dung \u0111\u1EC3 \u0111\u01B0a v\xE0o ng\u1EEF c\u1EA3nh \u0111\xE3 thu th\u1EADp.",
|
|
391
385
|
includeContent: "Bao g\u1ED3m n\u1ED9i dung t\xE0i nguy\xEAn",
|
|
392
386
|
includeSummary: "Bao g\u1ED3m t\xF3m t\u1EAFt",
|
|
393
387
|
gatherDepth: "\u0110\u1ED9 s\xE2u",
|
|
394
388
|
gatherMaxResources: "T\xE0i nguy\xEAn T\u1ED1i \u0111a",
|
|
395
389
|
gatherButton: "Thu th\u1EADp",
|
|
396
|
-
|
|
390
|
+
editGather: "Thay \u0111\u1ED5i c\xE0i \u0111\u1EB7t thu th\u1EADp",
|
|
391
|
+
recallLabel: "Bao g\u1ED3m trong truy h\u1ED3i \u2014 b\u1ECF ch\u1ECDn \u0111\u1EC3 lo\u1EA1i tr\u1EEB",
|
|
397
392
|
loadingContext: "\u0110ang thu th\u1EADp ng\u1EEF c\u1EA3nh...",
|
|
398
393
|
failedContext: "Kh\xF4ng th\u1EC3 thu th\u1EADp ng\u1EEF c\u1EA3nh",
|
|
399
394
|
sourceContextLabel: "T\xE0i nguy\xEAn",
|
|
@@ -411,18 +406,24 @@ var ResourceGenerate = {
|
|
|
411
406
|
maxLength: "\u0110\u1ED9 d\xE0i T\u1ED1i \u0111a",
|
|
412
407
|
maxLengthHelp: "S\u1ED1 l\u01B0\u1EE3ng token t\u1ED1i \u0111a",
|
|
413
408
|
generate: "T\u1EA1o sinh",
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
409
|
+
maxLengthCeiling: "Gi\u1EDBi h\u1EA1n {{maxOutputTokens}} token b\u1EDFi {{model}}.",
|
|
410
|
+
outputFormat: "\u0110\u1ECBnh d\u1EA1ng",
|
|
411
|
+
formatExtensionMismatch: "V\u1ECB tr\xED l\u01B0u ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng {{extension}} \u0111\u1EC3 kh\u1EDBp v\u1EDBi \u0111\u1ECBnh d\u1EA1ng \u0111\xE3 ch\u1ECDn.",
|
|
412
|
+
graphPaneTitle: "V\xF9ng l\xE2n c\u1EADn",
|
|
413
|
+
graphEmpty: "Ch\u01B0a c\xF3 li\xEAn k\u1EBFt.",
|
|
414
|
+
resourceLinkLabel: "Li\xEAn k\u1EBFt t\xE0i nguy\xEAn",
|
|
415
|
+
corpusPaneTitle: "\u0110o\u1EA1n v\u0103n t\u01B0\u01A1ng t\u1EF1",
|
|
416
|
+
corpusEmpty: "Kh\xF4ng t\xECm th\u1EA5y \u0111o\u1EA1n v\u0103n t\u01B0\u01A1ng t\u1EF1.",
|
|
417
|
+
excludedReceipt: "{{types}} b\u1ECB lo\u1EA1i kh\u1ECFi l\u1EA7n truy h\u1ED3i n\xE0y",
|
|
418
|
+
machineRead: "OCR",
|
|
419
|
+
score: "\u0110i\u1EC3m",
|
|
420
|
+
saveLocation: "V\u1ECB tr\xED l\u01B0u",
|
|
421
|
+
discardDraftPrompt: "B\u1ECF b\u1EA3n nh\xE1p n\xE0y?",
|
|
422
|
+
discardDraft: "B\u1ECF",
|
|
423
|
+
keepEditing: "Ti\u1EBFp t\u1EE5c ch\u1EC9nh s\u1EEDa",
|
|
424
|
+
title: "T\u1EA1o t\u1EEB t\xE0i nguy\xEAn n\xE0y"
|
|
420
425
|
};
|
|
421
426
|
var ReferenceWizard = {
|
|
422
|
-
gatherTitle: "Ng\u1EEF c\u1EA3nh \u0111\xE3 thu th\u1EADp",
|
|
423
|
-
configureGenerationTitle: "C\u1EA5u h\xECnh T\u1EA1o sinh",
|
|
424
|
-
configureSearchTitle: "C\u1EA5u h\xECnh t\xECm ki\u1EBFm",
|
|
425
|
-
searchResultsTitle: "K\u1EBFt qu\u1EA3 t\xECm ki\u1EBFm",
|
|
426
427
|
sourceContextLabel: "Ng\u1EEF c\u1EA3nh ch\xFA th\xEDch trong t\xE0i nguy\xEAn",
|
|
427
428
|
connectionsLabel: "Ch\xFA th\xEDch ngang h\xE0ng",
|
|
428
429
|
citedByLabel: "T\xE0i nguy\xEAn \u0111\u01B0\u1EE3c tr\xEDch d\u1EABn b\u1EDFi",
|
|
@@ -430,7 +431,6 @@ var ReferenceWizard = {
|
|
|
430
431
|
userHintPlaceholder: "M\xF4 t\u1EA3 ch\xFA th\xEDch n\xE0y \u0111\u1EC1 c\u1EADp \u0111\u1EBFn \u0111i\u1EC1u g\xEC...",
|
|
431
432
|
loadingContext: "\u0110ang thu th\u1EADp ng\u1EEF c\u1EA3nh...",
|
|
432
433
|
failedContext: "Kh\xF4ng th\u1EC3 thu th\u1EADp ng\u1EEF c\u1EA3nh",
|
|
433
|
-
cancel: "H\u1EE7y",
|
|
434
434
|
generate: "T\u1EA1o sinh",
|
|
435
435
|
compose: "So\u1EA1n",
|
|
436
436
|
resolutionStrategyLabel: "Chi\u1EBFn l\u01B0\u1EE3c gi\u1EA3i quy\u1EBFt",
|
|
@@ -453,8 +453,28 @@ var ReferenceWizard = {
|
|
|
453
453
|
semanticScoring: "Ch\u1EA5m \u0111i\u1EC3m Ng\u1EEF ngh\u0129a",
|
|
454
454
|
semanticScoringHelp: "S\u1EED d\u1EE5ng AI \u0111\u1EC3 ch\u1EA5m \u0111i\u1EC3m k\u1EBFt qu\u1EA3 theo m\u1EE9c \u0111\u1ED9 li\xEAn quan ng\u1EEF ngh\u0129a",
|
|
455
455
|
searching: "\u0110ang t\xECm ki\u1EBFm...",
|
|
456
|
+
searchFailed: "T\xECm ki\u1EBFm th\u1EA5t b\u1EA1i",
|
|
456
457
|
search: "T\xECm ki\u1EBFm",
|
|
457
|
-
maxLengthCeiling: "Gi\u1EDBi h\u1EA1n {{maxOutputTokens}} token b\u1EDFi {{model}}."
|
|
458
|
+
maxLengthCeiling: "Gi\u1EDBi h\u1EA1n {{maxOutputTokens}} token b\u1EDFi {{model}}.",
|
|
459
|
+
outputFormat: "\u0110\u1ECBnh d\u1EA1ng",
|
|
460
|
+
formatExtensionMismatch: "V\u1ECB tr\xED l\u01B0u ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng {{extension}} \u0111\u1EC3 kh\u1EDBp v\u1EDBi \u0111\u1ECBnh d\u1EA1ng \u0111\xE3 ch\u1ECDn.",
|
|
461
|
+
graphPaneTitle: "V\xF9ng l\xE2n c\u1EADn",
|
|
462
|
+
graphEmpty: "Ch\u01B0a c\xF3 li\xEAn k\u1EBFt \u2014 gi\u1EA3i quy\u1EBFt tham chi\u1EBFu n\xE0y s\u1EBD t\u1EA1o li\xEAn k\u1EBFt \u0111\u1EA7u ti\xEAn.",
|
|
463
|
+
resourceLinkLabel: "Li\xEAn k\u1EBFt t\xE0i nguy\xEAn",
|
|
464
|
+
corpusPaneTitle: "\u0110o\u1EA1n v\u0103n t\u01B0\u01A1ng t\u1EF1",
|
|
465
|
+
corpusEmpty: "Kh\xF4ng t\xECm th\u1EA5y \u0111o\u1EA1n v\u0103n t\u01B0\u01A1ng t\u1EF1 \u2014 t\xECm ki\u1EBFm kh\xF3 c\xF3 k\u1EBFt qu\u1EA3.",
|
|
466
|
+
excludedReceipt: "{{types}} b\u1ECB lo\u1EA1i kh\u1ECFi l\u1EA7n truy h\u1ED3i n\xE0y",
|
|
467
|
+
machineRead: "OCR",
|
|
468
|
+
userHintEffect: "d\u1EABn h\u01B0\u1EDBng t\xECm ki\u1EBFm v\xE0 t\u1EA1o sinh",
|
|
469
|
+
saveLocation: "V\u1ECB tr\xED l\u01B0u",
|
|
470
|
+
entityTypes: "Lo\u1EA1i th\u1EF1c th\u1EC3",
|
|
471
|
+
contentLabel: "N\u1ED9i dung",
|
|
472
|
+
createAndLink: "T\u1EA1o & Li\xEAn k\u1EBFt",
|
|
473
|
+
creatingAndLinking: "\u0110ang t\u1EA1o & li\xEAn k\u1EBFt\u2026",
|
|
474
|
+
discardDraftPrompt: "B\u1ECF b\u1EA3n nh\xE1p n\xE0y?",
|
|
475
|
+
discardDraft: "B\u1ECF",
|
|
476
|
+
keepEditing: "Ti\u1EBFp t\u1EE5c ch\u1EC9nh s\u1EEDa",
|
|
477
|
+
resolveTitle: "Gi\u1EA3i quy\u1EBFt tham chi\u1EBFu"
|
|
458
478
|
};
|
|
459
479
|
var OutcomeToasts = {
|
|
460
480
|
createFailed: "Kh\xF4ng th\u1EC3 t\u1EA1o ch\xFA th\xEDch: {{detail}}",
|
|
@@ -522,4 +542,4 @@ export {
|
|
|
522
542
|
UnifiedAnnotationsPanel,
|
|
523
543
|
vi_default as default
|
|
524
544
|
};
|
|
525
|
-
//# sourceMappingURL=vi-
|
|
545
|
+
//# sourceMappingURL=vi-V6CVQZLQ.js.map
|
|
@@ -13,6 +13,8 @@ var AssistProgress = {
|
|
|
13
13
|
codeCompleteCreated: "\u5DF2\u521B\u5EFA {{count}} \u4E2A{{kind}}",
|
|
14
14
|
codeGeneratingResource: "\u751F\u6210\u4E2D\u2026",
|
|
15
15
|
codeCreatingResource: "\u6B63\u5728\u521B\u5EFA\u8D44\u6E90\u2026",
|
|
16
|
+
codeCompleteGenerated: "\u5DF2\u521B\u5EFA\u8D44\u6E90",
|
|
17
|
+
codeCompleteGeneratedTruncated: "\u5DF2\u521B\u5EFA\u8D44\u6E90 \u2014 \u5728\u957F\u5EA6\u9650\u5236\u5904\u88AB\u622A\u65AD",
|
|
16
18
|
kindHighlight: "\u9AD8\u4EAE",
|
|
17
19
|
kindComment: "\u8BC4\u8BBA",
|
|
18
20
|
kindAssessment: "\u8BC4\u4F30",
|
|
@@ -247,6 +249,7 @@ var ReferencesPanel = {
|
|
|
247
249
|
noIncomingReferences: "\u65E0\u4F20\u5165\u5F15\u7528",
|
|
248
250
|
stub: "\u5B58\u6839\u5F15\u7528\uFF08\u672A\u94FE\u63A5\uFF09",
|
|
249
251
|
resolved: "\u5DF2\u89E3\u6790\u5F15\u7528\uFF08\u5DF2\u94FE\u63A5\uFF09",
|
|
252
|
+
derived: "\u6D3E\u751F",
|
|
250
253
|
open: "\u6253\u5F00",
|
|
251
254
|
unlink: "\u53D6\u6D88\u94FE\u63A5",
|
|
252
255
|
resolve: "\u89E3\u6790\u5F15\u7528",
|
|
@@ -254,7 +257,6 @@ var ReferencesPanel = {
|
|
|
254
257
|
createReference: "\u521B\u5EFA\u5F15\u7528",
|
|
255
258
|
entityTypesOptional: "\u5B9E\u4F53\u7C7B\u578B\uFF08\u53EF\u9009\uFF09",
|
|
256
259
|
fragmentSelected: "\u5DF2\u9009\u62E9\u7247\u6BB5",
|
|
257
|
-
imageRegionSelected: "\u5DF2\u9009\u62E9\u56FE\u50CF\u533A\u57DF",
|
|
258
260
|
annotateReferences: "\u6CE8\u91CA\u5F15\u7528",
|
|
259
261
|
selectEntityTypes: "\u5B9E\u4F53\u7C7B\u578B\uFF1A",
|
|
260
262
|
select: "\u9009\u62E9",
|
|
@@ -265,8 +267,6 @@ var ReferencesPanel = {
|
|
|
265
267
|
annotating: "\u6B63\u5728\u6CE8\u91CA...",
|
|
266
268
|
includeDescriptiveReferences: "\u5305\u542B\u63CF\u8FF0\u6027\u5F15\u7528",
|
|
267
269
|
descriptiveReferencesTooltip: "\u540C\u65F6\u67E5\u627E\u8BF8\u5982\u300C\u9996\u5E2D\u6267\u884C\u5B98\u300D\u3001\u300C\u79D1\u6280\u5DE8\u5934\u300D\u3001\u300C\u7269\u7406\u5B66\u5BB6\u300D\u7B49\u77ED\u8BED\uFF08\u9664\u540D\u79F0\u5916\uFF09",
|
|
268
|
-
annotationProgressTitle: "\u6B63\u5728\u6CE8\u91CA\u5B9E\u4F53\u5F15\u7528",
|
|
269
|
-
cancelAnnotation: "\u53D6\u6D88\u6CE8\u91CA",
|
|
270
270
|
found: "\u627E\u5230 {{count}} \u4E2A",
|
|
271
271
|
complete: "\u6CE8\u91CA\u5B8C\u6210\uFF01",
|
|
272
272
|
failed: "\u6CE8\u91CA\u5931\u8D25",
|
|
@@ -381,19 +381,14 @@ var Settings = {
|
|
|
381
381
|
};
|
|
382
382
|
var AnnotateView = {};
|
|
383
383
|
var ResourceGenerate = {
|
|
384
|
-
gatherTitle: "\u914D\u7F6E\u6536\u96C6",
|
|
385
|
-
reviewTitle: "\u67E5\u770B\u4E0A\u4E0B\u6587",
|
|
386
|
-
configureTitle: "\u914D\u7F6E\u751F\u6210",
|
|
387
|
-
next: "\u4E0B\u4E00\u6B65",
|
|
388
|
-
back: "\u8FD4\u56DE",
|
|
389
|
-
cancel: "\u53D6\u6D88",
|
|
390
384
|
gatherIntro: "\u9009\u62E9\u8981\u5305\u542B\u5728\u6536\u96C6\u7684\u4E0A\u4E0B\u6587\u4E2D\u7684\u5185\u5BB9\u3002",
|
|
391
385
|
includeContent: "\u5305\u542B\u8D44\u6E90\u5185\u5BB9",
|
|
392
386
|
includeSummary: "\u5305\u542B\u6458\u8981",
|
|
393
387
|
gatherDepth: "\u6DF1\u5EA6",
|
|
394
388
|
gatherMaxResources: "\u6700\u5927\u8D44\u6E90\u6570",
|
|
395
389
|
gatherButton: "\u6536\u96C6",
|
|
396
|
-
|
|
390
|
+
editGather: "\u66F4\u6539\u6536\u96C6\u8BBE\u7F6E",
|
|
391
|
+
recallLabel: "\u5DF2\u5305\u542B\u5728\u53EC\u56DE\u4E2D \u2014 \u53D6\u6D88\u9009\u62E9\u4EE5\u6392\u9664",
|
|
397
392
|
loadingContext: "\u6B63\u5728\u6536\u96C6\u4E0A\u4E0B\u6587...",
|
|
398
393
|
failedContext: "\u6536\u96C6\u4E0A\u4E0B\u6587\u5931\u8D25",
|
|
399
394
|
sourceContextLabel: "\u8D44\u6E90",
|
|
@@ -411,18 +406,24 @@ var ResourceGenerate = {
|
|
|
411
406
|
maxLength: "\u6700\u5927\u957F\u5EA6",
|
|
412
407
|
maxLengthHelp: "\u6700\u5927\u4EE4\u724C\u6570",
|
|
413
408
|
generate: "\u751F\u6210",
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
409
|
+
maxLengthCeiling: "\u53D7 {{model}} \u9650\u5236\u4E3A {{maxOutputTokens}} \u4E2A\u8BCD\u5143\u3002",
|
|
410
|
+
outputFormat: "\u683C\u5F0F",
|
|
411
|
+
formatExtensionMismatch: "\u4FDD\u5B58\u4F4D\u7F6E\u5FC5\u987B\u4EE5 {{extension}} \u7ED3\u5C3E\uFF0C\u4EE5\u5339\u914D\u6240\u9009\u683C\u5F0F\u3002",
|
|
412
|
+
graphPaneTitle: "\u5468\u8FB9",
|
|
413
|
+
graphEmpty: "\u5C1A\u65E0\u94FE\u63A5\u3002",
|
|
414
|
+
resourceLinkLabel: "\u8D44\u6E90\u94FE\u63A5",
|
|
415
|
+
corpusPaneTitle: "\u76F8\u4F3C\u6BB5\u843D",
|
|
416
|
+
corpusEmpty: "\u672A\u627E\u5230\u76F8\u4F3C\u6BB5\u843D\u3002",
|
|
417
|
+
excludedReceipt: "{{types}} \u5DF2\u4ECE\u672C\u6B21\u53EC\u56DE\u4E2D\u6392\u9664",
|
|
418
|
+
machineRead: "OCR",
|
|
419
|
+
score: "\u8BC4\u5206",
|
|
420
|
+
saveLocation: "\u4FDD\u5B58\u4F4D\u7F6E",
|
|
421
|
+
discardDraftPrompt: "\u653E\u5F03\u6B64\u8349\u7A3F\uFF1F",
|
|
422
|
+
discardDraft: "\u653E\u5F03",
|
|
423
|
+
keepEditing: "\u7EE7\u7EED\u7F16\u8F91",
|
|
424
|
+
title: "\u4ECE\u6B64\u8D44\u6E90\u751F\u6210"
|
|
420
425
|
};
|
|
421
426
|
var ReferenceWizard = {
|
|
422
|
-
gatherTitle: "\u5DF2\u6536\u96C6\u7684\u4E0A\u4E0B\u6587",
|
|
423
|
-
configureGenerationTitle: "\u914D\u7F6E\u751F\u6210",
|
|
424
|
-
configureSearchTitle: "\u914D\u7F6E\u641C\u7D22",
|
|
425
|
-
searchResultsTitle: "\u641C\u7D22\u7ED3\u679C",
|
|
426
427
|
sourceContextLabel: "\u8D44\u6E90\u4E2D\u7684\u6CE8\u91CA\u4E0A\u4E0B\u6587",
|
|
427
428
|
connectionsLabel: "\u5BF9\u7B49\u6CE8\u91CA",
|
|
428
429
|
citedByLabel: "\u8D44\u6E90\u88AB\u5F15\u7528",
|
|
@@ -430,7 +431,6 @@ var ReferenceWizard = {
|
|
|
430
431
|
userHintPlaceholder: "\u63CF\u8FF0\u6B64\u6CE8\u91CA\u6240\u6307\u7684\u5185\u5BB9...",
|
|
431
432
|
loadingContext: "\u6B63\u5728\u6536\u96C6\u4E0A\u4E0B\u6587...",
|
|
432
433
|
failedContext: "\u6536\u96C6\u4E0A\u4E0B\u6587\u5931\u8D25",
|
|
433
|
-
cancel: "\u53D6\u6D88",
|
|
434
434
|
generate: "\u751F\u6210",
|
|
435
435
|
compose: "\u7F16\u5199",
|
|
436
436
|
resolutionStrategyLabel: "\u89E3\u6790\u7B56\u7565",
|
|
@@ -453,8 +453,28 @@ var ReferenceWizard = {
|
|
|
453
453
|
semanticScoring: "\u8BED\u4E49\u8BC4\u5206",
|
|
454
454
|
semanticScoringHelp: "\u4F7F\u7528 AI \u6309\u8BED\u4E49\u76F8\u5173\u6027\u5BF9\u7ED3\u679C\u8FDB\u884C\u8BC4\u5206",
|
|
455
455
|
searching: "\u641C\u7D22\u4E2D...",
|
|
456
|
+
searchFailed: "\u641C\u7D22\u5931\u8D25",
|
|
456
457
|
search: "\u641C\u7D22",
|
|
457
|
-
maxLengthCeiling: "\u53D7 {{model}} \u9650\u5236\u4E3A {{maxOutputTokens}} \u4E2A\u8BCD\u5143\u3002"
|
|
458
|
+
maxLengthCeiling: "\u53D7 {{model}} \u9650\u5236\u4E3A {{maxOutputTokens}} \u4E2A\u8BCD\u5143\u3002",
|
|
459
|
+
outputFormat: "\u683C\u5F0F",
|
|
460
|
+
formatExtensionMismatch: "\u4FDD\u5B58\u4F4D\u7F6E\u5FC5\u987B\u4EE5 {{extension}} \u7ED3\u5C3E\uFF0C\u4EE5\u5339\u914D\u6240\u9009\u683C\u5F0F\u3002",
|
|
461
|
+
graphPaneTitle: "\u5468\u8FB9",
|
|
462
|
+
graphEmpty: "\u5C1A\u65E0\u94FE\u63A5 \u2014 \u89E3\u6790\u6B64\u5F15\u7528\u5C06\u521B\u5EFA\u7B2C\u4E00\u4E2A\u3002",
|
|
463
|
+
resourceLinkLabel: "\u8D44\u6E90\u94FE\u63A5",
|
|
464
|
+
corpusPaneTitle: "\u76F8\u4F3C\u6BB5\u843D",
|
|
465
|
+
corpusEmpty: "\u672A\u627E\u5230\u76F8\u4F3C\u6BB5\u843D \u2014 \u641C\u7D22\u4E0D\u592A\u53EF\u80FD\u6709\u7ED3\u679C\u3002",
|
|
466
|
+
excludedReceipt: "{{types}} \u5DF2\u4ECE\u672C\u6B21\u53EC\u56DE\u4E2D\u6392\u9664",
|
|
467
|
+
machineRead: "OCR",
|
|
468
|
+
userHintEffect: "\u5F15\u5BFC\u641C\u7D22\u4E0E\u751F\u6210",
|
|
469
|
+
saveLocation: "\u4FDD\u5B58\u4F4D\u7F6E",
|
|
470
|
+
entityTypes: "\u5B9E\u4F53\u7C7B\u578B",
|
|
471
|
+
contentLabel: "\u5185\u5BB9",
|
|
472
|
+
createAndLink: "\u521B\u5EFA\u5E76\u94FE\u63A5",
|
|
473
|
+
creatingAndLinking: "\u6B63\u5728\u521B\u5EFA\u5E76\u94FE\u63A5\u2026",
|
|
474
|
+
discardDraftPrompt: "\u653E\u5F03\u6B64\u8349\u7A3F\uFF1F",
|
|
475
|
+
discardDraft: "\u653E\u5F03",
|
|
476
|
+
keepEditing: "\u7EE7\u7EED\u7F16\u8F91",
|
|
477
|
+
resolveTitle: "\u89E3\u6790\u5F15\u7528"
|
|
458
478
|
};
|
|
459
479
|
var OutcomeToasts = {
|
|
460
480
|
createFailed: "\u65E0\u6CD5\u521B\u5EFA\u6279\u6CE8\uFF1A{{detail}}",
|
|
@@ -522,4 +542,4 @@ export {
|
|
|
522
542
|
UnifiedAnnotationsPanel,
|
|
523
543
|
zh_default as default
|
|
524
544
|
};
|
|
525
|
-
//# sourceMappingURL=zh-
|
|
545
|
+
//# sourceMappingURL=zh-AGKPGI3L.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semiont/react-ui",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.29",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=24.0.0"
|
|
6
6
|
},
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"files": [
|
|
38
38
|
"dist",
|
|
39
|
+
"!dist/**/*.map",
|
|
39
40
|
"src/styles",
|
|
40
41
|
"src/components",
|
|
41
42
|
"src/features",
|
|
@@ -91,24 +92,24 @@
|
|
|
91
92
|
},
|
|
92
93
|
"devDependencies": {
|
|
93
94
|
"@headlessui/react": "^2.2.10",
|
|
94
|
-
"@testing-library/jest-dom": "^7.0.
|
|
95
|
-
"@testing-library/react": "^16.
|
|
95
|
+
"@testing-library/jest-dom": "^7.0.1",
|
|
96
|
+
"@testing-library/react": "^16.3.3",
|
|
96
97
|
"@types/react": "^19.2.18",
|
|
97
|
-
"@types/react-dom": "^19.2.
|
|
98
|
-
"@vitest/coverage-v8": "^4.1.
|
|
98
|
+
"@types/react-dom": "^19.2.5",
|
|
99
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
99
100
|
"autoprefixer": "^10.5.4",
|
|
100
101
|
"axe-core": "^4.12.1",
|
|
101
|
-
"cssnano": "^8.0.
|
|
102
|
+
"cssnano": "^8.0.8",
|
|
102
103
|
"fast-check": "^4.9.0",
|
|
103
104
|
"jest-axe": "^11.0.0",
|
|
104
105
|
"jsdom": "^29.1.1",
|
|
105
|
-
"postcss-import": "^16.
|
|
106
|
-
"rollup": "^4.
|
|
106
|
+
"postcss-import": "^16.2.0",
|
|
107
|
+
"rollup": "^4.63.0",
|
|
107
108
|
"rollup-plugin-dts": "^6.4.1",
|
|
108
|
-
"styled-components": "^6.
|
|
109
|
+
"styled-components": "^6.5.2",
|
|
109
110
|
"tsup": "^8.0.1",
|
|
110
111
|
"typescript": "^6.0.2",
|
|
111
|
-
"vitest": "^4.1.
|
|
112
|
+
"vitest": "^4.1.11"
|
|
112
113
|
},
|
|
113
114
|
"publishConfig": {
|
|
114
115
|
"access": "public"
|
|
@@ -117,16 +118,16 @@
|
|
|
117
118
|
"license": "Apache-2.0",
|
|
118
119
|
"repository": {
|
|
119
120
|
"type": "git",
|
|
120
|
-
"url": "https://github.com/The-AI-Alliance/semiont.git",
|
|
121
|
+
"url": "git+https://github.com/The-AI-Alliance/semiont.git",
|
|
121
122
|
"directory": "packages/react-ui"
|
|
122
123
|
},
|
|
123
124
|
"dependencies": {
|
|
124
|
-
"@semiont/core": "0.5.
|
|
125
|
-
"@semiont/http-transport": "0.5.
|
|
126
|
-
"@semiont/sdk": "0.5.
|
|
125
|
+
"@semiont/core": "0.5.29",
|
|
126
|
+
"@semiont/http-transport": "0.5.29",
|
|
127
|
+
"@semiont/sdk": "0.5.29",
|
|
127
128
|
"clsx": "^2.1.1",
|
|
128
129
|
"pdfjs-dist": "^6.2.108",
|
|
129
|
-
"react-error-boundary": "^6.1.
|
|
130
|
+
"react-error-boundary": "^6.1.3",
|
|
130
131
|
"react-markdown": "^10.1.0",
|
|
131
132
|
"remark-gfm": "^4.0.1",
|
|
132
133
|
"use-sync-external-store": "^1.6.0"
|
|
@@ -57,6 +57,22 @@ export type AssistDataType =
|
|
|
57
57
|
export interface AssistProgressProps {
|
|
58
58
|
progress: JobProgress;
|
|
59
59
|
dataType: AssistDataType;
|
|
60
|
+
/**
|
|
61
|
+
* What the finished run produced, offered as a link in the ended frame
|
|
62
|
+
* (GENERATE-FROM-RESOURCE D8). The label is the artifact's own name — user
|
|
63
|
+
* content, never translated. Rendered only once `ended`: mid-run there is no
|
|
64
|
+
* outcome to offer, whatever the caller has wired.
|
|
65
|
+
*/
|
|
66
|
+
outcome?: { label: string; onOpen: () => void } | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* The owner's terminal sentence, rendered in place of the payload message
|
|
69
|
+
* once `ended` (GENERATION-ARRIVAL P1). The producer's final frame is a
|
|
70
|
+
* fire-and-forget emit that can lose the race with `job:complete`, so an
|
|
71
|
+
* ended frame must not trust the last payload to describe the ending —
|
|
72
|
+
* the owner, which signalled `ended`, supplies the words too. Inert while
|
|
73
|
+
* the run is live.
|
|
74
|
+
*/
|
|
75
|
+
endedMessage?: string;
|
|
60
76
|
/**
|
|
61
77
|
* The run has ENDED. The owner's fact, not the payload's
|
|
62
78
|
* (ASSIST-PROGRESS-CONSOLIDATION D7): terminality is signalled on
|
|
@@ -96,6 +112,8 @@ export function AssistProgress({
|
|
|
96
112
|
progress,
|
|
97
113
|
dataType,
|
|
98
114
|
ended,
|
|
115
|
+
outcome,
|
|
116
|
+
endedMessage,
|
|
99
117
|
onCancel,
|
|
100
118
|
onDismiss,
|
|
101
119
|
translations: tr,
|
|
@@ -155,7 +173,9 @@ export function AssistProgress({
|
|
|
155
173
|
{ended ? '✅' : '✨'}
|
|
156
174
|
</span>
|
|
157
175
|
<span data-testid="semiont-assist-status">
|
|
158
|
-
{
|
|
176
|
+
{ended && endedMessage
|
|
177
|
+
? endedMessage
|
|
178
|
+
: progress.message ? tr.message(progress.message) : tr.inProgress}
|
|
159
179
|
</span>
|
|
160
180
|
</div>
|
|
161
181
|
|
|
@@ -166,11 +186,25 @@ export function AssistProgress({
|
|
|
166
186
|
</div>
|
|
167
187
|
)}
|
|
168
188
|
|
|
189
|
+
{/* D8: the finished run's artifact, by name. */}
|
|
190
|
+
{ended && outcome && (
|
|
191
|
+
<button
|
|
192
|
+
type="button"
|
|
193
|
+
onClick={outcome.onOpen}
|
|
194
|
+
className="semiont-assist-progress__outcome"
|
|
195
|
+
data-testid="semiont-assist-outcome"
|
|
196
|
+
>
|
|
197
|
+
{outcome.label}
|
|
198
|
+
</button>
|
|
199
|
+
)}
|
|
200
|
+
|
|
201
|
+
{/* An ended run is 100% done by definition — the last payload's number
|
|
202
|
+
is a mid-run fact and must not survive the ending (A1). */}
|
|
169
203
|
<div className="semiont-progress-bar" data-testid="semiont-assist-bar">
|
|
170
204
|
<div
|
|
171
205
|
className="semiont-progress-bar__fill"
|
|
172
206
|
data-type={dataType}
|
|
173
|
-
style={{ width: `${progress.percentage}%` }}
|
|
207
|
+
style={{ width: `${ended ? 100 : progress.percentage}%` }}
|
|
174
208
|
/>
|
|
175
209
|
</div>
|
|
176
210
|
|
|
@@ -37,7 +37,7 @@ interface Props {
|
|
|
37
37
|
onTextSelect?: (exact: string, position: { start: number; end: number }) => void;
|
|
38
38
|
onChange?: (content: string) => void;
|
|
39
39
|
editable?: boolean;
|
|
40
|
-
|
|
40
|
+
sparkleAnnotationIds?: Set<string>;
|
|
41
41
|
hoveredAnnotationId?: string | null;
|
|
42
42
|
scrollToAnnotationId?: string | null;
|
|
43
43
|
sourceView?: boolean; // If true, show raw source (no markdown rendering)
|
|
@@ -52,7 +52,7 @@ interface Props {
|
|
|
52
52
|
// Effect to update annotation decorations with segments and new IDs
|
|
53
53
|
interface AnnotationUpdate {
|
|
54
54
|
segments: TextSegment[];
|
|
55
|
-
|
|
55
|
+
sparkleAnnotationIds?: Set<string>;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
const updateAnnotationsEffect = StateEffect.define<AnnotationUpdate>();
|
|
@@ -70,10 +70,10 @@ const updateWidgetsEffect = StateEffect.define<WidgetUpdate>();
|
|
|
70
70
|
// Build CodeMirror decorations from pure metadata
|
|
71
71
|
function buildAnnotationDecorations(
|
|
72
72
|
segments: TextSegment[],
|
|
73
|
-
|
|
73
|
+
sparkleAnnotationIds?: Set<string>
|
|
74
74
|
): DecorationSet {
|
|
75
75
|
const builder = new RangeSetBuilder<Decoration>();
|
|
76
|
-
const entries = computeAnnotationDecorations(segments,
|
|
76
|
+
const entries = computeAnnotationDecorations(segments, sparkleAnnotationIds);
|
|
77
77
|
|
|
78
78
|
for (const { start, end, meta } of entries) {
|
|
79
79
|
const decoration = Decoration.mark({
|
|
@@ -103,7 +103,7 @@ function createAnnotationDecorationsField() {
|
|
|
103
103
|
|
|
104
104
|
for (const effect of tr.effects) {
|
|
105
105
|
if (effect.is(updateAnnotationsEffect)) {
|
|
106
|
-
decorations = buildAnnotationDecorations(effect.value.segments, effect.value.
|
|
106
|
+
decorations = buildAnnotationDecorations(effect.value.segments, effect.value.sparkleAnnotationIds);
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
|
|
@@ -175,7 +175,7 @@ export function CodeMirrorRenderer({
|
|
|
175
175
|
segments = [],
|
|
176
176
|
onChange,
|
|
177
177
|
editable = false,
|
|
178
|
-
|
|
178
|
+
sparkleAnnotationIds,
|
|
179
179
|
hoveredAnnotationId,
|
|
180
180
|
scrollToAnnotationId,
|
|
181
181
|
sourceView = false,
|
|
@@ -410,9 +410,9 @@ export function CodeMirrorRenderer({
|
|
|
410
410
|
if (!viewRef.current) return;
|
|
411
411
|
|
|
412
412
|
viewRef.current.dispatch({
|
|
413
|
-
effects: updateAnnotationsEffect.of({ segments: convertedSegments, ...(
|
|
413
|
+
effects: updateAnnotationsEffect.of({ segments: convertedSegments, ...(sparkleAnnotationIds && { sparkleAnnotationIds }) })
|
|
414
414
|
});
|
|
415
|
-
}, [convertedSegments,
|
|
415
|
+
}, [convertedSegments, sparkleAnnotationIds]);
|
|
416
416
|
|
|
417
417
|
// Update widgets when content, segments, or generatingReferenceId changes
|
|
418
418
|
useEffect(() => {
|
|
@@ -8,7 +8,7 @@ import './StatusDisplay.css';
|
|
|
8
8
|
interface StatusDisplayProps {
|
|
9
9
|
isFullyAuthenticated?: boolean;
|
|
10
10
|
isAuthenticated?: boolean;
|
|
11
|
-
|
|
11
|
+
hasValidGatewayToken?: boolean;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
interface StatusData {
|
|
@@ -19,7 +19,7 @@ interface StatusData {
|
|
|
19
19
|
export function StatusDisplay({
|
|
20
20
|
isFullyAuthenticated = false,
|
|
21
21
|
isAuthenticated = false,
|
|
22
|
-
|
|
22
|
+
hasValidGatewayToken = false
|
|
23
23
|
}: StatusDisplayProps) {
|
|
24
24
|
const semiont = useObservable(useSemiont().activeSession$)?.client;
|
|
25
25
|
const [data, setData] = useState<StatusData | null>(null);
|
|
@@ -48,35 +48,35 @@ export function StatusDisplay({
|
|
|
48
48
|
}, [semiont]);
|
|
49
49
|
|
|
50
50
|
const getStatusContent = () => {
|
|
51
|
-
if (isAuthenticated && !
|
|
52
|
-
return '🚀 Frontend Status: Ready •
|
|
51
|
+
if (isAuthenticated && !hasValidGatewayToken) {
|
|
52
|
+
return '🚀 Frontend Status: Ready • Gateway: Please sign out and sign in again to reconnect';
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
if (!isFullyAuthenticated) {
|
|
56
|
-
return '🚀 Frontend Status: Ready •
|
|
56
|
+
return '🚀 Frontend Status: Ready • Gateway: Authentication required';
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
if (data) {
|
|
60
|
-
return `🚀 Frontend Status: Ready •
|
|
60
|
+
return `🚀 Frontend Status: Ready • Gateway: ${data.status} (v${data.version})`;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
if (loading) {
|
|
64
|
-
return '🚀 Frontend Status: Ready •
|
|
64
|
+
return '🚀 Frontend Status: Ready • Gateway: Connecting...';
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
if (error) {
|
|
68
68
|
const errorMessage = error.message;
|
|
69
69
|
if (errorMessage.includes('401') || errorMessage.includes('Unauthorized')) {
|
|
70
|
-
return '🚀 Frontend Status: Ready •
|
|
70
|
+
return '🚀 Frontend Status: Ready • Gateway: Please sign out and sign in again';
|
|
71
71
|
}
|
|
72
|
-
return '🚀 Frontend Status: Ready •
|
|
72
|
+
return '🚀 Frontend Status: Ready • Gateway: Connection failed';
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
return '🚀 Frontend Status: Ready •
|
|
75
|
+
return '🚀 Frontend Status: Ready • Gateway: Unknown';
|
|
76
76
|
};
|
|
77
77
|
|
|
78
78
|
const getStatusType = (): 'warning' | 'info' | 'success' | 'loading' | 'error' => {
|
|
79
|
-
if (isAuthenticated && !
|
|
79
|
+
if (isAuthenticated && !hasValidGatewayToken) {
|
|
80
80
|
return 'warning';
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -109,12 +109,12 @@ export function StatusDisplay({
|
|
|
109
109
|
</p>
|
|
110
110
|
{!isFullyAuthenticated ? (
|
|
111
111
|
<p className="semiont-status-hint">
|
|
112
|
-
Sign in to view
|
|
112
|
+
Sign in to view gateway status
|
|
113
113
|
</p>
|
|
114
114
|
) : error ? (
|
|
115
115
|
<p className="semiont-status-hint semiont-status-error-hint" role="alert">
|
|
116
116
|
<span className="sr-only">Error: </span>
|
|
117
|
-
Check that the
|
|
117
|
+
Check that the gateway server is running and accessible
|
|
118
118
|
</p>
|
|
119
119
|
) : null}
|
|
120
120
|
</section>
|
|
@@ -267,6 +267,26 @@ describe('AssistProgress — P3 consolidation', () => {
|
|
|
267
267
|
expect(screen.getByTestId(STATUS).textContent).toContain('tr.code(detecting-entities)');
|
|
268
268
|
});
|
|
269
269
|
|
|
270
|
+
it('the outcome link renders only in the ended frame (GENERATE-FROM-RESOURCE P2, D8)', async () => {
|
|
271
|
+
// The label is the resource's name — user content, deliberately NOT a
|
|
272
|
+
// translation. While the run is live there is no outcome to offer, even if
|
|
273
|
+
// a caller wires the prop early.
|
|
274
|
+
const onOpen = vi.fn();
|
|
275
|
+
const outcome = { label: 'Summary of PB', onOpen };
|
|
276
|
+
const { rerender } = render(
|
|
277
|
+
<AssistProgress ended={false} progress={detecting()} dataType="generation"
|
|
278
|
+
outcome={outcome} translations={T3()} />,
|
|
279
|
+
);
|
|
280
|
+
expect(screen.queryByText('Summary of PB')).toBeNull();
|
|
281
|
+
|
|
282
|
+
rerender(
|
|
283
|
+
<AssistProgress ended progress={detecting()} dataType="generation"
|
|
284
|
+
outcome={outcome} translations={T3()} />,
|
|
285
|
+
);
|
|
286
|
+
await userEvent.click(screen.getByRole('button', { name: 'Summary of PB' }));
|
|
287
|
+
expect(onOpen).toHaveBeenCalledTimes(1);
|
|
288
|
+
});
|
|
289
|
+
|
|
270
290
|
it('H1: the params line appears only when it adds information', () => {
|
|
271
291
|
// The discriminator is the COUNT, not the copy — splitting a localized
|
|
272
292
|
// string on commas to decide whether to show it would be its own defect.
|
|
@@ -288,3 +308,42 @@ describe('AssistProgress — P3 consolidation', () => {
|
|
|
288
308
|
expect(screen.getByTestId(PARAMS)).toBeInTheDocument();
|
|
289
309
|
});
|
|
290
310
|
});
|
|
311
|
+
|
|
312
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
313
|
+
// GENERATION-ARRIVAL P1 — the honest ended frame. The producer's terminal
|
|
314
|
+
// 100% frame races job:complete and can lose (its emit is a fire-and-forget
|
|
315
|
+
// heartbeat); terminality is the OWNER's fact (D7), so the ended rendering
|
|
316
|
+
// stops trusting the last payload: full bar, and the owner's terminal
|
|
317
|
+
// sentence when it supplies one.
|
|
318
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
319
|
+
describe('AssistProgress — the honest ended frame (GENERATION-ARRIVAL P1)', () => {
|
|
320
|
+
it('A1: an ended frame renders a FULL bar whatever the last payload said', () => {
|
|
321
|
+
const { container } = render(
|
|
322
|
+
<AssistProgress ended progress={detecting({ percentage: 95 })} dataType="generation" translations={T3()} />,
|
|
323
|
+
);
|
|
324
|
+
const fill = container.querySelector('.semiont-progress-bar__fill') as HTMLElement;
|
|
325
|
+
expect(fill.style.width).toBe('100%');
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
it('a live frame keeps the payload percentage', () => {
|
|
329
|
+
const { container } = render(
|
|
330
|
+
<AssistProgress ended={false} progress={detecting({ percentage: 95 })} dataType="generation" translations={T3()} />,
|
|
331
|
+
);
|
|
332
|
+
const fill = container.querySelector('.semiont-progress-bar__fill') as HTMLElement;
|
|
333
|
+
expect(fill.style.width).toBe('95%');
|
|
334
|
+
});
|
|
335
|
+
|
|
336
|
+
it('endedMessage replaces the stale payload copy once ended', () => {
|
|
337
|
+
render(
|
|
338
|
+
<AssistProgress ended endedMessage="tr.ended" progress={detecting({ percentage: 95 })} dataType="generation" translations={T3()} />,
|
|
339
|
+
);
|
|
340
|
+
expect(screen.getByTestId(STATUS).textContent).toBe('tr.ended');
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
it('endedMessage is inert while the run is live', () => {
|
|
344
|
+
render(
|
|
345
|
+
<AssistProgress ended={false} endedMessage="tr.ended" progress={detecting()} dataType="generation" translations={T3()} />,
|
|
346
|
+
);
|
|
347
|
+
expect(screen.getByTestId(STATUS).textContent).toBe('tr.code(detecting-entities)');
|
|
348
|
+
});
|
|
349
|
+
});
|