noteconnection 1.7.0 → 1.8.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 +242 -62
- package/dist/src/agent_workspace.contract.parity.test.js +475 -0
- package/dist/src/agent_workspace.frontend.test.js +9989 -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/copy.assets.contract.test.js +130 -0
- package/dist/src/core/PathBridge.js +28 -3
- package/dist/src/export/WorkspaceExportBundle.js +1130 -0
- package/dist/src/export/WorkspaceExportBundle.test.js +1480 -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 +406 -0
- package/dist/src/foundation.sqlite.runtime.contract.test.js +82 -0
- package/dist/src/frontend/README.md +242 -62
- package/dist/src/frontend/agent_workspace.js +5353 -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 +641 -266
- package/dist/src/frontend/layout_gpu.js +12 -4
- package/dist/src/frontend/locales/en.json +721 -5
- package/dist/src/frontend/locales/zh.json +721 -5
- package/dist/src/frontend/main.mjs +60 -0
- package/dist/src/frontend/markdown_runtime.js +827 -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 +107 -0
- 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/source_manager.js +190 -21
- package/dist/src/frontend/styles.css +2720 -72
- package/dist/src/frontend/workbench_state.mjs +101 -0
- package/dist/src/frontend/workspace_panes.js +10168 -0
- package/dist/src/frontend.locale.contract.test.js +62 -0
- package/dist/src/godot.sidecar.bootstrap.contract.test.js +244 -0
- package/dist/src/indexing/IndexLifecycle.js +195 -0
- package/dist/src/indexing/IndexLifecycle.test.js +49 -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 +170 -0
- package/dist/src/learning/KnowledgeLearningPlatform.js +10386 -0
- package/dist/src/learning/KnowledgeLearningPlatform.persistence.test.js +327 -0
- package/dist/src/learning/KnowledgeLearningPlatform.program-f.test.js +99 -0
- package/dist/src/learning/KnowledgeLearningPlatform.test.js +2971 -0
- package/dist/src/learning/KnowledgeWorkspaceConversationRegression.js +2974 -0
- package/dist/src/learning/KnowledgeWorkspaceConversationRegression.test.js +3928 -0
- package/dist/src/learning/answerReleaseReview.js +4319 -0
- package/dist/src/learning/answerReleaseReview.test.js +2888 -0
- package/dist/src/learning/api.js +2 -0
- package/dist/src/learning/conversationComposer.js +1480 -0
- package/dist/src/learning/conversationComposer.test.js +1817 -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 +1176 -0
- package/dist/src/learning/evidenceContextAssembler.test.js +6332 -0
- package/dist/src/learning/graphContextAssembler.js +870 -0
- package/dist/src/learning/graphContextAssembler.test.js +1033 -0
- package/dist/src/learning/index.js +28 -0
- package/dist/src/learning/queryBackend.js +1898 -0
- package/dist/src/learning/queryBackend.test.js +955 -0
- package/dist/src/learning/ragContextPack.js +257 -0
- package/dist/src/learning/ragContextPack.test.js +160 -0
- package/dist/src/learning/ragPublicText.js +38 -0
- package/dist/src/learning/ragSufficiencyJudge.js +161 -0
- package/dist/src/learning/ragSufficiencyJudge.test.js +177 -0
- package/dist/src/learning/ragSufficiencyProviderJudge.js +227 -0
- package/dist/src/learning/ragSufficiencyProviderJudge.test.js +156 -0
- package/dist/src/learning/requestNormalization.js +198 -0
- package/dist/src/learning/runtimeCapability.js +4677 -0
- package/dist/src/learning/runtimeCapability.test.js +3635 -0
- package/dist/src/learning/store.js +1240 -0
- package/dist/src/learning/store.test.js +1126 -0
- package/dist/src/learning/tutorAdapter.js +2 -0
- package/dist/src/learning/types.js +2 -0
- package/dist/src/learning/vectorAccelerationAdapter.js +942 -0
- package/dist/src/learning/vectorAccelerationAdapter.test.js +382 -0
- package/dist/src/lfs.asset.policy.contract.test.js +153 -0
- package/dist/src/license.policy.contract.test.js +66 -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/auth.js +17 -0
- package/dist/src/middleware/body-parser.js +45 -0
- package/dist/src/middleware/cors.js +44 -0
- package/dist/src/middleware/index.js +21 -0
- package/dist/src/middleware/request-trace.js +96 -0
- package/dist/src/notemd/AppConfigToml.js +6 -4
- package/dist/src/notemd/MermaidProcessor.js +400 -50
- package/dist/src/notemd/NotemdService.js +498 -13
- package/dist/src/notemd/PromptManager.js +15 -0
- 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/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 +143 -35
- package/dist/src/notemd.workflow.pipeline.test.js +162 -0
- package/dist/src/pathbridge.handshake.contract.test.js +16 -2
- 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 +58 -0
- package/dist/src/platform/PlatformCapabilities.js +45 -0
- package/dist/src/platform/PlatformCapabilities.test.js +30 -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 +73 -0
- package/dist/src/resources/ResourceRegistry.js +223 -0
- package/dist/src/resources/ResourceRegistry.test.js +61 -0
- package/dist/src/resources/types.js +2 -0
- package/dist/src/routes/agentWorkspaceDiagnostics.js +173 -0
- package/dist/src/routes/data.js +267 -0
- package/dist/src/routes/diagnostics.js +51 -0
- package/dist/src/routes/index.js +23 -0
- package/dist/src/routes/knowledge.js +968 -0
- package/dist/src/routes/markdown.js +287 -0
- package/dist/src/routes/notemd.js +565 -0
- package/dist/src/routes/registry.contract.test.js +130 -0
- package/dist/src/routes/render.js +285 -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.transport.adapter.contract.test.js +81 -0
- package/dist/src/server.js +11090 -1549
- package/dist/src/server.migration.test.js +193 -21
- 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.replacement.boundary.contract.test.js +128 -0
- package/dist/src/sidecar.supply.readiness.contract.test.js +144 -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/tauri.frontend.build.contract.test.js +60 -0
- package/dist/src/tauri.sidecar.cleanup.contract.test.js +21 -0
- package/dist/src/utils/RuntimePaths.js +4 -13
- package/dist/src/utils/platform.js +153 -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 +122 -0
- package/dist/src/workspace/WorkspaceRegistry.test.js +29 -0
- package/dist/src/workspace/types.js +2 -0
- package/package.json +53 -10
|
@@ -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,131 @@
|
|
|
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-pane-field">
|
|
196
|
+
<label for="agent-workspace-user-id" data-i18n="agentWorkspace.userId">Learner ID</label>
|
|
197
|
+
<input id="agent-workspace-user-id" type="text" value="path_user_default" />
|
|
198
|
+
</div>
|
|
199
|
+
<div id="agent-workspace-chat-messages" class="agent-chat-messages"></div>
|
|
200
|
+
<div id="agent-workspace-knowledge-points" class="agent-knowledge-points">
|
|
201
|
+
<div class="agent-knowledge-empty" data-i18n="agentWorkspace.knowledge.emptyInitial">No scoped knowledge matches yet.</div>
|
|
202
|
+
</div>
|
|
203
|
+
<div class="agent-pane-field agent-chat-input-field">
|
|
204
|
+
<label for="agent-workspace-chat-input" data-i18n="agentWorkspace.inputLabel">Ask the scoped knowledge corpus</label>
|
|
205
|
+
<textarea
|
|
206
|
+
id="agent-workspace-chat-input"
|
|
207
|
+
rows="3"
|
|
208
|
+
placeholder="Ask about a concept, citation, prerequisite, or study step..."
|
|
209
|
+
data-i18n-placeholder="agentWorkspace.inputPlaceholder"
|
|
210
|
+
></textarea>
|
|
211
|
+
</div>
|
|
212
|
+
<div class="agent-pane-actions">
|
|
213
|
+
<button id="btn-agent-workspace-send" type="button" data-i18n="agentWorkspace.actions.send">Send</button>
|
|
214
|
+
</div>
|
|
215
|
+
<div
|
|
216
|
+
id="agent-workspace-api-status"
|
|
217
|
+
class="agent-api-status"
|
|
218
|
+
data-api-state="idle"
|
|
219
|
+
aria-live="polite"
|
|
220
|
+
></div>
|
|
221
|
+
</section>
|
|
222
|
+
|
|
223
|
+
<div id="agent-side-work-area" class="agent-side-work-area">
|
|
224
|
+
<section
|
|
225
|
+
id="agent-graph-focus-pane"
|
|
226
|
+
class="agent-workspace-pane"
|
|
227
|
+
data-open="false"
|
|
228
|
+
data-fullscreen="false"
|
|
229
|
+
>
|
|
230
|
+
<div class="agent-workspace-pane-header">
|
|
231
|
+
<h4 data-i18n="agentWorkspace.graphFocus.title">Knowledge Focus</h4>
|
|
232
|
+
<div class="agent-pane-controls">
|
|
233
|
+
<button id="btn-agent-graph-focus-fullscreen" type="button" data-i18n="agentWorkspace.actions.fullscreen">Fullscreen</button>
|
|
234
|
+
<button id="btn-agent-graph-focus-close" class="agent-pane-close-button" type="button" aria-label="Close pane">×</button>
|
|
235
|
+
</div>
|
|
236
|
+
</div>
|
|
237
|
+
<div id="agent-graph-focus-body" class="agent-workspace-pane-body">
|
|
238
|
+
<div class="agent-pane-empty" data-i18n="agentWorkspace.graphFocus.emptyIdle">Graph focus pane is idle.</div>
|
|
239
|
+
</div>
|
|
240
|
+
</section>
|
|
241
|
+
|
|
242
|
+
<section
|
|
243
|
+
id="agent-evidence-pane"
|
|
244
|
+
class="agent-workspace-pane"
|
|
245
|
+
data-open="false"
|
|
246
|
+
data-fullscreen="false"
|
|
247
|
+
>
|
|
248
|
+
<div class="agent-workspace-pane-header">
|
|
249
|
+
<h4 data-i18n="agentWorkspace.evidence.title">Evidence Inspector</h4>
|
|
250
|
+
<div class="agent-pane-controls">
|
|
251
|
+
<button id="btn-agent-evidence-fullscreen" type="button" data-i18n="agentWorkspace.actions.fullscreen">Fullscreen</button>
|
|
252
|
+
<button id="btn-agent-evidence-close" class="agent-pane-close-button" type="button" aria-label="Close pane">×</button>
|
|
253
|
+
</div>
|
|
254
|
+
</div>
|
|
255
|
+
<div id="agent-evidence-body" class="agent-workspace-pane-body">
|
|
256
|
+
<div class="agent-pane-empty" data-i18n="agentWorkspace.evidence.emptyIdle">Evidence pane is idle.</div>
|
|
257
|
+
</div>
|
|
258
|
+
</section>
|
|
259
|
+
|
|
260
|
+
<section
|
|
261
|
+
id="agent-learning-path-pane"
|
|
262
|
+
class="agent-workspace-pane"
|
|
263
|
+
data-open="false"
|
|
264
|
+
data-fullscreen="false"
|
|
265
|
+
>
|
|
266
|
+
<div class="agent-workspace-pane-header">
|
|
267
|
+
<h4 data-i18n="agentWorkspace.learningPath.title">Guided Learning</h4>
|
|
268
|
+
<div class="agent-pane-controls">
|
|
269
|
+
<button id="btn-agent-learning-path-fullscreen" type="button" data-i18n="agentWorkspace.actions.fullscreen">Fullscreen</button>
|
|
270
|
+
<button id="btn-agent-learning-path-close" class="agent-pane-close-button" type="button" aria-label="Close pane">×</button>
|
|
271
|
+
</div>
|
|
272
|
+
</div>
|
|
273
|
+
<div id="agent-learning-path-body" class="agent-workspace-pane-body">
|
|
274
|
+
<div class="agent-pane-empty" data-i18n="agentWorkspace.learningPath.emptyIdle">Learning path pane is idle.</div>
|
|
275
|
+
</div>
|
|
276
|
+
</section>
|
|
277
|
+
</div>
|
|
278
|
+
</div>
|
|
279
|
+
</div>
|
|
280
|
+
</aside>
|
|
281
|
+
|
|
143
282
|
<div id="controls">
|
|
144
283
|
<h3
|
|
145
284
|
style="
|
|
@@ -828,304 +967,420 @@
|
|
|
828
967
|
</button>
|
|
829
968
|
</div>
|
|
830
969
|
</div>
|
|
831
|
-
<div
|
|
832
|
-
|
|
970
|
+
<div class="reading-layout">
|
|
971
|
+
<div class="reading-main">
|
|
972
|
+
<div id="reading-diagnostics" class="reading-diagnostics">
|
|
973
|
+
<span class="reading-diagnostics-item" data-i18n="reader_loading">Reader loading...</span>
|
|
974
|
+
</div>
|
|
975
|
+
<div id="reading-body" class="reading-body locked">
|
|
976
|
+
<!-- Content injected here -->
|
|
977
|
+
</div>
|
|
978
|
+
</div>
|
|
979
|
+
<aside id="reading-outline" class="reading-outline" aria-label="Document outline">
|
|
980
|
+
<div class="reading-outline-header" data-i18n="reader_outline_title">Outline</div>
|
|
981
|
+
<div id="reading-outline-body" class="reading-outline-body">
|
|
982
|
+
<div class="reading-outline-empty" data-i18n="reader_outline_empty">No headings available.</div>
|
|
983
|
+
</div>
|
|
984
|
+
</aside>
|
|
833
985
|
</div>
|
|
834
986
|
</div>
|
|
835
987
|
</div>
|
|
836
988
|
|
|
837
989
|
<!-- Settings Modal -->
|
|
838
|
-
<div
|
|
839
|
-
|
|
990
|
+
<div
|
|
991
|
+
id="settings-modal"
|
|
992
|
+
class="modal-overlay settings-modal-overlay"
|
|
993
|
+
style="display: none"
|
|
994
|
+
>
|
|
995
|
+
<div class="modal-content modal-content-settings">
|
|
840
996
|
<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>
|
|
997
|
+
<div class="modal-header-copy">
|
|
998
|
+
<h2 data-i18n="settings_title">Visualization Settings</h2>
|
|
999
|
+
<p class="settings-modal-subtitle" data-i18n="settings_subtitle">
|
|
1000
|
+
Keep graph, reading, and performance controls compact. Agent
|
|
1001
|
+
provider setup lives on its own page.
|
|
1002
|
+
</p>
|
|
899
1003
|
</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.
|
|
1004
|
+
<button class="modal-close" data-settings-close="main">×</button>
|
|
1005
|
+
</div>
|
|
1006
|
+
<div class="modal-body settings-modal-body">
|
|
1007
|
+
<div class="settings-page-grid">
|
|
1008
|
+
<section class="settings-card">
|
|
1009
|
+
<div class="settings-group">
|
|
1010
|
+
<h3 data-i18n="grp_general">General</h3>
|
|
1011
|
+
<div class="setting-item">
|
|
1012
|
+
<label data-i18n="lbl_language">Language</label>
|
|
1013
|
+
<select id="set-language" class="settings-select">
|
|
1014
|
+
<option value="en">English</option>
|
|
1015
|
+
<option value="zh">中文</option>
|
|
1016
|
+
</select>
|
|
1017
|
+
</div>
|
|
957
1018
|
</div>
|
|
958
|
-
</
|
|
1019
|
+
</section>
|
|
959
1020
|
|
|
960
|
-
<
|
|
961
|
-
<
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
1021
|
+
<section class="settings-card">
|
|
1022
|
+
<div class="settings-group">
|
|
1023
|
+
<h3 data-i18n="grp_visuals">Visuals</h3>
|
|
1024
|
+
<div class="setting-item">
|
|
1025
|
+
<label data-i18n="lbl_opacity">Edge Opacity</label>
|
|
1026
|
+
<input
|
|
1027
|
+
type="range"
|
|
1028
|
+
id="set-opacity"
|
|
1029
|
+
min="0.1"
|
|
1030
|
+
max="1.0"
|
|
1031
|
+
step="0.1"
|
|
1032
|
+
/>
|
|
1033
|
+
<span class="value-display" id="val-opacity"></span>
|
|
1034
|
+
</div>
|
|
1035
|
+
<div class="setting-item">
|
|
1036
|
+
<label><span data-i18n="lbl_inbound_count">Inbound Count:</span></label>
|
|
1037
|
+
<select id="set-degree-mode" class="settings-select">
|
|
1038
|
+
<option value="visible" data-i18n="opt_visible">
|
|
1039
|
+
Visible Nodes (Default)
|
|
1040
|
+
</option>
|
|
1041
|
+
<option value="total" data-i18n="opt_total">
|
|
1042
|
+
Total Statistical
|
|
1043
|
+
</option>
|
|
1044
|
+
</select>
|
|
1045
|
+
</div>
|
|
974
1046
|
</div>
|
|
975
|
-
</
|
|
1047
|
+
</section>
|
|
976
1048
|
|
|
977
|
-
<
|
|
978
|
-
<
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
1049
|
+
<section class="settings-card">
|
|
1050
|
+
<div class="settings-group">
|
|
1051
|
+
<h3 data-i18n="grp_physics">Physics</h3>
|
|
1052
|
+
<div class="setting-item">
|
|
1053
|
+
<label data-i18n="lbl_repulsion">Repulsion Strength</label>
|
|
1054
|
+
<input
|
|
1055
|
+
type="range"
|
|
1056
|
+
id="set-charge"
|
|
1057
|
+
min="-1000"
|
|
1058
|
+
max="-50"
|
|
1059
|
+
step="50"
|
|
1060
|
+
/>
|
|
1061
|
+
<span class="value-display" id="val-charge"></span>
|
|
1062
|
+
</div>
|
|
1063
|
+
<div class="setting-item">
|
|
1064
|
+
<label data-i18n="lbl_distance">Link Distance</label>
|
|
1065
|
+
<input
|
|
1066
|
+
type="range"
|
|
1067
|
+
id="set-distance"
|
|
1068
|
+
min="20"
|
|
1069
|
+
max="900"
|
|
1070
|
+
step="10"
|
|
1071
|
+
/>
|
|
1072
|
+
<span class="value-display" id="val-distance"></span>
|
|
1073
|
+
</div>
|
|
1074
|
+
<div class="setting-item">
|
|
1075
|
+
<label data-i18n="lbl_collision">Collision Radius</label>
|
|
1076
|
+
<input
|
|
1077
|
+
type="range"
|
|
1078
|
+
id="set-collision"
|
|
1079
|
+
min="5"
|
|
1080
|
+
max="100"
|
|
1081
|
+
step="5"
|
|
1082
|
+
/>
|
|
1083
|
+
<span class="value-display" id="val-collision"></span>
|
|
1084
|
+
</div>
|
|
991
1085
|
</div>
|
|
992
|
-
</
|
|
1086
|
+
</section>
|
|
993
1087
|
|
|
994
|
-
<
|
|
995
|
-
<
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1088
|
+
<section class="settings-card">
|
|
1089
|
+
<div class="settings-group">
|
|
1090
|
+
<h3 data-i18n="grp_performance">Performance</h3>
|
|
1091
|
+
<div class="setting-item setting-item-stack">
|
|
1092
|
+
<label data-i18n="lbl_max_workers">Max Workers (Memory)</label>
|
|
1093
|
+
<div class="settings-inline-row">
|
|
1094
|
+
<input
|
|
1095
|
+
type="range"
|
|
1096
|
+
id="set-workers-slider"
|
|
1097
|
+
min="1"
|
|
1098
|
+
max="32"
|
|
1099
|
+
value="4"
|
|
1100
|
+
style="flex: 1"
|
|
1101
|
+
/>
|
|
1102
|
+
<input
|
|
1103
|
+
type="number"
|
|
1104
|
+
id="set-workers-input"
|
|
1105
|
+
min="1"
|
|
1106
|
+
max="128"
|
|
1107
|
+
value="4"
|
|
1108
|
+
class="settings-number"
|
|
1109
|
+
/>
|
|
1110
|
+
</div>
|
|
1111
|
+
<div class="settings-helper-block" data-i18n="desc_workers">
|
|
1112
|
+
Lower this if Node.js runs out of memory.
|
|
1113
|
+
</div>
|
|
1114
|
+
</div>
|
|
1115
|
+
|
|
1116
|
+
<div class="setting-item setting-item-stack">
|
|
1117
|
+
<label class="settings-toggle">
|
|
1118
|
+
<input type="checkbox" id="set-gpu" checked />
|
|
1119
|
+
<span data-i18n="lbl_gpu">Enable GPU Acceleration</span>
|
|
1120
|
+
</label>
|
|
1121
|
+
<div class="settings-helper-block" data-i18n="desc_gpu">
|
|
1122
|
+
Use GPU for similarity calculation (Requires page reload).
|
|
1123
|
+
</div>
|
|
1124
|
+
</div>
|
|
1125
|
+
|
|
1126
|
+
<div class="setting-item setting-item-stack">
|
|
1127
|
+
<label class="settings-toggle">
|
|
1128
|
+
<input type="checkbox" id="set-memory-saving" />
|
|
1129
|
+
<span data-i18n="lbl_memory_saving">Large File Memory Saving Strategy</span>
|
|
1130
|
+
</label>
|
|
1131
|
+
<div class="settings-helper-block" data-i18n="desc_memory_saving">
|
|
1132
|
+
Use lower precision strategies to prevent OOM on large files.
|
|
1133
|
+
</div>
|
|
1134
|
+
</div>
|
|
1135
|
+
|
|
1136
|
+
<div class="setting-item setting-item-stack">
|
|
1137
|
+
<label class="settings-toggle">
|
|
1138
|
+
<input type="checkbox" id="set-compact-mode" />
|
|
1139
|
+
<span data-i18n="lbl_compact_mode">Compact Mode (Hide Edges)</span>
|
|
1140
|
+
</label>
|
|
1141
|
+
<div class="settings-helper-block" data-i18n="desc_compact_mode">
|
|
1142
|
+
Don't load/render edges by default to improve performance for >5k nodes.
|
|
1143
|
+
</div>
|
|
1144
|
+
</div>
|
|
1145
|
+
|
|
1146
|
+
<div class="setting-item setting-item-stack">
|
|
1147
|
+
<label class="settings-toggle">
|
|
1148
|
+
<input type="checkbox" id="set-static-mode" />
|
|
1149
|
+
<span data-i18n="lbl_static_mode">Static Mode</span>
|
|
1150
|
+
</label>
|
|
1151
|
+
<div class="settings-helper-block" data-i18n="desc_static_mode">
|
|
1152
|
+
Stop simulation after 2 seconds. Recommended for large graphs.
|
|
1153
|
+
</div>
|
|
1154
|
+
</div>
|
|
1155
|
+
|
|
1156
|
+
<div class="setting-item setting-item-stack">
|
|
1157
|
+
<label class="settings-toggle">
|
|
1158
|
+
<input type="checkbox" id="set-gpu-rendering" />
|
|
1159
|
+
<span data-i18n="lbl_gpu_rendering">GPU Optimised Rendering</span>
|
|
1160
|
+
</label>
|
|
1161
|
+
<div class="settings-helper-block" data-i18n="desc_gpu_rendering">
|
|
1162
|
+
Enable AMDGPU acceleration for loading and positioning.
|
|
1163
|
+
</div>
|
|
1164
|
+
</div>
|
|
1165
|
+
|
|
1166
|
+
<div class="setting-item setting-item-stack">
|
|
1167
|
+
<label class="settings-toggle">
|
|
1168
|
+
<input type="checkbox" id="set-deep-debug" />
|
|
1169
|
+
<span data-i18n="lbl_deep_debug">Developer Mode</span>
|
|
1170
|
+
</label>
|
|
1171
|
+
<div class="settings-helper-block" data-i18n="desc_deep_debug">
|
|
1172
|
+
Show backend diagnostics and relation details in advanced workspace panes.
|
|
1173
|
+
</div>
|
|
1174
|
+
</div>
|
|
1009
1175
|
</div>
|
|
1010
|
-
</
|
|
1176
|
+
</section>
|
|
1011
1177
|
|
|
1012
|
-
<
|
|
1013
|
-
<
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
>
|
|
1025
|
-
Stop simulation after 2 seconds. Recommended for large graphs.
|
|
1178
|
+
<section class="settings-card">
|
|
1179
|
+
<div class="settings-group">
|
|
1180
|
+
<h3 data-i18n="grp_reading">Reading</h3>
|
|
1181
|
+
<div class="setting-item">
|
|
1182
|
+
<label data-i18n="lbl_reading_mode">Open Mode</label>
|
|
1183
|
+
<select id="set-reading-mode" class="settings-select">
|
|
1184
|
+
<option value="window" data-i18n="opt_window">Window</option>
|
|
1185
|
+
<option value="fullscreen" data-i18n="opt_fullscreen">
|
|
1186
|
+
Full Screen
|
|
1187
|
+
</option>
|
|
1188
|
+
</select>
|
|
1189
|
+
</div>
|
|
1026
1190
|
</div>
|
|
1027
|
-
</div>
|
|
1028
1191
|
|
|
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.
|
|
1192
|
+
<div class="settings-group">
|
|
1193
|
+
<h3 data-i18n="grp_path_mode">Path Mode</h3>
|
|
1194
|
+
<div class="setting-item setting-item-stack">
|
|
1195
|
+
<label class="settings-toggle">
|
|
1196
|
+
<input type="checkbox" id="set-retain-history" checked />
|
|
1197
|
+
<span data-i18n="lbl_retain_history">Retain Learning History</span>
|
|
1198
|
+
</label>
|
|
1199
|
+
<div class="settings-helper-block" data-i18n="desc_retain_history">
|
|
1200
|
+
Keep learned nodes state across sessions.
|
|
1201
|
+
</div>
|
|
1202
|
+
</div>
|
|
1043
1203
|
</div>
|
|
1044
|
-
</
|
|
1204
|
+
</section>
|
|
1045
1205
|
|
|
1046
|
-
<
|
|
1047
|
-
<
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1206
|
+
<section class="settings-card settings-card-accent">
|
|
1207
|
+
<div class="settings-card-callout">
|
|
1208
|
+
<span class="settings-card-kicker" data-i18n="grp_ai_provider">AI Provider</span>
|
|
1209
|
+
<h3 class="settings-card-title" data-i18n="settings_agent_title">
|
|
1210
|
+
Agent Settings
|
|
1211
|
+
</h3>
|
|
1212
|
+
<p class="settings-card-copy" data-i18n="settings_agent_description">
|
|
1213
|
+
Provider presets, API keys, models, and TOML template actions are isolated on a dedicated page.
|
|
1214
|
+
</p>
|
|
1215
|
+
<button
|
|
1216
|
+
type="button"
|
|
1217
|
+
id="btn-open-agent-settings"
|
|
1218
|
+
class="btn btn-primary"
|
|
1219
|
+
data-i18n="settings_open_agent"
|
|
1053
1220
|
>
|
|
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.
|
|
1221
|
+
Open Agent Settings
|
|
1222
|
+
</button>
|
|
1060
1223
|
</div>
|
|
1061
|
-
</
|
|
1224
|
+
</section>
|
|
1062
1225
|
</div>
|
|
1226
|
+
</div>
|
|
1227
|
+
<div class="modal-footer modal-footer-settings">
|
|
1228
|
+
<button
|
|
1229
|
+
class="btn btn-secondary"
|
|
1230
|
+
id="btn-reset-settings"
|
|
1231
|
+
data-i18n="btn_reset"
|
|
1232
|
+
>
|
|
1233
|
+
Reset
|
|
1234
|
+
</button>
|
|
1235
|
+
<button
|
|
1236
|
+
class="btn btn-primary modal-close"
|
|
1237
|
+
data-settings-close="main"
|
|
1238
|
+
data-i18n="btn_done"
|
|
1239
|
+
>
|
|
1240
|
+
Done
|
|
1241
|
+
</button>
|
|
1242
|
+
</div>
|
|
1243
|
+
</div>
|
|
1244
|
+
</div>
|
|
1063
1245
|
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1246
|
+
<div
|
|
1247
|
+
id="agent-settings-modal"
|
|
1248
|
+
class="modal-overlay settings-modal-overlay"
|
|
1249
|
+
style="display: none"
|
|
1250
|
+
>
|
|
1251
|
+
<div class="modal-content modal-content-settings modal-content-agent-settings">
|
|
1252
|
+
<div class="modal-header">
|
|
1253
|
+
<div class="modal-header-copy">
|
|
1254
|
+
<div class="settings-breadcrumb-row">
|
|
1255
|
+
<button
|
|
1256
|
+
type="button"
|
|
1257
|
+
id="btn-agent-settings-back"
|
|
1258
|
+
class="btn btn-secondary btn-inline-nav"
|
|
1259
|
+
data-i18n="settings_back_to_general"
|
|
1260
|
+
>
|
|
1261
|
+
Back to Settings
|
|
1262
|
+
</button>
|
|
1076
1263
|
</div>
|
|
1264
|
+
<h2 data-i18n="settings_agent_title">Agent Settings</h2>
|
|
1265
|
+
<p class="settings-modal-subtitle" data-i18n="settings_agent_subtitle">
|
|
1266
|
+
Provider, model, API key, and TOML template controls for agent workflows.
|
|
1267
|
+
</p>
|
|
1077
1268
|
</div>
|
|
1269
|
+
<button class="modal-close" data-settings-close="agent">×</button>
|
|
1270
|
+
</div>
|
|
1271
|
+
<div class="modal-body settings-modal-body">
|
|
1272
|
+
<div class="settings-page-grid settings-page-grid-single">
|
|
1273
|
+
<section class="settings-card settings-card-wide">
|
|
1274
|
+
<div class="settings-group">
|
|
1275
|
+
<h3 data-i18n="grp_ai_provider">AI Provider</h3>
|
|
1276
|
+
<div class="setting-item setting-item-stack">
|
|
1277
|
+
<label data-i18n="lbl_notemd_provider_template">Preset Template</label>
|
|
1278
|
+
<div class="settings-inline-row">
|
|
1279
|
+
<select id="set-notemd-provider-template" class="settings-select settings-select-grow"></select>
|
|
1280
|
+
<button
|
|
1281
|
+
type="button"
|
|
1282
|
+
id="btn-apply-notemd-provider-template"
|
|
1283
|
+
class="btn btn-secondary"
|
|
1284
|
+
data-i18n="btn_apply_provider_template"
|
|
1285
|
+
>
|
|
1286
|
+
Apply Preset
|
|
1287
|
+
</button>
|
|
1288
|
+
</div>
|
|
1289
|
+
<div
|
|
1290
|
+
id="set-notemd-provider-template-hint"
|
|
1291
|
+
class="settings-helper-block"
|
|
1292
|
+
></div>
|
|
1293
|
+
</div>
|
|
1078
1294
|
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1295
|
+
<div class="setting-item setting-item-stack">
|
|
1296
|
+
<label data-i18n="lbl_notemd_active_provider">Active Provider</label>
|
|
1297
|
+
<select id="set-notemd-provider-name" class="settings-select"></select>
|
|
1298
|
+
</div>
|
|
1299
|
+
|
|
1300
|
+
<div class="setting-item setting-item-stack">
|
|
1301
|
+
<label data-i18n="lbl_notemd_provider_base_url">Base URL</label>
|
|
1302
|
+
<input type="text" id="set-notemd-provider-base-url" class="settings-text-input" />
|
|
1303
|
+
</div>
|
|
1304
|
+
|
|
1305
|
+
<div class="setting-item setting-item-stack">
|
|
1306
|
+
<label data-i18n="lbl_notemd_provider_model">Model</label>
|
|
1307
|
+
<input type="text" id="set-notemd-provider-model" class="settings-text-input" />
|
|
1308
|
+
</div>
|
|
1309
|
+
|
|
1310
|
+
<div class="setting-item setting-item-stack">
|
|
1311
|
+
<label data-i18n="lbl_notemd_provider_api_key">API Key</label>
|
|
1312
|
+
<input type="password" id="set-notemd-provider-api-key" class="settings-text-input" />
|
|
1313
|
+
</div>
|
|
1314
|
+
|
|
1315
|
+
<div
|
|
1316
|
+
class="setting-item setting-item-stack"
|
|
1317
|
+
id="set-notemd-provider-api-version-row"
|
|
1088
1318
|
>
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1319
|
+
<label data-i18n="lbl_notemd_provider_api_version">API Version</label>
|
|
1320
|
+
<input type="text" id="set-notemd-provider-api-version" class="settings-text-input" />
|
|
1321
|
+
<div
|
|
1322
|
+
id="set-notemd-provider-api-version-hint"
|
|
1323
|
+
class="settings-helper-block"
|
|
1324
|
+
data-i18n="notemd_provider_api_version_optional"
|
|
1325
|
+
>
|
|
1326
|
+
Optional. Leave blank for standard OpenAI-compatible endpoints. This is mainly used by Azure OpenAI.
|
|
1327
|
+
</div>
|
|
1328
|
+
</div>
|
|
1098
1329
|
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1330
|
+
<div class="setting-item setting-item-stack">
|
|
1331
|
+
<div class="settings-inline-row">
|
|
1332
|
+
<button
|
|
1333
|
+
type="button"
|
|
1334
|
+
id="btn-test-notemd-provider"
|
|
1335
|
+
class="btn btn-secondary"
|
|
1336
|
+
data-i18n="btn_test_provider_connection"
|
|
1337
|
+
>
|
|
1338
|
+
Test Connection
|
|
1339
|
+
</button>
|
|
1340
|
+
<button
|
|
1341
|
+
type="button"
|
|
1342
|
+
id="btn-save-notemd-provider"
|
|
1343
|
+
class="btn btn-primary"
|
|
1344
|
+
data-i18n="btn_save_provider_config"
|
|
1345
|
+
>
|
|
1346
|
+
Save Provider
|
|
1347
|
+
</button>
|
|
1348
|
+
<button
|
|
1349
|
+
type="button"
|
|
1350
|
+
id="btn-materialize-notemd-provider-templates"
|
|
1351
|
+
class="btn btn-secondary"
|
|
1352
|
+
data-i18n="btn_write_provider_templates"
|
|
1353
|
+
>
|
|
1354
|
+
Write TOML Templates
|
|
1355
|
+
</button>
|
|
1356
|
+
</div>
|
|
1357
|
+
<div
|
|
1358
|
+
id="set-notemd-provider-status"
|
|
1359
|
+
class="settings-helper-block"
|
|
1360
|
+
></div>
|
|
1361
|
+
<div
|
|
1362
|
+
id="set-notemd-provider-config-path"
|
|
1363
|
+
class="settings-helper-block settings-helper-code"
|
|
1364
|
+
></div>
|
|
1365
|
+
</div>
|
|
1366
|
+
</div>
|
|
1367
|
+
</section>
|
|
1118
1368
|
</div>
|
|
1119
1369
|
</div>
|
|
1120
|
-
<div class="modal-footer">
|
|
1370
|
+
<div class="modal-footer modal-footer-settings">
|
|
1121
1371
|
<button
|
|
1372
|
+
type="button"
|
|
1373
|
+
id="btn-agent-settings-back-footer"
|
|
1122
1374
|
class="btn btn-secondary"
|
|
1123
|
-
|
|
1124
|
-
data-i18n="btn_reset"
|
|
1375
|
+
data-i18n="settings_back_to_general"
|
|
1125
1376
|
>
|
|
1126
|
-
|
|
1377
|
+
Back to Settings
|
|
1127
1378
|
</button>
|
|
1128
|
-
<button
|
|
1379
|
+
<button
|
|
1380
|
+
class="btn btn-primary modal-close"
|
|
1381
|
+
data-settings-close="agent"
|
|
1382
|
+
data-i18n="btn_done"
|
|
1383
|
+
>
|
|
1129
1384
|
Done
|
|
1130
1385
|
</button>
|
|
1131
1386
|
</div>
|
|
@@ -1266,10 +1521,17 @@
|
|
|
1266
1521
|
<script src="runtime_bridge.js"></script>
|
|
1267
1522
|
<script src="storage_provider.js"></script>
|
|
1268
1523
|
<script src="settings.js"></script>
|
|
1524
|
+
<script src="markdown_runtime.js"></script>
|
|
1269
1525
|
<script src="reader.js"></script>
|
|
1270
1526
|
<!-- app.js removed for dynamic loading after data.js -->
|
|
1271
1527
|
<script src="analysis.js"></script>
|
|
1272
1528
|
<script src="loading.js"></script>
|
|
1529
|
+
<script src="focus_mode_interactions.js"></script>
|
|
1530
|
+
<script src="godot_tree_interactions.js"></script>
|
|
1531
|
+
<script src="godot_future_path_renderer.js"></script>
|
|
1532
|
+
<script src="hosted_future_path_runtime.js"></script>
|
|
1533
|
+
<script src="workspace_panes.js"></script>
|
|
1534
|
+
<script src="agent_workspace.js"></script>
|
|
1273
1535
|
<script src="source_manager.js"></script>
|
|
1274
1536
|
<script src="welcome.js"></script>
|
|
1275
1537
|
<!-- Path Mode Container (Hidden by default) -->
|
|
@@ -1345,6 +1607,16 @@
|
|
|
1345
1607
|
</button>
|
|
1346
1608
|
</div>
|
|
1347
1609
|
|
|
1610
|
+
<div class="toolbar-group">
|
|
1611
|
+
<button
|
|
1612
|
+
id="btn-toggle-learning-workbench"
|
|
1613
|
+
class="icon-btn"
|
|
1614
|
+
title="Toggle Learning Workbench"
|
|
1615
|
+
>
|
|
1616
|
+
<span>Workbench</span>
|
|
1617
|
+
</button>
|
|
1618
|
+
</div>
|
|
1619
|
+
|
|
1348
1620
|
<div class="toolbar-group right">
|
|
1349
1621
|
<button id="btn-exit-path" class="icon-btn" title="Exit Path Mode">
|
|
1350
1622
|
<i class="fas fa-times"></i> <span data-i18n="btn_exit">Exit</span>
|
|
@@ -1396,6 +1668,106 @@
|
|
|
1396
1668
|
</div>
|
|
1397
1669
|
</div>
|
|
1398
1670
|
|
|
1671
|
+
<!-- Learning Workbench Sidebar -->
|
|
1672
|
+
<div
|
|
1673
|
+
id="learning-workbench-sidebar"
|
|
1674
|
+
class="path-sidebar workbench-sidebar"
|
|
1675
|
+
style="display: none"
|
|
1676
|
+
>
|
|
1677
|
+
<div class="sidebar-header">
|
|
1678
|
+
<h3>Learning Workbench</h3>
|
|
1679
|
+
<button id="btn-close-learning-workbench" class="close-btn">×</button>
|
|
1680
|
+
</div>
|
|
1681
|
+
<div class="sidebar-content workbench-content">
|
|
1682
|
+
<div class="workbench-field">
|
|
1683
|
+
<label for="learning-user-id">Learner ID</label>
|
|
1684
|
+
<input
|
|
1685
|
+
id="learning-user-id"
|
|
1686
|
+
type="text"
|
|
1687
|
+
placeholder="path_user_default"
|
|
1688
|
+
/>
|
|
1689
|
+
</div>
|
|
1690
|
+
<div class="workbench-row">
|
|
1691
|
+
<button id="btn-refresh-learning-workbench" class="btn-small">Refresh</button>
|
|
1692
|
+
<button id="btn-ingest-focus-node" class="btn-small">Ingest Focus</button>
|
|
1693
|
+
<button id="btn-run-learning-session" class="btn-small">Run Session</button>
|
|
1694
|
+
<button id="btn-run-retest-session" class="btn-small">Run Retest</button>
|
|
1695
|
+
</div>
|
|
1696
|
+
<div id="learning-workbench-status" class="workbench-status">Ready.</div>
|
|
1697
|
+
<div id="learning-workbench-updated-at" class="workbench-updated-at">Last updated: -</div>
|
|
1698
|
+
|
|
1699
|
+
<div class="workbench-section">
|
|
1700
|
+
<h4>Quality Snapshot</h4>
|
|
1701
|
+
<div class="workbench-row">
|
|
1702
|
+
<button id="btn-set-quality-baseline" class="btn-small" type="button">Set Baseline</button>
|
|
1703
|
+
<button id="btn-evaluate-quality-gates" class="btn-small" type="button">Evaluate Gates</button>
|
|
1704
|
+
</div>
|
|
1705
|
+
<ul id="learning-quality-summary" class="workbench-list">
|
|
1706
|
+
<li class="muted">No quality snapshot yet.</li>
|
|
1707
|
+
</ul>
|
|
1708
|
+
<pre id="learning-quality-gates" class="workbench-feedback">No quality gate evaluation yet.</pre>
|
|
1709
|
+
</div>
|
|
1710
|
+
|
|
1711
|
+
<div class="workbench-section">
|
|
1712
|
+
<h4>Top Misconceptions</h4>
|
|
1713
|
+
<ul id="learning-misconception-list" class="workbench-list">
|
|
1714
|
+
<li class="muted">No recurring misconceptions detected.</li>
|
|
1715
|
+
</ul>
|
|
1716
|
+
</div>
|
|
1717
|
+
|
|
1718
|
+
<div class="workbench-section">
|
|
1719
|
+
<h4>Session Actions</h4>
|
|
1720
|
+
<ul id="learning-session-actions" class="workbench-list">
|
|
1721
|
+
<li class="muted">No session actions yet.</li>
|
|
1722
|
+
</ul>
|
|
1723
|
+
</div>
|
|
1724
|
+
|
|
1725
|
+
<div class="workbench-section">
|
|
1726
|
+
<h4>Tutor Feedback</h4>
|
|
1727
|
+
<pre id="learning-tutor-feedback" class="workbench-feedback">No tutor feedback yet.</pre>
|
|
1728
|
+
</div>
|
|
1729
|
+
|
|
1730
|
+
<div class="workbench-section">
|
|
1731
|
+
<h4>Session Execution</h4>
|
|
1732
|
+
<pre id="learning-session-execution" class="workbench-feedback">No session execution yet.</pre>
|
|
1733
|
+
</div>
|
|
1734
|
+
|
|
1735
|
+
<div class="workbench-section">
|
|
1736
|
+
<h4>Session History</h4>
|
|
1737
|
+
<div class="workbench-row">
|
|
1738
|
+
<label for="learning-history-kind-filter">Kind</label>
|
|
1739
|
+
<select id="learning-history-kind-filter" class="control-select">
|
|
1740
|
+
<option value="all">All</option>
|
|
1741
|
+
<option value="session">Session</option>
|
|
1742
|
+
<option value="retest">Retest</option>
|
|
1743
|
+
<option value="custom">Custom</option>
|
|
1744
|
+
</select>
|
|
1745
|
+
<button id="btn-learning-history-prev" class="btn-small" type="button">Prev</button>
|
|
1746
|
+
<button id="btn-learning-history-next" class="btn-small" type="button">Next</button>
|
|
1747
|
+
<span id="learning-history-page" class="muted">Page 1/1</span>
|
|
1748
|
+
</div>
|
|
1749
|
+
<div class="workbench-row">
|
|
1750
|
+
<label for="learning-history-from-date">From</label>
|
|
1751
|
+
<input id="learning-history-from-date" type="date" class="control-input" />
|
|
1752
|
+
<label for="learning-history-to-date">To</label>
|
|
1753
|
+
<input id="learning-history-to-date" type="date" class="control-input" />
|
|
1754
|
+
<button id="btn-learning-history-apply-range" class="btn-small" type="button">Apply</button>
|
|
1755
|
+
<button id="btn-learning-history-clear-range" class="btn-small" type="button">Clear</button>
|
|
1756
|
+
</div>
|
|
1757
|
+
<div id="learning-session-history-summary" class="workbench-runtime">
|
|
1758
|
+
History summary: unavailable
|
|
1759
|
+
</div>
|
|
1760
|
+
<ul id="learning-session-history" class="workbench-list">
|
|
1761
|
+
<li class="muted">No session history yet.</li>
|
|
1762
|
+
</ul>
|
|
1763
|
+
</div>
|
|
1764
|
+
|
|
1765
|
+
<div id="learning-runtime-summary" class="workbench-runtime">
|
|
1766
|
+
Runtime: unavailable
|
|
1767
|
+
</div>
|
|
1768
|
+
</div>
|
|
1769
|
+
</div>
|
|
1770
|
+
|
|
1399
1771
|
<!-- Node Selector Modal for Diffusion Mode -->
|
|
1400
1772
|
<div id="node-select-modal" class="modal-overlay" style="display: none">
|
|
1401
1773
|
<div class="modal-content" style="max-width: 500px">
|
|
@@ -1431,7 +1803,10 @@
|
|
|
1431
1803
|
|
|
1432
1804
|
<!-- Path Mode Scripts -->
|
|
1433
1805
|
<script src="libs/path_core.js"></script>
|
|
1806
|
+
<script src="path_modules_bridge.js"></script>
|
|
1434
1807
|
<script src="path_app.js"></script>
|
|
1808
|
+
|
|
1809
|
+
<!-- ES Module Entry (Vite dev/build) - loads after legacy scripts for backward compat -->
|
|
1810
|
+
<script type="module" src="./main.mjs"></script>
|
|
1435
1811
|
</body>
|
|
1436
1812
|
</html>
|
|
1437
|
-
|