noteconnection 1.7.0 → 1.9.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/LICENSE +674 -21
- package/README.md +260 -1626
- package/dist/src/agent_workspace.contract.parity.test.js +159 -0
- package/dist/src/agent_workspace.frontend.test.js +10388 -0
- package/dist/src/agent_workspace.locale.contract.test.js +95 -0
- package/dist/src/agent_workspace.runtime.behavior.test.js +5072 -0
- package/dist/src/android.knowledgebase.picker.contract.test.js +102 -0
- package/dist/src/appimage.patchelf.test.js +113 -0
- package/dist/src/appimage.portability.test.js +156 -0
- package/dist/src/backend/FileLoader.js +18 -4
- package/dist/src/backend/FileLoader.test.js +125 -0
- package/dist/src/backend/GraphBuilder.identity.test.js +86 -0
- package/dist/src/backend/GraphBuilder.js +66 -18
- package/dist/src/backend/GraphBuilder.matching.test.js +127 -0
- package/dist/src/backend/GraphMetrics.js +0 -3
- package/dist/src/backend/ResourceIdentity.js +155 -0
- package/dist/src/backend/ResourceIdentity.test.js +113 -0
- package/dist/src/backend/algorithms/CycleDetection.js +0 -1
- package/dist/src/backend/algorithms/HybridEngine.js +0 -3
- package/dist/src/backend/algorithms/LayoutEngine.js +0 -1
- package/dist/src/backend/algorithms/StatisticalAnalyzer.js +0 -4
- package/dist/src/backend/algorithms/TopologicalSort.js +0 -2
- package/dist/src/backend/build_dag.js +0 -1
- package/dist/src/capacitor.bridge.serialization.contract.test.js +3 -0
- package/dist/src/capacitor.runtime.contract.test.js +11 -2
- package/dist/src/copy.assets.contract.test.js +130 -0
- package/dist/src/core/Graph.js +138 -42
- package/dist/src/core/Graph.test.js +74 -0
- package/dist/src/core/NoteConnection.js +2 -2
- package/dist/src/core/PathBridge.js +293 -5
- package/dist/src/core/ResourceReference.js +17 -0
- package/dist/src/desktop.godot.pack.test.js +142 -0
- package/dist/src/desktop.runtime.graph.test.js +66 -0
- package/dist/src/export/WorkspaceExportBundle.js +1174 -0
- package/dist/src/export/WorkspaceExportBundle.test.js +1541 -0
- package/dist/src/export/index.js +18 -0
- package/dist/src/export/types.js +2 -0
- package/dist/src/fixrisk.issue.verifier.contract.test.js +3 -1
- package/dist/src/foundation.ann.runtime.contract.test.js +81 -0
- package/dist/src/foundation.release.evidence.contract.test.js +524 -0
- package/dist/src/foundation.sqlite.runtime.contract.test.js +88 -0
- package/dist/src/frontend/README.md +260 -1626
- package/dist/src/frontend/agent_workspace.js +6011 -0
- package/dist/src/frontend/agent_workspace_runtime.js +4434 -0
- package/dist/src/frontend/analysis.js +31 -4
- package/dist/src/frontend/app.js +2178 -62
- package/dist/src/frontend/focus_mode_interactions.js +33 -0
- package/dist/src/frontend/godot_future_path_renderer.js +540 -0
- package/dist/src/frontend/godot_tree_interactions.js +178 -0
- package/dist/src/frontend/graph_state.mjs +105 -0
- package/dist/src/frontend/hosted_future_path_runtime.js +157 -0
- package/dist/src/frontend/i18n.mjs +186 -0
- package/dist/src/frontend/index.html +672 -268
- package/dist/src/frontend/knowledge_projection_contract.js +230 -0
- package/dist/src/frontend/knowledge_projection_store.js +214 -0
- package/dist/src/frontend/layout_gpu.js +12 -4
- package/dist/src/frontend/libs/path_core.js +158 -42
- package/dist/src/frontend/locales/en.json +753 -5
- package/dist/src/frontend/locales/zh.json +753 -5
- package/dist/src/frontend/main.mjs +60 -0
- package/dist/src/frontend/markdown_runtime.js +827 -0
- package/dist/src/frontend/mobile_budget_runtime.js +33 -0
- package/dist/src/frontend/mobile_exact_analyzer.js +393 -0
- package/dist/src/frontend/mobile_identity_contract.js +221 -0
- package/dist/src/frontend/mobile_semantic_comparator.js +264 -0
- package/dist/src/frontend/notemd.css +49 -0
- package/dist/src/frontend/notemd.html +7 -1
- package/dist/src/frontend/notemd.js +64 -0
- package/dist/src/frontend/path.html +113 -2
- package/dist/src/frontend/path_app.js +2108 -130
- package/dist/src/frontend/path_layout.mjs +143 -0
- package/dist/src/frontend/path_mermaid_utils.mjs +108 -0
- package/dist/src/frontend/path_modules_bridge.js +486 -0
- package/dist/src/frontend/path_state.mjs +118 -0
- package/dist/src/frontend/path_styles.css +146 -0
- package/dist/src/frontend/path_worker_bridge.mjs +85 -0
- package/dist/src/frontend/reader.js +393 -33
- package/dist/src/frontend/runtime_bridge.js +67 -54
- package/dist/src/frontend/runtime_bridge.mjs +279 -0
- package/dist/src/frontend/settings.js +130 -12
- package/dist/src/frontend/simulationWorker.js +1 -1
- package/dist/src/frontend/source_manager.js +297 -22
- package/dist/src/frontend/storage_provider.js +661 -71
- package/dist/src/frontend/styles.css +2814 -72
- package/dist/src/frontend/workbench_state.mjs +101 -0
- package/dist/src/frontend/workspace_panes.js +10272 -0
- package/dist/src/frontend.locale.contract.test.js +62 -0
- package/dist/src/frontend.runtime.assets.contract.test.js +81 -0
- package/dist/src/godot.sidecar.bootstrap.contract.test.js +244 -0
- package/dist/src/graph.answer.operator.contract.test.js +72 -0
- package/dist/src/index.js +6 -2
- package/dist/src/index.knowledge-root.test.js +118 -0
- package/dist/src/indexing/IndexLifecycle.js +217 -0
- package/dist/src/indexing/IndexLifecycle.test.js +73 -0
- package/dist/src/indexing/SegmentBuilder.js +64 -0
- package/dist/src/indexing/UnitBuilder.js +48 -0
- package/dist/src/indexing/types.js +2 -0
- package/dist/src/knowledge.api.contract.test.js +172 -0
- package/dist/src/knowledge_projection.contract.test.js +134 -0
- package/dist/src/knowledge_projection_store.test.js +200 -0
- package/dist/src/learning/AnswerQualityEvaluation.js +153 -0
- package/dist/src/learning/AnswerQualityEvaluation.test.js +118 -0
- package/dist/src/learning/KnowledgeLearningPlatform.js +11181 -0
- package/dist/src/learning/KnowledgeLearningPlatform.persistence.test.js +745 -0
- package/dist/src/learning/KnowledgeLearningPlatform.program-f.test.js +99 -0
- package/dist/src/learning/KnowledgeLearningPlatform.test.js +3208 -0
- package/dist/src/learning/KnowledgeWorkspaceConversationRegression.js +2998 -0
- package/dist/src/learning/KnowledgeWorkspaceConversationRegression.test.js +3936 -0
- package/dist/src/learning/MeasurementEvidenceConflicts.test.js +78 -0
- package/dist/src/learning/PublicAnswerContract.test.js +85 -0
- package/dist/src/learning/PublicEvidenceSelection.test.js +94 -0
- package/dist/src/learning/PublicMeasurementDisclosure.test.js +54 -0
- package/dist/src/learning/agentConversationExecution.js +211 -0
- package/dist/src/learning/agentConversationExecution.test.js +209 -0
- package/dist/src/learning/agentConversationSerialization.js +266 -0
- package/dist/src/learning/agentConversationSerialization.test.js +165 -0
- package/dist/src/learning/agentResponseBudget.js +179 -0
- package/dist/src/learning/agentResponseBudget.test.js +97 -0
- package/dist/src/learning/agentWorkspaceCapabilityContracts.js +65 -0
- package/dist/src/learning/answerReleaseReview.js +5260 -0
- package/dist/src/learning/answerReleaseReview.test.js +4174 -0
- package/dist/src/learning/answerTaskPlan.js +473 -0
- package/dist/src/learning/api.js +2 -0
- package/dist/src/learning/conversationComposer.js +1721 -0
- package/dist/src/learning/conversationComposer.test.js +3220 -0
- package/dist/src/learning/domains/ConversationManager.js +53 -0
- package/dist/src/learning/domains/KnowledgeIngestor.js +238 -0
- package/dist/src/learning/domains/KnowledgeQuerier.js +187 -0
- package/dist/src/learning/domains/MasteryEngine.js +387 -0
- package/dist/src/learning/domains/MemoryPolicyManager.js +408 -0
- package/dist/src/learning/domains/QualityEvaluator.js +307 -0
- package/dist/src/learning/domains/TutorRouter.js +313 -0
- package/dist/src/learning/domains/index.js +33 -0
- package/dist/src/learning/domains/types.js +7 -0
- package/dist/src/learning/errors.js +29 -0
- package/dist/src/learning/evidenceContextAssembler.js +1368 -0
- package/dist/src/learning/evidenceContextAssembler.test.js +6332 -0
- package/dist/src/learning/graphAnswerCoverage.js +37 -0
- package/dist/src/learning/graphAnswerCoverage.test.js +93 -0
- package/dist/src/learning/graphAnswerCoverageCalibration.js +59 -0
- package/dist/src/learning/graphAnswerCoverageCalibration.test.js +46 -0
- package/dist/src/learning/graphAnswerFacts.js +94 -0
- package/dist/src/learning/graphAnswerFacts.test.js +39 -0
- package/dist/src/learning/graphAnswerPlan.js +908 -0
- package/dist/src/learning/graphAnswerPlan.test.js +907 -0
- package/dist/src/learning/graphAnswerQualityCalibration.js +255 -0
- package/dist/src/learning/graphAnswerQualityCalibration.test.js +72 -0
- package/dist/src/learning/graphAnswerQualityPolicy.js +30 -0
- package/dist/src/learning/graphClaimMatcher.js +104 -0
- package/dist/src/learning/graphConditionedContext.js +109 -0
- package/dist/src/learning/graphConditionedContext.test.js +99 -0
- package/dist/src/learning/graphContextAssembler.js +860 -0
- package/dist/src/learning/graphContextAssembler.test.js +1033 -0
- package/dist/src/learning/graphExpansionPolicy.js +22 -0
- package/dist/src/learning/graphExpansionPolicy.test.js +33 -0
- package/dist/src/learning/identityMetadata.test.js +26 -0
- package/dist/src/learning/index.js +29 -0
- package/dist/src/learning/mobileAnswerProjection.js +104 -0
- package/dist/src/learning/mobileAnswerProjection.test.js +102 -0
- package/dist/src/learning/queryBackend.js +1922 -0
- package/dist/src/learning/queryBackend.test.js +976 -0
- package/dist/src/learning/ragContextPack.js +356 -0
- package/dist/src/learning/ragContextPack.test.js +311 -0
- package/dist/src/learning/ragEvidenceQuality.js +96 -0
- package/dist/src/learning/ragEvidenceQuality.test.js +29 -0
- package/dist/src/learning/ragPublicText.js +101 -0
- package/dist/src/learning/ragPublicText.test.js +57 -0
- package/dist/src/learning/ragSufficiencyJudge.js +171 -0
- package/dist/src/learning/ragSufficiencyJudge.test.js +177 -0
- package/dist/src/learning/ragSufficiencyProviderJudge.js +217 -0
- package/dist/src/learning/ragSufficiencyProviderJudge.test.js +207 -0
- package/dist/src/learning/requestNormalization.js +304 -0
- package/dist/src/learning/requestNormalization.test.js +101 -0
- package/dist/src/learning/runtimeCapability.js +4677 -0
- package/dist/src/learning/runtimeCapability.test.js +3635 -0
- package/dist/src/learning/store.js +1344 -0
- package/dist/src/learning/store.test.js +1425 -0
- package/dist/src/learning/tutorAdapter.js +2 -0
- package/dist/src/learning/types.js +2 -0
- package/dist/src/learning/vectorAccelerationAdapter.js +958 -0
- package/dist/src/learning/vectorAccelerationAdapter.test.js +412 -0
- package/dist/src/learning/workspaceHydration.js +168 -0
- package/dist/src/learning/workspaceHydration.test.js +30 -0
- package/dist/src/lfs.asset.policy.contract.test.js +153 -0
- package/dist/src/license.policy.contract.test.js +71 -0
- package/dist/src/markdown/MarkdownGateway.js +4 -0
- package/dist/src/markdown/MarkdownGateway.test.js +59 -0
- package/dist/src/memory/MemoryGovernance.js +74 -0
- package/dist/src/memory/MemoryGovernance.test.js +46 -0
- package/dist/src/memory/types.js +2 -0
- package/dist/src/mermaid.frontend.guard.contract.test.js +77 -0
- package/dist/src/middleware/SseResponseWriter.js +122 -0
- package/dist/src/middleware/SseResponseWriter.test.js +54 -0
- package/dist/src/middleware/auth.js +38 -0
- package/dist/src/middleware/auth.test.js +33 -0
- package/dist/src/middleware/body-parser.js +45 -0
- package/dist/src/middleware/cors.js +44 -0
- package/dist/src/middleware/index.js +22 -0
- package/dist/src/middleware/request-trace.js +96 -0
- package/dist/src/mobile.android.evidence.contract.test.js +146 -0
- package/dist/src/mobile.android.signing.contract.test.js +66 -0
- package/dist/src/mobile.artifact.contract.test.js +144 -0
- package/dist/src/mobile.budget.contract.test.js +90 -0
- package/dist/src/mobile.canonical-id.readiness.test.js +54 -0
- package/dist/src/mobile.graph.parity.contract.test.js +207 -0
- package/dist/src/mobile.identity.contract.test.js +66 -0
- package/dist/src/mobile.identity.corpus.manifest.test.js +72 -0
- package/dist/src/mobile.identity.corpus.test.js +40 -0
- package/dist/src/mobile.native.recovery.contract.test.js +64 -0
- package/dist/src/mobile.pipeline.test.js +11 -1
- package/dist/src/mobile.profile.contract.test.js +225 -0
- package/dist/src/mobile.semantic.parity.test.js +92 -0
- package/dist/src/mobile_exact_analyzer.test.js +113 -0
- package/dist/src/notemd/AppConfigToml.js +6 -4
- package/dist/src/notemd/ContentGenerator.js +4 -9
- package/dist/src/notemd/FileProcessor.js +4 -9
- package/dist/src/notemd/MermaidProcessor.js +400 -50
- package/dist/src/notemd/NotemdService.js +506 -26
- package/dist/src/notemd/PromptManager.js +15 -0
- package/dist/src/notemd/Translator.js +4 -9
- package/dist/src/notemd/cli/commands.js +357 -0
- package/dist/src/notemd/cli/dispatcher.js +225 -0
- package/dist/src/notemd/cli/index.js +169 -0
- package/dist/src/notemd/cli/parser.js +68 -0
- package/dist/src/notemd/cli/types.js +2 -0
- package/dist/src/notemd/constants.js +43 -0
- package/dist/src/notemd/diagram/diagramGenerationService.js +78 -0
- package/dist/src/notemd/diagram/diagramSpec.js +79 -0
- package/dist/src/notemd/diagram/diagramSpecResponseParser.js +131 -0
- package/dist/src/notemd/diagram/intent.js +95 -0
- package/dist/src/notemd/diagram/planner.js +71 -0
- package/dist/src/notemd/diagram/prompts/diagramSpecPrompt.js +42 -0
- package/dist/src/notemd/diagram/types.js +18 -0
- package/dist/src/notemd/index.js +26 -0
- package/dist/src/notemd/operations/capabilityManifest.js +23 -0
- package/dist/src/notemd/operations/cliContracts.js +17 -0
- package/dist/src/notemd/operations/configProfileCommands.js +85 -0
- package/dist/src/notemd/operations/registry.contract.test.js +95 -0
- package/dist/src/notemd/operations/registry.js +991 -0
- package/dist/src/notemd/operations/types.js +2 -0
- package/dist/src/notemd/progressReporter.js +9 -0
- package/dist/src/notemd/providerDiagnostics.js +220 -0
- package/dist/src/notemd/providerProfiles.js +42 -0
- package/dist/src/notemd/providerTemplates.js +231 -0
- package/dist/src/notemd/search/DuckDuckGoProvider.js +39 -0
- package/dist/src/notemd/search/SearchManager.js +13 -0
- package/dist/src/notemd/search/SearchProvider.js +2 -0
- package/dist/src/notemd/search/TavilyProvider.js +44 -0
- package/dist/src/notemd.agent.manifest.test.js +85 -0
- package/dist/src/notemd.api.contract.test.js +14 -1
- package/dist/src/notemd.app_config_toml.test.js +2 -1
- package/dist/src/notemd.batch.workflow.test.js +117 -0
- package/dist/src/notemd.cli.e2e.test.js +136 -0
- package/dist/src/notemd.core.test.js +51 -0
- package/dist/src/notemd.diagram.pipeline.test.js +233 -0
- package/dist/src/notemd.providerTemplates.test.js +34 -0
- package/dist/src/notemd.server.integration.test.js +262 -39
- package/dist/src/notemd.workflow.pipeline.test.js +162 -0
- package/dist/src/pathbridge.handshake.contract.test.js +45 -2
- package/dist/src/pathbridge.host-adapter.contract.test.js +133 -0
- package/dist/src/pathcore.bundle.contract.test.js +8 -0
- package/dist/src/pathmode.background.contract.test.js +69 -0
- package/dist/src/pathmode.settings.api.contract.test.js +9 -0
- package/dist/src/pkg.sidecar.contract.test.js +9 -3
- package/dist/src/platform/ExportProfile.js +86 -0
- package/dist/src/platform/MobileBudget.js +11 -0
- package/dist/src/platform/PlatformCapabilities.js +59 -0
- package/dist/src/platform/PlatformCapabilities.test.js +36 -0
- package/dist/src/platform/RenderMaterializer.js +33 -0
- package/dist/src/platform/RenderMaterializer.test.js +32 -0
- package/dist/src/query_backend.external_http.integration.test.js +410 -0
- package/dist/src/reader_renderer.js +404 -3
- package/dist/src/reader_renderer.test.js +87 -0
- package/dist/src/release.godot.mirror.contract.test.js +97 -0
- package/dist/src/resources/ResourceRegistry.js +263 -0
- package/dist/src/resources/ResourceRegistry.test.js +97 -0
- package/dist/src/resources/types.js +2 -0
- package/dist/src/routes/agentWorkspaceDiagnostics.js +173 -0
- package/dist/src/routes/index.js +19 -0
- package/dist/src/routes/knowledge.js +981 -0
- package/dist/src/routes/knowledgePayload.js +185 -0
- package/dist/src/routes/knowledgePayload.test.js +53 -0
- package/dist/src/routes/markdown.js +295 -0
- package/dist/src/routes/notemd.js +1321 -0
- package/dist/src/routes/registry.contract.test.js +133 -0
- package/dist/src/routes/registry.shadow.contract.test.js +22 -0
- package/dist/src/routes/render.js +248 -0
- package/dist/src/routes/runtimeRunbookRouteOps.js +149 -0
- package/dist/src/routes/runtimeRunbookRouteOps.test.js +194 -0
- package/dist/src/routes/settings.js +6 -0
- package/dist/src/routes/staticFiles.js +94 -0
- package/dist/src/routes/types.js +2 -0
- package/dist/src/runtime.capabilities.test.js +18 -2
- package/dist/src/runtime.transport.adapter.contract.test.js +81 -0
- package/dist/src/server.js +10342 -1325
- package/dist/src/server.migration.test.js +584 -10
- package/dist/src/server.port.fallback.contract.test.js +63 -0
- package/dist/src/session/SessionStateStore.js +81 -0
- package/dist/src/session/SessionStateStore.test.js +58 -0
- package/dist/src/session/types.js +2 -0
- package/dist/src/settings.runtime.contract.test.js +50 -0
- package/dist/src/shared/types.contract.test.js +107 -0
- package/dist/src/shared/types.js +22 -0
- package/dist/src/sidecar.build.lock.contract.test.js +201 -0
- package/dist/src/sidecar.freshness.contract.test.js +184 -0
- package/dist/src/sidecar.replacement.boundary.contract.test.js +131 -0
- package/dist/src/sidecar.supply.readiness.contract.test.js +155 -0
- package/dist/src/simulation.worker.offline.test.js +104 -0
- package/dist/src/source_manager.loadflow.test.js +46 -0
- package/dist/src/startup.layout.snapshot.contract.test.js +57 -0
- package/dist/src/storage.provider.capacitor.content.contract.test.js +4 -1
- package/dist/src/storage.provider.contract.test.js +152 -1
- package/dist/src/tauri.frontend.build.contract.test.js +68 -0
- package/dist/src/tauri.sidecar.cleanup.contract.test.js +21 -0
- package/dist/src/tauri.window.evidence.execution.test.js +68 -0
- package/dist/src/utils/RuntimePaths.js +10 -13
- package/dist/src/utils/RuntimePaths.test.js +27 -0
- package/dist/src/utils/platform.js +153 -0
- package/dist/src/windows.installer.build.test.js +109 -0
- package/dist/src/windows.installer.payload.test.js +76 -0
- package/dist/src/windows.installer.runtime.test.js +69 -0
- package/dist/src/workflows/WorkflowArtifactStore.js +96 -0
- package/dist/src/workflows/WorkflowArtifactStore.test.js +80 -0
- package/dist/src/workflows/types.js +2 -0
- package/dist/src/workspace/WorkspaceRegistry.js +135 -0
- package/dist/src/workspace/WorkspaceRegistry.test.js +29 -0
- package/dist/src/workspace/types.js +2 -0
- package/package.json +80 -15
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<meta
|
|
7
7
|
http-equiv="Content-Security-Policy"
|
|
8
|
-
content="default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' data: https://fonts.gstatic.com; img-src 'self' data: blob:; connect-src 'self' http://127.0.0.1:* http://localhost:* ws://127.0.0.1:* ws://localhost:* tauri://localhost http://tauri.localhost https://tauri.localhost; worker-src 'self' blob:; object-src 'none'; base-uri 'self';
|
|
8
|
+
content="default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' data: https://fonts.gstatic.com; img-src 'self' data: blob:; connect-src 'self' ipc: http://127.0.0.1:* http://localhost:* http://ipc.localhost https://ipc.localhost ws://127.0.0.1:* ws://localhost:* tauri://localhost http://tauri.localhost https://tauri.localhost; worker-src 'self' blob:; object-src 'none'; base-uri 'self'; form-action 'self';"
|
|
9
9
|
/>
|
|
10
10
|
<title>NoteConnection Knowledge Graph</title>
|
|
11
11
|
<link
|
|
@@ -123,6 +123,20 @@
|
|
|
123
123
|
>
|
|
124
124
|
NoteMD
|
|
125
125
|
</button>
|
|
126
|
+
<button
|
|
127
|
+
id="btn-open-agent-workspace"
|
|
128
|
+
style="
|
|
129
|
+
background: #744210;
|
|
130
|
+
color: #fff8e1;
|
|
131
|
+
border: 1px solid #a16207;
|
|
132
|
+
padding: 2px 8px;
|
|
133
|
+
cursor: pointer;
|
|
134
|
+
"
|
|
135
|
+
data-i18n="agentWorkspace.actions.openWorkspace"
|
|
136
|
+
title="Open Knowledge Workspace"
|
|
137
|
+
>
|
|
138
|
+
Knowledge Workspace
|
|
139
|
+
</button>
|
|
126
140
|
<span
|
|
127
141
|
id="kb-current-path"
|
|
128
142
|
style="
|
|
@@ -140,6 +154,155 @@
|
|
|
140
154
|
></span>
|
|
141
155
|
</div>
|
|
142
156
|
|
|
157
|
+
<div id="agent-workspace-backdrop" class="agent-workspace-backdrop" hidden></div>
|
|
158
|
+
<aside
|
|
159
|
+
id="agent-workspace-drawer"
|
|
160
|
+
class="agent-workspace-drawer"
|
|
161
|
+
aria-hidden="true"
|
|
162
|
+
data-open="false"
|
|
163
|
+
>
|
|
164
|
+
<div class="agent-workspace-drawer-frame">
|
|
165
|
+
<div class="agent-workspace-drawer-toolbar">
|
|
166
|
+
<div class="agent-workspace-drawer-heading">
|
|
167
|
+
<span class="agent-workspace-drawer-title" data-i18n="agentWorkspace.title">Knowledge Workspace</span>
|
|
168
|
+
<span class="agent-workspace-drawer-subtitle" data-i18n="agentWorkspace.subtitle">Grounded conversation, knowledge search, and guided learning</span>
|
|
169
|
+
</div>
|
|
170
|
+
<button
|
|
171
|
+
id="btn-close-agent-workspace"
|
|
172
|
+
type="button"
|
|
173
|
+
class="agent-workspace-drawer-close"
|
|
174
|
+
data-i18n="agentWorkspace.actions.closeWorkspace"
|
|
175
|
+
>
|
|
176
|
+
Close
|
|
177
|
+
</button>
|
|
178
|
+
</div>
|
|
179
|
+
|
|
180
|
+
<div id="agent-workspace-shell" class="agent-workspace-shell">
|
|
181
|
+
<section id="agent-chat-pane" class="agent-chat-pane">
|
|
182
|
+
<div class="agent-pane-header">
|
|
183
|
+
<h3 data-i18n="agentWorkspace.conversationTitle">Grounded Conversation</h3>
|
|
184
|
+
<span class="agent-pane-subtitle" data-i18n="agentWorkspace.conversationSubtitle">Scoped knowledge, citations, and guided learning actions</span>
|
|
185
|
+
</div>
|
|
186
|
+
<div class="agent-scope-control agent-scope-control--workspace">
|
|
187
|
+
<label for="agent-workspace-scope-select" data-i18n="agentWorkspace.scope.label">Knowledge Scope</label>
|
|
188
|
+
<select id="agent-workspace-scope-select" aria-describedby="agent-workspace-scope-summary"></select>
|
|
189
|
+
<div
|
|
190
|
+
id="agent-workspace-scope-summary"
|
|
191
|
+
class="agent-scope-summary"
|
|
192
|
+
data-i18n="agentWorkspace.scope.summaryAll"
|
|
193
|
+
>All folders</div>
|
|
194
|
+
</div>
|
|
195
|
+
<div class="agent-answer-language-control">
|
|
196
|
+
<label for="agent-workspace-answer-language-select" data-i18n="agentWorkspace.answerLanguage.label">Answer language</label>
|
|
197
|
+
<select id="agent-workspace-answer-language-select" aria-describedby="agent-workspace-answer-language-summary">
|
|
198
|
+
<option value="en" data-i18n="agentWorkspace.answerLanguage.english">English</option>
|
|
199
|
+
<option value="zh" data-i18n="agentWorkspace.answerLanguage.chinese">中文</option>
|
|
200
|
+
</select>
|
|
201
|
+
<div id="agent-workspace-answer-language-summary" class="agent-answer-language-summary" data-i18n="agentWorkspace.answerLanguage.summary">Matches software language</div>
|
|
202
|
+
</div>
|
|
203
|
+
<div class="agent-response-mode-control">
|
|
204
|
+
<label for="agent-workspace-response-mode-select" data-i18n="agentWorkspace.responseMode.label">Answer detail</label>
|
|
205
|
+
<select id="agent-workspace-response-mode-select" aria-describedby="agent-workspace-response-mode-summary">
|
|
206
|
+
<option value="slim" data-i18n="agentWorkspace.responseMode.slim">Slim</option>
|
|
207
|
+
<option value="full" data-i18n="agentWorkspace.responseMode.full">Full report</option>
|
|
208
|
+
</select>
|
|
209
|
+
<div id="agent-workspace-response-mode-summary" class="agent-response-mode-summary" data-i18n="agentWorkspace.responseMode.summary">Short grounded answer</div>
|
|
210
|
+
</div>
|
|
211
|
+
<div class="agent-response-budget-control" data-agent-desktop-only="true">
|
|
212
|
+
<label for="agent-workspace-response-budget-select" data-i18n="agentWorkspace.responseBudget.label">Full report budget</label>
|
|
213
|
+
<select id="agent-workspace-response-budget-select" aria-describedby="agent-workspace-response-budget-summary">
|
|
214
|
+
<option value="adaptive" data-i18n="agentWorkspace.responseBudget.adaptive">Adaptive</option>
|
|
215
|
+
<option value="unbounded" data-i18n="agentWorkspace.responseBudget.unbounded">No product cap</option>
|
|
216
|
+
</select>
|
|
217
|
+
<div id="agent-workspace-response-budget-summary" class="agent-response-budget-summary" data-i18n="agentWorkspace.responseBudget.summary">Host-adaptive report budget</div>
|
|
218
|
+
</div>
|
|
219
|
+
<div class="agent-pane-field">
|
|
220
|
+
<label for="agent-workspace-user-id" data-i18n="agentWorkspace.userId">Learner ID</label>
|
|
221
|
+
<input id="agent-workspace-user-id" type="text" value="path_user_default" />
|
|
222
|
+
</div>
|
|
223
|
+
<div id="agent-workspace-chat-messages" class="agent-chat-messages"></div>
|
|
224
|
+
<div id="agent-workspace-knowledge-points" class="agent-knowledge-points">
|
|
225
|
+
<div class="agent-knowledge-empty" data-i18n="agentWorkspace.knowledge.emptyInitial">No scoped knowledge matches yet.</div>
|
|
226
|
+
</div>
|
|
227
|
+
<div class="agent-pane-field agent-chat-input-field">
|
|
228
|
+
<label for="agent-workspace-chat-input" data-i18n="agentWorkspace.inputLabel">Ask the scoped knowledge corpus</label>
|
|
229
|
+
<textarea
|
|
230
|
+
id="agent-workspace-chat-input"
|
|
231
|
+
rows="3"
|
|
232
|
+
placeholder="Ask about a concept, citation, prerequisite, or study step..."
|
|
233
|
+
data-i18n-placeholder="agentWorkspace.inputPlaceholder"
|
|
234
|
+
></textarea>
|
|
235
|
+
</div>
|
|
236
|
+
<div class="agent-pane-actions">
|
|
237
|
+
<button id="btn-agent-workspace-send" type="button" data-i18n="agentWorkspace.actions.send">Send</button>
|
|
238
|
+
</div>
|
|
239
|
+
<div
|
|
240
|
+
id="agent-workspace-api-status"
|
|
241
|
+
class="agent-api-status"
|
|
242
|
+
data-api-state="idle"
|
|
243
|
+
aria-live="polite"
|
|
244
|
+
></div>
|
|
245
|
+
</section>
|
|
246
|
+
|
|
247
|
+
<div id="agent-side-work-area" class="agent-side-work-area">
|
|
248
|
+
<section
|
|
249
|
+
id="agent-graph-focus-pane"
|
|
250
|
+
class="agent-workspace-pane"
|
|
251
|
+
data-open="false"
|
|
252
|
+
data-fullscreen="false"
|
|
253
|
+
>
|
|
254
|
+
<div class="agent-workspace-pane-header">
|
|
255
|
+
<h4 data-i18n="agentWorkspace.graphFocus.title">Knowledge Focus</h4>
|
|
256
|
+
<div class="agent-pane-controls">
|
|
257
|
+
<button id="btn-agent-graph-focus-fullscreen" type="button" data-i18n="agentWorkspace.actions.fullscreen">Fullscreen</button>
|
|
258
|
+
<button id="btn-agent-graph-focus-close" class="agent-pane-close-button" type="button" aria-label="Close pane">×</button>
|
|
259
|
+
</div>
|
|
260
|
+
</div>
|
|
261
|
+
<div id="agent-graph-focus-body" class="agent-workspace-pane-body">
|
|
262
|
+
<div class="agent-pane-empty" data-i18n="agentWorkspace.graphFocus.emptyIdle">Graph focus pane is idle.</div>
|
|
263
|
+
</div>
|
|
264
|
+
</section>
|
|
265
|
+
|
|
266
|
+
<section
|
|
267
|
+
id="agent-evidence-pane"
|
|
268
|
+
class="agent-workspace-pane"
|
|
269
|
+
data-open="false"
|
|
270
|
+
data-fullscreen="false"
|
|
271
|
+
>
|
|
272
|
+
<div class="agent-workspace-pane-header">
|
|
273
|
+
<h4 data-i18n="agentWorkspace.evidence.title">Evidence Inspector</h4>
|
|
274
|
+
<div class="agent-pane-controls">
|
|
275
|
+
<button id="btn-agent-evidence-fullscreen" type="button" data-i18n="agentWorkspace.actions.fullscreen">Fullscreen</button>
|
|
276
|
+
<button id="btn-agent-evidence-close" class="agent-pane-close-button" type="button" aria-label="Close pane">×</button>
|
|
277
|
+
</div>
|
|
278
|
+
</div>
|
|
279
|
+
<div id="agent-evidence-body" class="agent-workspace-pane-body">
|
|
280
|
+
<div class="agent-pane-empty" data-i18n="agentWorkspace.evidence.emptyIdle">Evidence pane is idle.</div>
|
|
281
|
+
</div>
|
|
282
|
+
</section>
|
|
283
|
+
|
|
284
|
+
<section
|
|
285
|
+
id="agent-learning-path-pane"
|
|
286
|
+
class="agent-workspace-pane"
|
|
287
|
+
data-open="false"
|
|
288
|
+
data-fullscreen="false"
|
|
289
|
+
>
|
|
290
|
+
<div class="agent-workspace-pane-header">
|
|
291
|
+
<h4 data-i18n="agentWorkspace.learningPath.title">Guided Learning</h4>
|
|
292
|
+
<div class="agent-pane-controls">
|
|
293
|
+
<button id="btn-agent-learning-path-fullscreen" type="button" data-i18n="agentWorkspace.actions.fullscreen">Fullscreen</button>
|
|
294
|
+
<button id="btn-agent-learning-path-close" class="agent-pane-close-button" type="button" aria-label="Close pane">×</button>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
<div id="agent-learning-path-body" class="agent-workspace-pane-body">
|
|
298
|
+
<div class="agent-pane-empty" data-i18n="agentWorkspace.learningPath.emptyIdle">Learning path pane is idle.</div>
|
|
299
|
+
</div>
|
|
300
|
+
</section>
|
|
301
|
+
</div>
|
|
302
|
+
</div>
|
|
303
|
+
</div>
|
|
304
|
+
</aside>
|
|
305
|
+
|
|
143
306
|
<div id="controls">
|
|
144
307
|
<h3
|
|
145
308
|
style="
|
|
@@ -828,304 +991,420 @@
|
|
|
828
991
|
</button>
|
|
829
992
|
</div>
|
|
830
993
|
</div>
|
|
831
|
-
<div
|
|
832
|
-
|
|
994
|
+
<div class="reading-layout">
|
|
995
|
+
<div class="reading-main">
|
|
996
|
+
<div id="reading-diagnostics" class="reading-diagnostics">
|
|
997
|
+
<span class="reading-diagnostics-item" data-i18n="reader_loading">Reader loading...</span>
|
|
998
|
+
</div>
|
|
999
|
+
<div id="reading-body" class="reading-body locked">
|
|
1000
|
+
<!-- Content injected here -->
|
|
1001
|
+
</div>
|
|
1002
|
+
</div>
|
|
1003
|
+
<aside id="reading-outline" class="reading-outline" aria-label="Document outline">
|
|
1004
|
+
<div class="reading-outline-header" data-i18n="reader_outline_title">Outline</div>
|
|
1005
|
+
<div id="reading-outline-body" class="reading-outline-body">
|
|
1006
|
+
<div class="reading-outline-empty" data-i18n="reader_outline_empty">No headings available.</div>
|
|
1007
|
+
</div>
|
|
1008
|
+
</aside>
|
|
833
1009
|
</div>
|
|
834
1010
|
</div>
|
|
835
1011
|
</div>
|
|
836
1012
|
|
|
837
1013
|
<!-- Settings Modal -->
|
|
838
|
-
<div
|
|
839
|
-
|
|
1014
|
+
<div
|
|
1015
|
+
id="settings-modal"
|
|
1016
|
+
class="modal-overlay settings-modal-overlay"
|
|
1017
|
+
style="display: none"
|
|
1018
|
+
>
|
|
1019
|
+
<div class="modal-content modal-content-settings">
|
|
840
1020
|
<div class="modal-header">
|
|
841
|
-
<
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
<div class="setting-item">
|
|
848
|
-
<label data-i18n="lbl_language">Language</label>
|
|
849
|
-
<select
|
|
850
|
-
id="set-language"
|
|
851
|
-
style="
|
|
852
|
-
background: #444;
|
|
853
|
-
color: white;
|
|
854
|
-
border: 1px solid #555;
|
|
855
|
-
padding: 2px;
|
|
856
|
-
"
|
|
857
|
-
>
|
|
858
|
-
<option value="en">English</option>
|
|
859
|
-
<option value="zh">中文</option>
|
|
860
|
-
</select>
|
|
861
|
-
</div>
|
|
862
|
-
</div>
|
|
863
|
-
|
|
864
|
-
<div class="settings-group">
|
|
865
|
-
<h3 data-i18n="grp_physics">Physics</h3>
|
|
866
|
-
<div class="setting-item">
|
|
867
|
-
<label data-i18n="lbl_repulsion">Repulsion Strength</label>
|
|
868
|
-
<input
|
|
869
|
-
type="range"
|
|
870
|
-
id="set-charge"
|
|
871
|
-
min="-1000"
|
|
872
|
-
max="-50"
|
|
873
|
-
step="50"
|
|
874
|
-
/>
|
|
875
|
-
<span class="value-display" id="val-charge"></span>
|
|
876
|
-
</div>
|
|
877
|
-
<div class="setting-item">
|
|
878
|
-
<label data-i18n="lbl_distance">Link Distance</label>
|
|
879
|
-
<input
|
|
880
|
-
type="range"
|
|
881
|
-
id="set-distance"
|
|
882
|
-
min="20"
|
|
883
|
-
max="900"
|
|
884
|
-
step="10"
|
|
885
|
-
/>
|
|
886
|
-
<span class="value-display" id="val-distance"></span>
|
|
887
|
-
</div>
|
|
888
|
-
<div class="setting-item">
|
|
889
|
-
<label data-i18n="lbl_collision">Collision Radius</label>
|
|
890
|
-
<input
|
|
891
|
-
type="range"
|
|
892
|
-
id="set-collision"
|
|
893
|
-
min="5"
|
|
894
|
-
max="100"
|
|
895
|
-
step="5"
|
|
896
|
-
/>
|
|
897
|
-
<span class="value-display" id="val-collision"></span>
|
|
898
|
-
</div>
|
|
1021
|
+
<div class="modal-header-copy">
|
|
1022
|
+
<h2 data-i18n="settings_title">Visualization Settings</h2>
|
|
1023
|
+
<p class="settings-modal-subtitle" data-i18n="settings_subtitle">
|
|
1024
|
+
Keep graph, reading, and performance controls compact. Agent
|
|
1025
|
+
provider setup lives on its own page.
|
|
1026
|
+
</p>
|
|
899
1027
|
</div>
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
padding: 2px;
|
|
915
|
-
"
|
|
916
|
-
>
|
|
917
|
-
<option value="visible" data-i18n="opt_visible">
|
|
918
|
-
Visible Nodes (Default)
|
|
919
|
-
</option>
|
|
920
|
-
<option value="total" data-i18n="opt_total">
|
|
921
|
-
Total Statistical
|
|
922
|
-
</option>
|
|
923
|
-
</select>
|
|
924
|
-
</div>
|
|
925
|
-
|
|
926
|
-
<h3 data-i18n="grp_performance">Performance</h3>
|
|
927
|
-
<div class="setting-item">
|
|
928
|
-
<label data-i18n="lbl_max_workers">Max Workers (Memory)</label>
|
|
929
|
-
<div style="display: flex; gap: 10px; align-items: center">
|
|
930
|
-
<input
|
|
931
|
-
type="range"
|
|
932
|
-
id="set-workers-slider"
|
|
933
|
-
min="1"
|
|
934
|
-
max="32"
|
|
935
|
-
value="4"
|
|
936
|
-
style="flex: 1"
|
|
937
|
-
/>
|
|
938
|
-
<input
|
|
939
|
-
type="number"
|
|
940
|
-
id="set-workers-input"
|
|
941
|
-
min="1"
|
|
942
|
-
max="128"
|
|
943
|
-
value="4"
|
|
944
|
-
style="
|
|
945
|
-
width: 50px;
|
|
946
|
-
background: #333;
|
|
947
|
-
color: white;
|
|
948
|
-
border: 1px solid #555;
|
|
949
|
-
"
|
|
950
|
-
/>
|
|
951
|
-
</div>
|
|
952
|
-
<div
|
|
953
|
-
style="font-size: 0.75rem; color: #888; margin-top: 2px"
|
|
954
|
-
data-i18n="desc_workers"
|
|
955
|
-
>
|
|
956
|
-
Lower this if Node.js runs out of memory.
|
|
1028
|
+
<button class="modal-close" data-settings-close="main">×</button>
|
|
1029
|
+
</div>
|
|
1030
|
+
<div class="modal-body settings-modal-body">
|
|
1031
|
+
<div class="settings-page-grid">
|
|
1032
|
+
<section class="settings-card">
|
|
1033
|
+
<div class="settings-group">
|
|
1034
|
+
<h3 data-i18n="grp_general">General</h3>
|
|
1035
|
+
<div class="setting-item">
|
|
1036
|
+
<label data-i18n="lbl_language">Language</label>
|
|
1037
|
+
<select id="set-language" class="settings-select">
|
|
1038
|
+
<option value="en">English</option>
|
|
1039
|
+
<option value="zh">中文</option>
|
|
1040
|
+
</select>
|
|
1041
|
+
</div>
|
|
957
1042
|
</div>
|
|
958
|
-
</
|
|
1043
|
+
</section>
|
|
959
1044
|
|
|
960
|
-
<
|
|
961
|
-
<
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
1045
|
+
<section class="settings-card">
|
|
1046
|
+
<div class="settings-group">
|
|
1047
|
+
<h3 data-i18n="grp_visuals">Visuals</h3>
|
|
1048
|
+
<div class="setting-item">
|
|
1049
|
+
<label data-i18n="lbl_opacity">Edge Opacity</label>
|
|
1050
|
+
<input
|
|
1051
|
+
type="range"
|
|
1052
|
+
id="set-opacity"
|
|
1053
|
+
min="0.1"
|
|
1054
|
+
max="1.0"
|
|
1055
|
+
step="0.1"
|
|
1056
|
+
/>
|
|
1057
|
+
<span class="value-display" id="val-opacity"></span>
|
|
1058
|
+
</div>
|
|
1059
|
+
<div class="setting-item">
|
|
1060
|
+
<label><span data-i18n="lbl_inbound_count">Inbound Count:</span></label>
|
|
1061
|
+
<select id="set-degree-mode" class="settings-select">
|
|
1062
|
+
<option value="visible" data-i18n="opt_visible">
|
|
1063
|
+
Visible Nodes (Default)
|
|
1064
|
+
</option>
|
|
1065
|
+
<option value="total" data-i18n="opt_total">
|
|
1066
|
+
Total Statistical
|
|
1067
|
+
</option>
|
|
1068
|
+
</select>
|
|
1069
|
+
</div>
|
|
974
1070
|
</div>
|
|
975
|
-
</
|
|
1071
|
+
</section>
|
|
976
1072
|
|
|
977
|
-
<
|
|
978
|
-
<
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
1073
|
+
<section class="settings-card">
|
|
1074
|
+
<div class="settings-group">
|
|
1075
|
+
<h3 data-i18n="grp_physics">Physics</h3>
|
|
1076
|
+
<div class="setting-item">
|
|
1077
|
+
<label data-i18n="lbl_repulsion">Repulsion Strength</label>
|
|
1078
|
+
<input
|
|
1079
|
+
type="range"
|
|
1080
|
+
id="set-charge"
|
|
1081
|
+
min="-1000"
|
|
1082
|
+
max="-50"
|
|
1083
|
+
step="50"
|
|
1084
|
+
/>
|
|
1085
|
+
<span class="value-display" id="val-charge"></span>
|
|
1086
|
+
</div>
|
|
1087
|
+
<div class="setting-item">
|
|
1088
|
+
<label data-i18n="lbl_distance">Link Distance</label>
|
|
1089
|
+
<input
|
|
1090
|
+
type="range"
|
|
1091
|
+
id="set-distance"
|
|
1092
|
+
min="20"
|
|
1093
|
+
max="900"
|
|
1094
|
+
step="10"
|
|
1095
|
+
/>
|
|
1096
|
+
<span class="value-display" id="val-distance"></span>
|
|
1097
|
+
</div>
|
|
1098
|
+
<div class="setting-item">
|
|
1099
|
+
<label data-i18n="lbl_collision">Collision Radius</label>
|
|
1100
|
+
<input
|
|
1101
|
+
type="range"
|
|
1102
|
+
id="set-collision"
|
|
1103
|
+
min="5"
|
|
1104
|
+
max="100"
|
|
1105
|
+
step="5"
|
|
1106
|
+
/>
|
|
1107
|
+
<span class="value-display" id="val-collision"></span>
|
|
1108
|
+
</div>
|
|
991
1109
|
</div>
|
|
992
|
-
</
|
|
1110
|
+
</section>
|
|
993
1111
|
|
|
994
|
-
<
|
|
995
|
-
<
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1112
|
+
<section class="settings-card">
|
|
1113
|
+
<div class="settings-group">
|
|
1114
|
+
<h3 data-i18n="grp_performance">Performance</h3>
|
|
1115
|
+
<div class="setting-item setting-item-stack">
|
|
1116
|
+
<label data-i18n="lbl_max_workers">Max Workers (Memory)</label>
|
|
1117
|
+
<div class="settings-inline-row">
|
|
1118
|
+
<input
|
|
1119
|
+
type="range"
|
|
1120
|
+
id="set-workers-slider"
|
|
1121
|
+
min="1"
|
|
1122
|
+
max="32"
|
|
1123
|
+
value="4"
|
|
1124
|
+
style="flex: 1"
|
|
1125
|
+
/>
|
|
1126
|
+
<input
|
|
1127
|
+
type="number"
|
|
1128
|
+
id="set-workers-input"
|
|
1129
|
+
min="1"
|
|
1130
|
+
max="128"
|
|
1131
|
+
value="4"
|
|
1132
|
+
class="settings-number"
|
|
1133
|
+
/>
|
|
1134
|
+
</div>
|
|
1135
|
+
<div class="settings-helper-block" data-i18n="desc_workers">
|
|
1136
|
+
Lower this if Node.js runs out of memory.
|
|
1137
|
+
</div>
|
|
1138
|
+
</div>
|
|
1139
|
+
|
|
1140
|
+
<div class="setting-item setting-item-stack">
|
|
1141
|
+
<label class="settings-toggle">
|
|
1142
|
+
<input type="checkbox" id="set-gpu" checked />
|
|
1143
|
+
<span data-i18n="lbl_gpu">Enable GPU Acceleration</span>
|
|
1144
|
+
</label>
|
|
1145
|
+
<div class="settings-helper-block" data-i18n="desc_gpu">
|
|
1146
|
+
Use GPU for similarity calculation (Requires page reload).
|
|
1147
|
+
</div>
|
|
1148
|
+
</div>
|
|
1149
|
+
|
|
1150
|
+
<div class="setting-item setting-item-stack">
|
|
1151
|
+
<label class="settings-toggle">
|
|
1152
|
+
<input type="checkbox" id="set-memory-saving" />
|
|
1153
|
+
<span data-i18n="lbl_memory_saving">Large File Memory Saving Strategy</span>
|
|
1154
|
+
</label>
|
|
1155
|
+
<div class="settings-helper-block" data-i18n="desc_memory_saving">
|
|
1156
|
+
Use lower precision strategies to prevent OOM on large files.
|
|
1157
|
+
</div>
|
|
1158
|
+
</div>
|
|
1159
|
+
|
|
1160
|
+
<div class="setting-item setting-item-stack">
|
|
1161
|
+
<label class="settings-toggle">
|
|
1162
|
+
<input type="checkbox" id="set-compact-mode" />
|
|
1163
|
+
<span data-i18n="lbl_compact_mode">Compact Mode (Hide Edges)</span>
|
|
1164
|
+
</label>
|
|
1165
|
+
<div class="settings-helper-block" data-i18n="desc_compact_mode">
|
|
1166
|
+
Don't load/render edges by default to improve performance for >5k nodes.
|
|
1167
|
+
</div>
|
|
1168
|
+
</div>
|
|
1169
|
+
|
|
1170
|
+
<div class="setting-item setting-item-stack">
|
|
1171
|
+
<label class="settings-toggle">
|
|
1172
|
+
<input type="checkbox" id="set-static-mode" />
|
|
1173
|
+
<span data-i18n="lbl_static_mode">Static Mode</span>
|
|
1174
|
+
</label>
|
|
1175
|
+
<div class="settings-helper-block" data-i18n="desc_static_mode">
|
|
1176
|
+
Stop simulation after 2 seconds. Recommended for large graphs.
|
|
1177
|
+
</div>
|
|
1178
|
+
</div>
|
|
1179
|
+
|
|
1180
|
+
<div class="setting-item setting-item-stack">
|
|
1181
|
+
<label class="settings-toggle">
|
|
1182
|
+
<input type="checkbox" id="set-gpu-rendering" />
|
|
1183
|
+
<span data-i18n="lbl_gpu_rendering">GPU Optimised Rendering</span>
|
|
1184
|
+
</label>
|
|
1185
|
+
<div class="settings-helper-block" data-i18n="desc_gpu_rendering">
|
|
1186
|
+
Enable AMDGPU acceleration for loading and positioning.
|
|
1187
|
+
</div>
|
|
1188
|
+
</div>
|
|
1189
|
+
|
|
1190
|
+
<div class="setting-item setting-item-stack">
|
|
1191
|
+
<label class="settings-toggle">
|
|
1192
|
+
<input type="checkbox" id="set-deep-debug" />
|
|
1193
|
+
<span data-i18n="lbl_deep_debug">Developer Mode</span>
|
|
1194
|
+
</label>
|
|
1195
|
+
<div class="settings-helper-block" data-i18n="desc_deep_debug">
|
|
1196
|
+
Show backend diagnostics and relation details in advanced workspace panes.
|
|
1197
|
+
</div>
|
|
1198
|
+
</div>
|
|
1009
1199
|
</div>
|
|
1010
|
-
</
|
|
1200
|
+
</section>
|
|
1011
1201
|
|
|
1012
|
-
<
|
|
1013
|
-
<
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
>
|
|
1025
|
-
Stop simulation after 2 seconds. Recommended for large graphs.
|
|
1202
|
+
<section class="settings-card">
|
|
1203
|
+
<div class="settings-group">
|
|
1204
|
+
<h3 data-i18n="grp_reading">Reading</h3>
|
|
1205
|
+
<div class="setting-item">
|
|
1206
|
+
<label data-i18n="lbl_reading_mode">Open Mode</label>
|
|
1207
|
+
<select id="set-reading-mode" class="settings-select">
|
|
1208
|
+
<option value="window" data-i18n="opt_window">Window</option>
|
|
1209
|
+
<option value="fullscreen" data-i18n="opt_fullscreen">
|
|
1210
|
+
Full Screen
|
|
1211
|
+
</option>
|
|
1212
|
+
</select>
|
|
1213
|
+
</div>
|
|
1026
1214
|
</div>
|
|
1027
|
-
</div>
|
|
1028
1215
|
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
>
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
data-i18n="desc_gpu_rendering"
|
|
1041
|
-
>
|
|
1042
|
-
Enable AMDGPU acceleration for loading and positioning.
|
|
1216
|
+
<div class="settings-group">
|
|
1217
|
+
<h3 data-i18n="grp_path_mode">Path Mode</h3>
|
|
1218
|
+
<div class="setting-item setting-item-stack">
|
|
1219
|
+
<label class="settings-toggle">
|
|
1220
|
+
<input type="checkbox" id="set-retain-history" checked />
|
|
1221
|
+
<span data-i18n="lbl_retain_history">Retain Learning History</span>
|
|
1222
|
+
</label>
|
|
1223
|
+
<div class="settings-helper-block" data-i18n="desc_retain_history">
|
|
1224
|
+
Keep learned nodes state across sessions.
|
|
1225
|
+
</div>
|
|
1226
|
+
</div>
|
|
1043
1227
|
</div>
|
|
1044
|
-
</
|
|
1228
|
+
</section>
|
|
1045
1229
|
|
|
1046
|
-
<
|
|
1047
|
-
<
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1230
|
+
<section class="settings-card settings-card-accent">
|
|
1231
|
+
<div class="settings-card-callout">
|
|
1232
|
+
<span class="settings-card-kicker" data-i18n="grp_ai_provider">AI Provider</span>
|
|
1233
|
+
<h3 class="settings-card-title" data-i18n="settings_agent_title">
|
|
1234
|
+
Agent Settings
|
|
1235
|
+
</h3>
|
|
1236
|
+
<p class="settings-card-copy" data-i18n="settings_agent_description">
|
|
1237
|
+
Provider presets, API keys, models, and TOML template actions are isolated on a dedicated page.
|
|
1238
|
+
</p>
|
|
1239
|
+
<button
|
|
1240
|
+
type="button"
|
|
1241
|
+
id="btn-open-agent-settings"
|
|
1242
|
+
class="btn btn-primary"
|
|
1243
|
+
data-i18n="settings_open_agent"
|
|
1053
1244
|
>
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
style="font-size: 0.75rem; color: #888; margin-top: 2px"
|
|
1057
|
-
data-i18n="desc_deep_debug"
|
|
1058
|
-
>
|
|
1059
|
-
Enable detailed logging for debugging.
|
|
1245
|
+
Open Agent Settings
|
|
1246
|
+
</button>
|
|
1060
1247
|
</div>
|
|
1061
|
-
</
|
|
1248
|
+
</section>
|
|
1062
1249
|
</div>
|
|
1250
|
+
</div>
|
|
1251
|
+
<div class="modal-footer modal-footer-settings">
|
|
1252
|
+
<button
|
|
1253
|
+
class="btn btn-secondary"
|
|
1254
|
+
id="btn-reset-settings"
|
|
1255
|
+
data-i18n="btn_reset"
|
|
1256
|
+
>
|
|
1257
|
+
Reset
|
|
1258
|
+
</button>
|
|
1259
|
+
<button
|
|
1260
|
+
class="btn btn-primary modal-close"
|
|
1261
|
+
data-settings-close="main"
|
|
1262
|
+
data-i18n="btn_done"
|
|
1263
|
+
>
|
|
1264
|
+
Done
|
|
1265
|
+
</button>
|
|
1266
|
+
</div>
|
|
1267
|
+
</div>
|
|
1268
|
+
</div>
|
|
1063
1269
|
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1270
|
+
<div
|
|
1271
|
+
id="agent-settings-modal"
|
|
1272
|
+
class="modal-overlay settings-modal-overlay"
|
|
1273
|
+
style="display: none"
|
|
1274
|
+
>
|
|
1275
|
+
<div class="modal-content modal-content-settings modal-content-agent-settings">
|
|
1276
|
+
<div class="modal-header">
|
|
1277
|
+
<div class="modal-header-copy">
|
|
1278
|
+
<div class="settings-breadcrumb-row">
|
|
1279
|
+
<button
|
|
1280
|
+
type="button"
|
|
1281
|
+
id="btn-agent-settings-back"
|
|
1282
|
+
class="btn btn-secondary btn-inline-nav"
|
|
1283
|
+
data-i18n="settings_back_to_general"
|
|
1284
|
+
>
|
|
1285
|
+
Back to Settings
|
|
1286
|
+
</button>
|
|
1076
1287
|
</div>
|
|
1288
|
+
<h2 data-i18n="settings_agent_title">Agent Settings</h2>
|
|
1289
|
+
<p class="settings-modal-subtitle" data-i18n="settings_agent_subtitle">
|
|
1290
|
+
Provider, model, API key, and TOML template controls for agent workflows.
|
|
1291
|
+
</p>
|
|
1077
1292
|
</div>
|
|
1293
|
+
<button class="modal-close" data-settings-close="agent">×</button>
|
|
1294
|
+
</div>
|
|
1295
|
+
<div class="modal-body settings-modal-body">
|
|
1296
|
+
<div class="settings-page-grid settings-page-grid-single">
|
|
1297
|
+
<section class="settings-card settings-card-wide">
|
|
1298
|
+
<div class="settings-group">
|
|
1299
|
+
<h3 data-i18n="grp_ai_provider">AI Provider</h3>
|
|
1300
|
+
<div class="setting-item setting-item-stack">
|
|
1301
|
+
<label data-i18n="lbl_notemd_provider_template">Preset Template</label>
|
|
1302
|
+
<div class="settings-inline-row">
|
|
1303
|
+
<select id="set-notemd-provider-template" class="settings-select settings-select-grow"></select>
|
|
1304
|
+
<button
|
|
1305
|
+
type="button"
|
|
1306
|
+
id="btn-apply-notemd-provider-template"
|
|
1307
|
+
class="btn btn-secondary"
|
|
1308
|
+
data-i18n="btn_apply_provider_template"
|
|
1309
|
+
>
|
|
1310
|
+
Apply Preset
|
|
1311
|
+
</button>
|
|
1312
|
+
</div>
|
|
1313
|
+
<div
|
|
1314
|
+
id="set-notemd-provider-template-hint"
|
|
1315
|
+
class="settings-helper-block"
|
|
1316
|
+
></div>
|
|
1317
|
+
</div>
|
|
1078
1318
|
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1319
|
+
<div class="setting-item setting-item-stack">
|
|
1320
|
+
<label data-i18n="lbl_notemd_active_provider">Active Provider</label>
|
|
1321
|
+
<select id="set-notemd-provider-name" class="settings-select"></select>
|
|
1322
|
+
</div>
|
|
1323
|
+
|
|
1324
|
+
<div class="setting-item setting-item-stack">
|
|
1325
|
+
<label data-i18n="lbl_notemd_provider_base_url">Base URL</label>
|
|
1326
|
+
<input type="text" id="set-notemd-provider-base-url" class="settings-text-input" />
|
|
1327
|
+
</div>
|
|
1328
|
+
|
|
1329
|
+
<div class="setting-item setting-item-stack">
|
|
1330
|
+
<label data-i18n="lbl_notemd_provider_model">Model</label>
|
|
1331
|
+
<input type="text" id="set-notemd-provider-model" class="settings-text-input" />
|
|
1332
|
+
</div>
|
|
1333
|
+
|
|
1334
|
+
<div class="setting-item setting-item-stack">
|
|
1335
|
+
<label data-i18n="lbl_notemd_provider_api_key">API Key</label>
|
|
1336
|
+
<input type="password" id="set-notemd-provider-api-key" class="settings-text-input" />
|
|
1337
|
+
</div>
|
|
1338
|
+
|
|
1339
|
+
<div
|
|
1340
|
+
class="setting-item setting-item-stack"
|
|
1341
|
+
id="set-notemd-provider-api-version-row"
|
|
1088
1342
|
>
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1343
|
+
<label data-i18n="lbl_notemd_provider_api_version">API Version</label>
|
|
1344
|
+
<input type="text" id="set-notemd-provider-api-version" class="settings-text-input" />
|
|
1345
|
+
<div
|
|
1346
|
+
id="set-notemd-provider-api-version-hint"
|
|
1347
|
+
class="settings-helper-block"
|
|
1348
|
+
data-i18n="notemd_provider_api_version_optional"
|
|
1349
|
+
>
|
|
1350
|
+
Optional. Leave blank for standard OpenAI-compatible endpoints. This is mainly used by Azure OpenAI.
|
|
1351
|
+
</div>
|
|
1352
|
+
</div>
|
|
1098
1353
|
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1354
|
+
<div class="setting-item setting-item-stack">
|
|
1355
|
+
<div class="settings-inline-row">
|
|
1356
|
+
<button
|
|
1357
|
+
type="button"
|
|
1358
|
+
id="btn-test-notemd-provider"
|
|
1359
|
+
class="btn btn-secondary"
|
|
1360
|
+
data-i18n="btn_test_provider_connection"
|
|
1361
|
+
>
|
|
1362
|
+
Test Connection
|
|
1363
|
+
</button>
|
|
1364
|
+
<button
|
|
1365
|
+
type="button"
|
|
1366
|
+
id="btn-save-notemd-provider"
|
|
1367
|
+
class="btn btn-primary"
|
|
1368
|
+
data-i18n="btn_save_provider_config"
|
|
1369
|
+
>
|
|
1370
|
+
Save Provider
|
|
1371
|
+
</button>
|
|
1372
|
+
<button
|
|
1373
|
+
type="button"
|
|
1374
|
+
id="btn-materialize-notemd-provider-templates"
|
|
1375
|
+
class="btn btn-secondary"
|
|
1376
|
+
data-i18n="btn_write_provider_templates"
|
|
1377
|
+
>
|
|
1378
|
+
Write TOML Templates
|
|
1379
|
+
</button>
|
|
1380
|
+
</div>
|
|
1381
|
+
<div
|
|
1382
|
+
id="set-notemd-provider-status"
|
|
1383
|
+
class="settings-helper-block"
|
|
1384
|
+
></div>
|
|
1385
|
+
<div
|
|
1386
|
+
id="set-notemd-provider-config-path"
|
|
1387
|
+
class="settings-helper-block settings-helper-code"
|
|
1388
|
+
></div>
|
|
1389
|
+
</div>
|
|
1390
|
+
</div>
|
|
1391
|
+
</section>
|
|
1118
1392
|
</div>
|
|
1119
1393
|
</div>
|
|
1120
|
-
<div class="modal-footer">
|
|
1394
|
+
<div class="modal-footer modal-footer-settings">
|
|
1121
1395
|
<button
|
|
1396
|
+
type="button"
|
|
1397
|
+
id="btn-agent-settings-back-footer"
|
|
1122
1398
|
class="btn btn-secondary"
|
|
1123
|
-
|
|
1124
|
-
data-i18n="btn_reset"
|
|
1399
|
+
data-i18n="settings_back_to_general"
|
|
1125
1400
|
>
|
|
1126
|
-
|
|
1401
|
+
Back to Settings
|
|
1127
1402
|
</button>
|
|
1128
|
-
<button
|
|
1403
|
+
<button
|
|
1404
|
+
class="btn btn-primary modal-close"
|
|
1405
|
+
data-settings-close="agent"
|
|
1406
|
+
data-i18n="btn_done"
|
|
1407
|
+
>
|
|
1129
1408
|
Done
|
|
1130
1409
|
</button>
|
|
1131
1410
|
</div>
|
|
@@ -1263,13 +1542,25 @@
|
|
|
1263
1542
|
<script src="tutorial.js"></script>
|
|
1264
1543
|
|
|
1265
1544
|
<!-- Application Scripts -->
|
|
1266
|
-
|
|
1267
|
-
|
|
1545
|
+
<script src="runtime_bridge.js"></script>
|
|
1546
|
+
<script src="mobile_budget_runtime.js"></script>
|
|
1547
|
+
<script src="knowledge_projection_contract.js"></script>
|
|
1548
|
+
<script src="knowledge_projection_store.js"></script>
|
|
1549
|
+
<script src="mobile_exact_analyzer.js"></script>
|
|
1550
|
+
<script src="mobile_identity_contract.js"></script>
|
|
1551
|
+
<script src="storage_provider.js"></script>
|
|
1268
1552
|
<script src="settings.js"></script>
|
|
1553
|
+
<script src="markdown_runtime.js"></script>
|
|
1269
1554
|
<script src="reader.js"></script>
|
|
1270
1555
|
<!-- app.js removed for dynamic loading after data.js -->
|
|
1271
1556
|
<script src="analysis.js"></script>
|
|
1272
1557
|
<script src="loading.js"></script>
|
|
1558
|
+
<script src="focus_mode_interactions.js"></script>
|
|
1559
|
+
<script src="godot_tree_interactions.js"></script>
|
|
1560
|
+
<script src="godot_future_path_renderer.js"></script>
|
|
1561
|
+
<script src="hosted_future_path_runtime.js"></script>
|
|
1562
|
+
<script src="workspace_panes.js"></script>
|
|
1563
|
+
<script src="agent_workspace.js"></script>
|
|
1273
1564
|
<script src="source_manager.js"></script>
|
|
1274
1565
|
<script src="welcome.js"></script>
|
|
1275
1566
|
<!-- Path Mode Container (Hidden by default) -->
|
|
@@ -1345,6 +1636,16 @@
|
|
|
1345
1636
|
</button>
|
|
1346
1637
|
</div>
|
|
1347
1638
|
|
|
1639
|
+
<div class="toolbar-group">
|
|
1640
|
+
<button
|
|
1641
|
+
id="btn-toggle-learning-workbench"
|
|
1642
|
+
class="icon-btn"
|
|
1643
|
+
title="Toggle Learning Workbench"
|
|
1644
|
+
>
|
|
1645
|
+
<span>Workbench</span>
|
|
1646
|
+
</button>
|
|
1647
|
+
</div>
|
|
1648
|
+
|
|
1348
1649
|
<div class="toolbar-group right">
|
|
1349
1650
|
<button id="btn-exit-path" class="icon-btn" title="Exit Path Mode">
|
|
1350
1651
|
<i class="fas fa-times"></i> <span data-i18n="btn_exit">Exit</span>
|
|
@@ -1396,6 +1697,106 @@
|
|
|
1396
1697
|
</div>
|
|
1397
1698
|
</div>
|
|
1398
1699
|
|
|
1700
|
+
<!-- Learning Workbench Sidebar -->
|
|
1701
|
+
<div
|
|
1702
|
+
id="learning-workbench-sidebar"
|
|
1703
|
+
class="path-sidebar workbench-sidebar"
|
|
1704
|
+
style="display: none"
|
|
1705
|
+
>
|
|
1706
|
+
<div class="sidebar-header">
|
|
1707
|
+
<h3>Learning Workbench</h3>
|
|
1708
|
+
<button id="btn-close-learning-workbench" class="close-btn">×</button>
|
|
1709
|
+
</div>
|
|
1710
|
+
<div class="sidebar-content workbench-content">
|
|
1711
|
+
<div class="workbench-field">
|
|
1712
|
+
<label for="learning-user-id">Learner ID</label>
|
|
1713
|
+
<input
|
|
1714
|
+
id="learning-user-id"
|
|
1715
|
+
type="text"
|
|
1716
|
+
placeholder="path_user_default"
|
|
1717
|
+
/>
|
|
1718
|
+
</div>
|
|
1719
|
+
<div class="workbench-row">
|
|
1720
|
+
<button id="btn-refresh-learning-workbench" class="btn-small">Refresh</button>
|
|
1721
|
+
<button id="btn-ingest-focus-node" class="btn-small">Ingest Focus</button>
|
|
1722
|
+
<button id="btn-run-learning-session" class="btn-small">Run Session</button>
|
|
1723
|
+
<button id="btn-run-retest-session" class="btn-small">Run Retest</button>
|
|
1724
|
+
</div>
|
|
1725
|
+
<div id="learning-workbench-status" class="workbench-status">Ready.</div>
|
|
1726
|
+
<div id="learning-workbench-updated-at" class="workbench-updated-at">Last updated: -</div>
|
|
1727
|
+
|
|
1728
|
+
<div class="workbench-section">
|
|
1729
|
+
<h4>Quality Snapshot</h4>
|
|
1730
|
+
<div class="workbench-row">
|
|
1731
|
+
<button id="btn-set-quality-baseline" class="btn-small" type="button">Set Baseline</button>
|
|
1732
|
+
<button id="btn-evaluate-quality-gates" class="btn-small" type="button">Evaluate Gates</button>
|
|
1733
|
+
</div>
|
|
1734
|
+
<ul id="learning-quality-summary" class="workbench-list">
|
|
1735
|
+
<li class="muted">No quality snapshot yet.</li>
|
|
1736
|
+
</ul>
|
|
1737
|
+
<pre id="learning-quality-gates" class="workbench-feedback">No quality gate evaluation yet.</pre>
|
|
1738
|
+
</div>
|
|
1739
|
+
|
|
1740
|
+
<div class="workbench-section">
|
|
1741
|
+
<h4>Top Misconceptions</h4>
|
|
1742
|
+
<ul id="learning-misconception-list" class="workbench-list">
|
|
1743
|
+
<li class="muted">No recurring misconceptions detected.</li>
|
|
1744
|
+
</ul>
|
|
1745
|
+
</div>
|
|
1746
|
+
|
|
1747
|
+
<div class="workbench-section">
|
|
1748
|
+
<h4>Session Actions</h4>
|
|
1749
|
+
<ul id="learning-session-actions" class="workbench-list">
|
|
1750
|
+
<li class="muted">No session actions yet.</li>
|
|
1751
|
+
</ul>
|
|
1752
|
+
</div>
|
|
1753
|
+
|
|
1754
|
+
<div class="workbench-section">
|
|
1755
|
+
<h4>Tutor Feedback</h4>
|
|
1756
|
+
<pre id="learning-tutor-feedback" class="workbench-feedback">No tutor feedback yet.</pre>
|
|
1757
|
+
</div>
|
|
1758
|
+
|
|
1759
|
+
<div class="workbench-section">
|
|
1760
|
+
<h4>Session Execution</h4>
|
|
1761
|
+
<pre id="learning-session-execution" class="workbench-feedback">No session execution yet.</pre>
|
|
1762
|
+
</div>
|
|
1763
|
+
|
|
1764
|
+
<div class="workbench-section">
|
|
1765
|
+
<h4>Session History</h4>
|
|
1766
|
+
<div class="workbench-row">
|
|
1767
|
+
<label for="learning-history-kind-filter">Kind</label>
|
|
1768
|
+
<select id="learning-history-kind-filter" class="control-select">
|
|
1769
|
+
<option value="all">All</option>
|
|
1770
|
+
<option value="session">Session</option>
|
|
1771
|
+
<option value="retest">Retest</option>
|
|
1772
|
+
<option value="custom">Custom</option>
|
|
1773
|
+
</select>
|
|
1774
|
+
<button id="btn-learning-history-prev" class="btn-small" type="button">Prev</button>
|
|
1775
|
+
<button id="btn-learning-history-next" class="btn-small" type="button">Next</button>
|
|
1776
|
+
<span id="learning-history-page" class="muted">Page 1/1</span>
|
|
1777
|
+
</div>
|
|
1778
|
+
<div class="workbench-row">
|
|
1779
|
+
<label for="learning-history-from-date">From</label>
|
|
1780
|
+
<input id="learning-history-from-date" type="date" class="control-input" />
|
|
1781
|
+
<label for="learning-history-to-date">To</label>
|
|
1782
|
+
<input id="learning-history-to-date" type="date" class="control-input" />
|
|
1783
|
+
<button id="btn-learning-history-apply-range" class="btn-small" type="button">Apply</button>
|
|
1784
|
+
<button id="btn-learning-history-clear-range" class="btn-small" type="button">Clear</button>
|
|
1785
|
+
</div>
|
|
1786
|
+
<div id="learning-session-history-summary" class="workbench-runtime">
|
|
1787
|
+
History summary: unavailable
|
|
1788
|
+
</div>
|
|
1789
|
+
<ul id="learning-session-history" class="workbench-list">
|
|
1790
|
+
<li class="muted">No session history yet.</li>
|
|
1791
|
+
</ul>
|
|
1792
|
+
</div>
|
|
1793
|
+
|
|
1794
|
+
<div id="learning-runtime-summary" class="workbench-runtime">
|
|
1795
|
+
Runtime: unavailable
|
|
1796
|
+
</div>
|
|
1797
|
+
</div>
|
|
1798
|
+
</div>
|
|
1799
|
+
|
|
1399
1800
|
<!-- Node Selector Modal for Diffusion Mode -->
|
|
1400
1801
|
<div id="node-select-modal" class="modal-overlay" style="display: none">
|
|
1401
1802
|
<div class="modal-content" style="max-width: 500px">
|
|
@@ -1431,7 +1832,10 @@
|
|
|
1431
1832
|
|
|
1432
1833
|
<!-- Path Mode Scripts -->
|
|
1433
1834
|
<script src="libs/path_core.js"></script>
|
|
1835
|
+
<script src="path_modules_bridge.js"></script>
|
|
1434
1836
|
<script src="path_app.js"></script>
|
|
1837
|
+
|
|
1838
|
+
<!-- ES Module Entry (Vite dev/build) - loads after legacy scripts for backward compat -->
|
|
1839
|
+
<script type="module" src="./main.mjs"></script>
|
|
1435
1840
|
</body>
|
|
1436
1841
|
</html>
|
|
1437
|
-
|