@musnows/scriverse 0.9.7 → 0.9.8
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/dist/app.js +1 -1
- package/dist/app.js.map +1 -1
- package/dist/public/app.js +16 -10
- package/dist/public/index.html +1 -1
- package/dist/public/markdown.js +4 -0
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/public/app.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { buildRelationshipGraph, createGalaxyRenderer, normalizeGalaxyFrameRate, normalizeGalaxyMotionMode, renderRelationshipMindMap } from "/relationship-graph.js?v=20260817-relationship-canvas-scale-v1&feature=galaxy-motion-mode-v3&feature=galaxy-edge-label-threshold-v1";
|
|
2
2
|
import { formatDateTime, normalizeParagraphSpacing } from "/text-formatting.js?v=20260713-saved-at-seconds";
|
|
3
|
-
import { renderMarkdown } from "/markdown.js?v=
|
|
3
|
+
import { renderMarkdown } from "/markdown.js?v=20260830-adjacent-blockquotes-v1";
|
|
4
4
|
import { findAiMention, listAiMentionOptions, mergeAiReferenceScope, userMessageMentionNames } from "/ai-mentions.js?v=20260811-user-message-mentions-v1";
|
|
5
5
|
import { applyAiSkillCommand, findAiSkillCommand, listAiSkillOptions } from "/ai-skill-menu.js?v=20260830-ai-skill-slash-menu-v1";
|
|
6
6
|
import {
|
|
@@ -4889,7 +4889,7 @@ async function addAiImageFiles(files) {
|
|
|
4889
4889
|
persistActiveAiChatTab();
|
|
4890
4890
|
}
|
|
4891
4891
|
|
|
4892
|
-
function clearAiPromptComposer() {
|
|
4892
|
+
function clearAiPromptComposer({ collapseScenePanel = false } = {}) {
|
|
4893
4893
|
state.aiCitations = [];
|
|
4894
4894
|
state.aiReferences = [];
|
|
4895
4895
|
state.aiImageAttachments = [];
|
|
@@ -4901,6 +4901,7 @@ function clearAiPromptComposer() {
|
|
|
4901
4901
|
renderAiSemanticInjection();
|
|
4902
4902
|
hideAiMentionMenu();
|
|
4903
4903
|
syncAiSceneComposer();
|
|
4904
|
+
if (collapseScenePanel) setAiScenePanelExpanded(false);
|
|
4904
4905
|
}
|
|
4905
4906
|
|
|
4906
4907
|
function captureAiPromptComposer() {
|
|
@@ -4965,6 +4966,15 @@ function roleplaySceneComposerVisible() {
|
|
|
4965
4966
|
return $("#ai-task").value === "roleplay" && Boolean(state.aiRoleplayCharacter);
|
|
4966
4967
|
}
|
|
4967
4968
|
|
|
4969
|
+
function setAiScenePanelExpanded(expanded) {
|
|
4970
|
+
const button = $("#ai-scene-button");
|
|
4971
|
+
const panel = $("#ai-scene-panel");
|
|
4972
|
+
if (!button || !panel) return;
|
|
4973
|
+
const nextExpanded = Boolean(expanded && !button.classList.contains("hidden"));
|
|
4974
|
+
panel.classList.toggle("hidden", !nextExpanded);
|
|
4975
|
+
button.setAttribute("aria-expanded", String(nextExpanded));
|
|
4976
|
+
}
|
|
4977
|
+
|
|
4968
4978
|
function syncAiSceneComposer() {
|
|
4969
4979
|
const button = $("#ai-scene-button");
|
|
4970
4980
|
const panel = $("#ai-scene-panel");
|
|
@@ -4975,10 +4985,7 @@ function syncAiSceneComposer() {
|
|
|
4975
4985
|
button.classList.toggle("hidden", !visible);
|
|
4976
4986
|
button.disabled = !visible || busy || readOnly;
|
|
4977
4987
|
button.setAttribute("aria-hidden", String(!visible));
|
|
4978
|
-
if (!visible)
|
|
4979
|
-
panel.classList.add("hidden");
|
|
4980
|
-
button.setAttribute("aria-expanded", "false");
|
|
4981
|
-
}
|
|
4988
|
+
if (!visible) setAiScenePanelExpanded(false);
|
|
4982
4989
|
const hasContent = Boolean(aiSceneDirectionText().trim()) || roleplayScenePinHasContent(captureAiScenePin());
|
|
4983
4990
|
button.classList.toggle("is-active", hasContent);
|
|
4984
4991
|
}
|
|
@@ -4988,8 +4995,7 @@ function toggleAiScenePanel() {
|
|
|
4988
4995
|
const panel = $("#ai-scene-panel");
|
|
4989
4996
|
if (!button || !panel || button.classList.contains("hidden")) return;
|
|
4990
4997
|
const willOpen = panel.classList.contains("hidden");
|
|
4991
|
-
|
|
4992
|
-
button.setAttribute("aria-expanded", String(willOpen));
|
|
4998
|
+
setAiScenePanelExpanded(willOpen);
|
|
4993
4999
|
if (willOpen) $("#ai-scene-direction")?.focus();
|
|
4994
5000
|
}
|
|
4995
5001
|
|
|
@@ -18242,7 +18248,7 @@ async function streamChat(requestHolder, body, idempotencyKey) {
|
|
|
18242
18248
|
syncAiTaskOptions();
|
|
18243
18249
|
renderAiRoleplayCharacterSelect();
|
|
18244
18250
|
renderAiQuickActions();
|
|
18245
|
-
clearAiPromptComposer();
|
|
18251
|
+
clearAiPromptComposer({ collapseScenePanel: Boolean(String(body.sceneDirection ?? "").trim()) });
|
|
18246
18252
|
}
|
|
18247
18253
|
mountAssistantMessage();
|
|
18248
18254
|
}
|
|
@@ -18470,7 +18476,7 @@ function appendMessage(role, text, citations = [], createdAt = null, metadata =
|
|
|
18470
18476
|
sceneBody.className = "user-message-scene-body";
|
|
18471
18477
|
sceneBody.textContent = parsedUserTurn.sceneDirection;
|
|
18472
18478
|
scene.append(sceneLabel, sceneBody);
|
|
18473
|
-
message.querySelector(".message-body")?.
|
|
18479
|
+
message.querySelector(".message-body")?.prepend(scene);
|
|
18474
18480
|
}
|
|
18475
18481
|
const mentionGroups = role === "user"
|
|
18476
18482
|
? [
|
package/dist/public/index.html
CHANGED
|
@@ -1322,6 +1322,6 @@
|
|
|
1322
1322
|
</dialog>
|
|
1323
1323
|
|
|
1324
1324
|
<div id="auth-loading" class="auth-loading" role="status" aria-label="正在载入工作台"></div>
|
|
1325
|
-
<script type="module" src="/app.js?v=20260816-extended-thinking-effort-v1&feature=ai-tool-call-copy-feedback-v2&feature=ai-send-control-v2&feature=analysis-task-queue-refresh-v1&feature=character-gender-v1&feature=character-filter-state-v1&feature=relationship-canvas-scale-v1&feature=relationship-table-scroll-v1&feature=ai-session-id-copy-v2&feature=galaxy-motion-mode-v3&feature=galaxy-edge-label-threshold-v1&feature=calculate-time-tool-v2&feature=analysis-task-expired-toast-v1&feature=global-replace-volume-v1&feature=chapter-search-replace-v1&feature=chapter-save-toast-v1&feature=character-relationship-delete-v1&feature=character-relationship-group-v1&feature=analysis-task-stability-delay-v1&feature=ai-assistant-workspace-v2&feature=volume-detail-icon-v1&feature=volume-story-order-v1&feature=reader-manual-chapter-navigation-v1&feature=ai-message-reference-badges-v1&feature=ai-roleplay-message-reference-v1&feature=ai-message-actions-v1&feature=assistant-responsive-navigation-v3&feature=annotation-permissions-v1&feature=annotation-line-counts-v1&feature=ai-relationship-roleplay-v1&feature=ai-roleplay-user-character-visibility-v1&feature=ai-roleplay-story-recall-v1&feature=ai-model-picker-v1&feature=ai-fork-model-unlock-v1&feature=context-percent-format-v1&feature=annotation-precise-locate-v1&feature=markdown-word-count-stable-v1&feature=ai-stream-character-count-stable-v2&feature=ai-process-empty-intermediate-v1&feature=ai-feed-scroll-follow-v1&feature=ai-message-retry-v1&feature=ai-stream-idle-timeout-v2&feature=ai-config-delete-v1&feature=ai-provider-protocol-options-v1&feature=ai-provider-thinking-type-v1&feature=ai-chat-image-attachments-v8&feature=ai-message-image-preview-v1&feature=ai-thinking-scroll-v2&feature=ai-image-conversation-model-lock-v1&feature=toast-click-dismiss-v2&feature=system-restart-dialog-delay-v1&feature=character-avatar-v6&feature=character-death-position-v1&feature=admin-ai-conversations-v1&feature=ai-usage-pricing-v1&feature=ai-usage-pricing-badge-v2&feature=ai-usage-pricing-label-v1&feature=ai-usage-token-breakdown-v1&feature=ai-usage-pricing-cache-v2&feature=ai-usage-pricing-manual-refresh-v1&feature=ai-monthly-token-quota-v1&feature=ai-provider-token-quota-v1&feature=ai-token-quota-positive-v6&feature=ai-model-thinking-label-v1&feature=ai-model-picker-focus-v1&feature=ai-provider-model-import-v1&feature=ai-assistant-brain-icon-v1&feature=ai-token-usage-details-v1&feature=ai-token-usage-details-centered-v1&feature=ai-token-usage-raw-input-v1&feature=ai-stream-connection-seconds-v1&feature=phone-client-entry-v1&feature=ai-usage-pricing-cache-v1&feature=ai-model-thinking-label-v3&feature=ai-roleplay-speaker-label-v1&feature=toast-modal-host-v1&feature=api-key-copy-existing-v1&feature=character-favorite-v1&feature=record-favorites-v1&feature=ai-token-usage-estimated-price-v1&feature=entity-detail-favorites-v1&feature=entity-pin-v1&feature=entity-pin-icon-v1&feature=roleplay-favorite-label-v1&feature=ai-roleplay-knowledge-tools-v1&feature=character-persona-summary-v1&feature=ai-roleplay-scene-turn-v2&feature=admin-account-identity-v2&feature=ai-provider-analysis-timeout-v1&feature=task-detail-failure-orange-v1&feature=book-import-progress-v1&feature=presence-multiple-users-v1&feature=ai-context-input-output-v1&feature=editor-blank-lines-preserved-v1&feature=reader-first-frame-v1&feature=vditor-lazy-load-v1&feature=ui-module-preload-v1&feature=reader-initial-prefetch-v1&feature=editor-preview-toggle-v2&feature=vditor-fullscreen-disabled-v1&feature=chapter-auto-indent-v1&feature=chapter-centered-scroll-v1&feature=work-editor-preferences-v1&feature=ai-context-output-usage-v1&feature=ai-roleplay-memory-v4&feature=ai-roleplay-memory-v5&feature=roleplay-memory-header-actions-v1&feature=roleplay-memory-header-toolbar-v1&feature=roleplay-memory-action-icons-v1&feature=roleplay-memory-action-colors-v1&feature=annotation-line-anchor-v1&feature=stable-line-ids-v1&feature=live-annotation-anchors-v1&feature=chapter-comment-filters-v1&feature=ai-write-tools-v3&feature=ai-question-option-supplement-v1&feature=ai-question-selection-highlight-v1&feature=ai-question-continuation-ui-v1&feature=ai-question-tool-result-v1&feature=ai-question-submit-guidance-v1&feature=ai-question-answer-limit-v1&feature=semantic-search-v6&feature=chapter-title-renumber-v1&feature=ai-writing-skills-v3&feature=ai-cancel-preserve-process-v2&feature=remote-mcp-v1&feature=character-alias-chips-v2&feature=character-title-input-v1&feature=character-detail-value-wrap-v2&feature=chapter-batch-editor-refresh-v1&feature=ai-usage-stat-display-v1&feature=ai-usage-year-v1&feature=semantic-search-rag-label-v1&feature=ai-skill-slash-menu-v1"></script>
|
|
1325
|
+
<script type="module" src="/app.js?v=20260816-extended-thinking-effort-v1&feature=ai-tool-call-copy-feedback-v2&feature=ai-send-control-v2&feature=analysis-task-queue-refresh-v1&feature=character-gender-v1&feature=character-filter-state-v1&feature=relationship-canvas-scale-v1&feature=relationship-table-scroll-v1&feature=ai-session-id-copy-v2&feature=galaxy-motion-mode-v3&feature=galaxy-edge-label-threshold-v1&feature=calculate-time-tool-v2&feature=analysis-task-expired-toast-v1&feature=global-replace-volume-v1&feature=chapter-search-replace-v1&feature=chapter-save-toast-v1&feature=character-relationship-delete-v1&feature=character-relationship-group-v1&feature=analysis-task-stability-delay-v1&feature=ai-assistant-workspace-v2&feature=volume-detail-icon-v1&feature=volume-story-order-v1&feature=reader-manual-chapter-navigation-v1&feature=ai-message-reference-badges-v1&feature=ai-roleplay-message-reference-v1&feature=ai-message-actions-v1&feature=assistant-responsive-navigation-v3&feature=annotation-permissions-v1&feature=annotation-line-counts-v1&feature=ai-relationship-roleplay-v1&feature=ai-roleplay-user-character-visibility-v1&feature=ai-roleplay-story-recall-v1&feature=ai-model-picker-v1&feature=ai-fork-model-unlock-v1&feature=context-percent-format-v1&feature=annotation-precise-locate-v1&feature=markdown-word-count-stable-v1&feature=ai-stream-character-count-stable-v2&feature=ai-process-empty-intermediate-v1&feature=ai-feed-scroll-follow-v1&feature=ai-message-retry-v1&feature=ai-stream-idle-timeout-v2&feature=ai-config-delete-v1&feature=ai-provider-protocol-options-v1&feature=ai-provider-thinking-type-v1&feature=ai-chat-image-attachments-v8&feature=ai-message-image-preview-v1&feature=ai-thinking-scroll-v2&feature=ai-image-conversation-model-lock-v1&feature=toast-click-dismiss-v2&feature=system-restart-dialog-delay-v1&feature=character-avatar-v6&feature=character-death-position-v1&feature=admin-ai-conversations-v1&feature=ai-usage-pricing-v1&feature=ai-usage-pricing-badge-v2&feature=ai-usage-pricing-label-v1&feature=ai-usage-token-breakdown-v1&feature=ai-usage-pricing-cache-v2&feature=ai-usage-pricing-manual-refresh-v1&feature=ai-monthly-token-quota-v1&feature=ai-provider-token-quota-v1&feature=ai-token-quota-positive-v6&feature=ai-model-thinking-label-v1&feature=ai-model-picker-focus-v1&feature=ai-provider-model-import-v1&feature=ai-assistant-brain-icon-v1&feature=ai-token-usage-details-v1&feature=ai-token-usage-details-centered-v1&feature=ai-token-usage-raw-input-v1&feature=ai-stream-connection-seconds-v1&feature=phone-client-entry-v1&feature=ai-usage-pricing-cache-v1&feature=ai-model-thinking-label-v3&feature=ai-roleplay-speaker-label-v1&feature=toast-modal-host-v1&feature=api-key-copy-existing-v1&feature=character-favorite-v1&feature=record-favorites-v1&feature=ai-token-usage-estimated-price-v1&feature=entity-detail-favorites-v1&feature=entity-pin-v1&feature=entity-pin-icon-v1&feature=roleplay-favorite-label-v1&feature=ai-roleplay-knowledge-tools-v1&feature=character-persona-summary-v1&feature=ai-roleplay-scene-turn-v2&feature=admin-account-identity-v2&feature=ai-provider-analysis-timeout-v1&feature=task-detail-failure-orange-v1&feature=book-import-progress-v1&feature=presence-multiple-users-v1&feature=ai-context-input-output-v1&feature=editor-blank-lines-preserved-v1&feature=reader-first-frame-v1&feature=vditor-lazy-load-v1&feature=ui-module-preload-v1&feature=reader-initial-prefetch-v1&feature=editor-preview-toggle-v2&feature=vditor-fullscreen-disabled-v1&feature=chapter-auto-indent-v1&feature=chapter-centered-scroll-v1&feature=work-editor-preferences-v1&feature=ai-context-output-usage-v1&feature=ai-roleplay-memory-v4&feature=ai-roleplay-memory-v5&feature=roleplay-memory-header-actions-v1&feature=roleplay-memory-header-toolbar-v1&feature=roleplay-memory-action-icons-v1&feature=roleplay-memory-action-colors-v1&feature=annotation-line-anchor-v1&feature=stable-line-ids-v1&feature=live-annotation-anchors-v1&feature=chapter-comment-filters-v1&feature=ai-write-tools-v3&feature=ai-question-option-supplement-v1&feature=ai-question-selection-highlight-v1&feature=ai-question-continuation-ui-v1&feature=ai-question-tool-result-v1&feature=ai-question-submit-guidance-v1&feature=ai-question-answer-limit-v1&feature=semantic-search-v6&feature=chapter-title-renumber-v1&feature=ai-writing-skills-v3&feature=ai-cancel-preserve-process-v2&feature=remote-mcp-v1&feature=character-alias-chips-v2&feature=character-title-input-v1&feature=character-detail-value-wrap-v2&feature=chapter-batch-editor-refresh-v1&feature=ai-usage-stat-display-v1&feature=ai-usage-year-v1&feature=semantic-search-rag-label-v1&feature=ai-skill-slash-menu-v1&feature=ai-roleplay-scene-bubble-v1&feature=ai-roleplay-scene-collapse-v1&feature=markdown-adjacent-blockquotes-v1"></script>
|
|
1326
1326
|
</body>
|
|
1327
1327
|
</html>
|
package/dist/public/markdown.js
CHANGED
|
@@ -201,6 +201,10 @@ export function renderMarkdown(value) {
|
|
|
201
201
|
quote.push(quoteLine[1]);
|
|
202
202
|
continue;
|
|
203
203
|
}
|
|
204
|
+
if (!line.trim() && quote && /^>\s?/u.test(lines[lineIndex + 1] ?? "")) {
|
|
205
|
+
quote.push("");
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
204
208
|
flushQuote();
|
|
205
209
|
if (!line.trim()) {
|
|
206
210
|
// CommonMark 松散列表:同类型列表项之间的空行不结束列表,
|
package/dist/version.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const APP_VERSION = "0.9.
|
|
1
|
+
export const APP_VERSION = "0.9.8";
|
|
2
2
|
export const SCRIVERSE_BETA_COMMIT_ENV = "SCRIVERSE_BETA_COMMIT";
|
|
3
3
|
export function resolveBetaVersionLabel(environment) {
|
|
4
4
|
const commit = environment[SCRIVERSE_BETA_COMMIT_ENV]?.trim().toLocaleLowerCase() ?? "";
|