arcane-os 0.1.0-dev.5

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.
Files changed (248) hide show
  1. package/CHANGELOG.md +154 -0
  2. package/COMMERCIAL-LICENSE.md +13 -0
  3. package/LICENSE +661 -0
  4. package/NOTICE +70 -0
  5. package/README.md +448 -0
  6. package/bin/arcane-test.mjs +741 -0
  7. package/bin/arcane.mjs +5 -0
  8. package/docs/architecture.md +234 -0
  9. package/docs/compatibility.md +36 -0
  10. package/docs/event-manager.md +166 -0
  11. package/docs/platform-targets.md +108 -0
  12. package/docs/publishing.md +203 -0
  13. package/docs/reference/README.md +117 -0
  14. package/docs/reference/arcane-ollama.md +288 -0
  15. package/docs/reference/availability-and-normalization.md +123 -0
  16. package/docs/reference/behavioral-testing.md +86 -0
  17. package/docs/reference/cli.md +569 -0
  18. package/docs/reference/core/README.md +62 -0
  19. package/docs/reference/core/arcane-ai-contracts.md +873 -0
  20. package/docs/reference/core/arcane-api.md +601 -0
  21. package/docs/reference/core/arcane-entities.md +65 -0
  22. package/docs/reference/core/arcane-events.md +134 -0
  23. package/docs/reference/core/ollama-module.md +181 -0
  24. package/docs/reference/core/reference/arcane-api/ai-and-ollama.md +1909 -0
  25. package/docs/reference/core/reference/arcane-api/applications-terminal-capabilities.md +1057 -0
  26. package/docs/reference/core/reference/arcane-api/core-and-events.md +320 -0
  27. package/docs/reference/core/reference/arcane-api/filesystem-storage-preferences-appearance.md +610 -0
  28. package/docs/reference/core/reference/arcane-api/namespaces.md +1157 -0
  29. package/docs/reference/core/reference/arcane-api/platform-installation-users-system.md +1423 -0
  30. package/docs/reference/core/reference/arcane-api/session-provisioning-diagnostics-development.md +315 -0
  31. package/docs/reference/event-manager.md +957 -0
  32. package/docs/reference/inventory/package-api.json +2632 -0
  33. package/docs/reference/inventory/runtime-components.json +934 -0
  34. package/docs/reference/inventory/runtime-entities.json +26 -0
  35. package/docs/reference/inventory/runtime-modules.json +1249 -0
  36. package/docs/reference/protocols.md +242 -0
  37. package/docs/reference/runtime-components.md +1098 -0
  38. package/docs/reference/runtime-entities.md +303 -0
  39. package/docs/reference/runtime-modules.md +2010 -0
  40. package/docs/reference/sdk-api.md +4901 -0
  41. package/docs/roadmap.md +79 -0
  42. package/docs/work-amplification.md +124 -0
  43. package/node_modules/event-pubsub/CHANGELOG.md +55 -0
  44. package/node_modules/event-pubsub/MIGRATION.md +70 -0
  45. package/node_modules/event-pubsub/README.md +363 -0
  46. package/node_modules/event-pubsub/SECURITY.md +37 -0
  47. package/node_modules/event-pubsub/index.js +141 -0
  48. package/node_modules/event-pubsub/licence +21 -0
  49. package/node_modules/event-pubsub/package.json +59 -0
  50. package/node_modules/strong-type/README.md +408 -0
  51. package/node_modules/strong-type/assets/strong-type-header.png +0 -0
  52. package/node_modules/strong-type/index.js +1151 -0
  53. package/node_modules/strong-type/licence +21 -0
  54. package/node_modules/strong-type/node.js +125 -0
  55. package/node_modules/strong-type/package.json +61 -0
  56. package/package.json +95 -0
  57. package/runtime/ARCANE_RUNTIME_RELEASE.json +791 -0
  58. package/runtime/arcane/components/app-bar.html +468 -0
  59. package/runtime/arcane/components/assistant-panel.html +715 -0
  60. package/runtime/arcane/components/calculator.html +8 -0
  61. package/runtime/arcane/components/chart.html +655 -0
  62. package/runtime/arcane/components/chat.html +1225 -0
  63. package/runtime/arcane/components/conversation-view.html +13 -0
  64. package/runtime/arcane/components/dashboard-config.html +341 -0
  65. package/runtime/arcane/components/data-maintenance.html +112 -0
  66. package/runtime/arcane/components/data-view.html +92 -0
  67. package/runtime/arcane/components/directory-picker.html +197 -0
  68. package/runtime/arcane/components/document-inspector.html +252 -0
  69. package/runtime/arcane/components/file-drop.html +264 -0
  70. package/runtime/arcane/components/file-inspector.html +293 -0
  71. package/runtime/arcane/components/file-manager.html +1715 -0
  72. package/runtime/arcane/components/header.html +142 -0
  73. package/runtime/arcane/components/integration-settings.html +14 -0
  74. package/runtime/arcane/components/local-ai-status.html +360 -0
  75. package/runtime/arcane/components/markdown-document.html +1048 -0
  76. package/runtime/arcane/components/markdown-editor.html +360 -0
  77. package/runtime/arcane/components/media-embed.html +8 -0
  78. package/runtime/arcane/components/modal.html +402 -0
  79. package/runtime/arcane/components/output-panel.html +259 -0
  80. package/runtime/arcane/components/preferences-form.html +135 -0
  81. package/runtime/arcane/components/record-timeline.html +105 -0
  82. package/runtime/arcane/components/relationship-board.html +116 -0
  83. package/runtime/arcane/components/screen-capture.html +8 -0
  84. package/runtime/arcane/components/source-code-viewer.html +441 -0
  85. package/runtime/arcane/components/source-explanation.html +124 -0
  86. package/runtime/arcane/components/speech.html +365 -0
  87. package/runtime/arcane/components/summary-strip.html +177 -0
  88. package/runtime/arcane/components/table.html +77 -0
  89. package/runtime/arcane/components/task-progress.html +282 -0
  90. package/runtime/arcane/components/terminal-workspace.html +65 -0
  91. package/runtime/arcane/components/theme-editor.html +41 -0
  92. package/runtime/arcane/components/theme-switcher.html +46 -0
  93. package/runtime/arcane/components/unified-inbox.html +20 -0
  94. package/runtime/arcane/components/voice-transcription.html +476 -0
  95. package/runtime/arcane/components/weather-widget.html +8 -0
  96. package/runtime/arcane/components/web-navigator.html +239 -0
  97. package/runtime/arcane/css/communications.css +1 -0
  98. package/runtime/arcane/css/dashboard-config.css +45 -0
  99. package/runtime/arcane/css/document-site.css +981 -0
  100. package/runtime/arcane/css/layout.css +438 -0
  101. package/runtime/arcane/css/primitives.css +321 -0
  102. package/runtime/arcane/css/theme.css +112 -0
  103. package/runtime/arcane/css/utility-workspace.css +1 -0
  104. package/runtime/arcane/entities/ApiModelRecord.js +20 -0
  105. package/runtime/arcane/entities/Calculation.js +13 -0
  106. package/runtime/arcane/entities/Chat.js +581 -0
  107. package/runtime/arcane/entities/CommunicationMessage.js +29 -0
  108. package/runtime/arcane/entities/CommunicationThread.js +21 -0
  109. package/runtime/arcane/entities/Document.js +10 -0
  110. package/runtime/arcane/entities/File.js +143 -0
  111. package/runtime/arcane/entities/Image.js +135 -0
  112. package/runtime/arcane/entities/IntentEnvelope.js +834 -0
  113. package/runtime/arcane/entities/Preference.js +83 -0
  114. package/runtime/arcane/entities/TWiNPolicyDecision.js +1092 -0
  115. package/runtime/arcane/entities/TerminalSession.js +46 -0
  116. package/runtime/arcane/entities/Theme.js +107 -0
  117. package/runtime/arcane/entities/User.js +1046 -0
  118. package/runtime/arcane/entities/Weather.js +23 -0
  119. package/runtime/arcane/img/arcane-os-everywhere.png +0 -0
  120. package/runtime/arcane/img/arrow-left.png +0 -0
  121. package/runtime/arcane/img/arrow-right.png +0 -0
  122. package/runtime/arcane/img/doc.svg +5 -0
  123. package/runtime/arcane/img/folder.svg +4 -0
  124. package/runtime/arcane/img/image.svg +5 -0
  125. package/runtime/arcane/img/refresh.png +0 -0
  126. package/runtime/arcane/img/send.svg +9 -0
  127. package/runtime/arcane/img/trash.svg +5 -0
  128. package/runtime/arcane/img/upload.svg +5 -0
  129. package/runtime/arcane/modules/AI.js +2048 -0
  130. package/runtime/arcane/modules/AIPreferenceRuntime.js +32 -0
  131. package/runtime/arcane/modules/AIPreferenceTuple.js +92 -0
  132. package/runtime/arcane/modules/AIResponseLength.js +42 -0
  133. package/runtime/arcane/modules/AIResponseURLPolicy.js +626 -0
  134. package/runtime/arcane/modules/AnsiText.js +53 -0
  135. package/runtime/arcane/modules/ApiModelDatabase.js +25 -0
  136. package/runtime/arcane/modules/AppDataScope.js +245 -0
  137. package/runtime/arcane/modules/AppearancePreferences.js +28 -0
  138. package/runtime/arcane/modules/ArcaneCommunicationBridge.js +22 -0
  139. package/runtime/arcane/modules/ArcaneNavigationPolicy.js +135 -0
  140. package/runtime/arcane/modules/ArcaneNetworkPolicy.js +255 -0
  141. package/runtime/arcane/modules/AsyncBoundary.js +161 -0
  142. package/runtime/arcane/modules/BrowserTestSuite.js +326 -0
  143. package/runtime/arcane/modules/CalculatorEngine.js +20 -0
  144. package/runtime/arcane/modules/CaseEvidenceIndexer.js +134 -0
  145. package/runtime/arcane/modules/ChartLibrary.js +35 -0
  146. package/runtime/arcane/modules/ChatRecords.js +13 -0
  147. package/runtime/arcane/modules/CommunicationAppController.js +43 -0
  148. package/runtime/arcane/modules/CommunicationHub.js +16 -0
  149. package/runtime/arcane/modules/CommunicationPreferences.js +13 -0
  150. package/runtime/arcane/modules/CommunicationProviderRegistry.js +16 -0
  151. package/runtime/arcane/modules/ComponentContracts.js +586 -0
  152. package/runtime/arcane/modules/ConfiguredAIChatSession.js +288 -0
  153. package/runtime/arcane/modules/ConversationActionItems.js +488 -0
  154. package/runtime/arcane/modules/ConversationClosingReport.js +274 -0
  155. package/runtime/arcane/modules/ConversationTimebox.js +527 -0
  156. package/runtime/arcane/modules/CoreLocalModelCatalog.js +255 -0
  157. package/runtime/arcane/modules/DBLS.js +171 -0
  158. package/runtime/arcane/modules/DBOPFS.js +1154 -0
  159. package/runtime/arcane/modules/DBOPFSWorker.js +116 -0
  160. package/runtime/arcane/modules/DataMaintenance.js +91 -0
  161. package/runtime/arcane/modules/DevelopmentWorkspace.js +74 -0
  162. package/runtime/arcane/modules/DirectoryPicker.js +109 -0
  163. package/runtime/arcane/modules/DocumentNavigation.js +223 -0
  164. package/runtime/arcane/modules/Errors.js +1025 -0
  165. package/runtime/arcane/modules/GifEncoder.js +29 -0
  166. package/runtime/arcane/modules/HTMLImport.js +114 -0
  167. package/runtime/arcane/modules/InMemoryCommunicationProvider.js +14 -0
  168. package/runtime/arcane/modules/IsolatedModelQuestionRunner.js +275 -0
  169. package/runtime/arcane/modules/LocalAIReadiness.js +870 -0
  170. package/runtime/arcane/modules/LocalAIReadinessController.js +156 -0
  171. package/runtime/arcane/modules/MD.js +111 -0
  172. package/runtime/arcane/modules/Mail.js +352 -0
  173. package/runtime/arcane/modules/MailTransport.mjs +180 -0
  174. package/runtime/arcane/modules/Marked.min.js +71 -0
  175. package/runtime/arcane/modules/MemoryRecords.js +44 -0
  176. package/runtime/arcane/modules/MessageAdvisory.js +38 -0
  177. package/runtime/arcane/modules/ModelDefinition.js +189 -0
  178. package/runtime/arcane/modules/Ollama.js +74 -0
  179. package/runtime/arcane/modules/OllamaModelIdentifier.js +21 -0
  180. package/runtime/arcane/modules/OllamaSettings.js +24 -0
  181. package/runtime/arcane/modules/OpenMeteoWeatherProvider.js +14 -0
  182. package/runtime/arcane/modules/PreferenceStore.js +109 -0
  183. package/runtime/arcane/modules/QRCode.min.js +1 -0
  184. package/runtime/arcane/modules/Questionnaire.js +61 -0
  185. package/runtime/arcane/modules/RecordLinkIndex.js +24 -0
  186. package/runtime/arcane/modules/RecordPassageIndex.js +222 -0
  187. package/runtime/arcane/modules/RecordReviewStore.js +94 -0
  188. package/runtime/arcane/modules/RevocableProjectionLedger.js +1623 -0
  189. package/runtime/arcane/modules/RiskSignalAnalyzer.js +37 -0
  190. package/runtime/arcane/modules/ScamRiskPolicy.js +62 -0
  191. package/runtime/arcane/modules/ScopedOPFSCache.js +183 -0
  192. package/runtime/arcane/modules/ScreenCapture.js +20 -0
  193. package/runtime/arcane/modules/SpeechPlayback.js +581 -0
  194. package/runtime/arcane/modules/StaticDocumentCatalog.js +1248 -0
  195. package/runtime/arcane/modules/SystemAppearance.js +20 -0
  196. package/runtime/arcane/modules/SystemPlatformPresentation.js +51 -0
  197. package/runtime/arcane/modules/SystemToolRegistry.js +28 -0
  198. package/runtime/arcane/modules/TerminalClient.js +52 -0
  199. package/runtime/arcane/modules/TerminalCommandRegistry.js +50 -0
  200. package/runtime/arcane/modules/ThemeBootstrap.js +26 -0
  201. package/runtime/arcane/modules/ThemeManager.js +131 -0
  202. package/runtime/arcane/modules/TimeGuard.js +149 -0
  203. package/runtime/arcane/modules/ToolCallRouter.js +83 -0
  204. package/runtime/arcane/modules/WaitForComponent.js +102 -0
  205. package/runtime/arcane/modules/YouTubeMedia.js +16 -0
  206. package/runtime/arcane/modules/uPlot.LICENSE.txt +21 -0
  207. package/runtime/arcane/modules/uPlot.iife.min.js +2 -0
  208. package/runtime/arcane/modules/uPlot.min.css +1 -0
  209. package/runtime/arcane/security/arcane-network-policy.json +6 -0
  210. package/runtime/strong-type/index.js +352 -0
  211. package/runtime/strong-type/licence +21 -0
  212. package/runtime/strong-type/package.json +45 -0
  213. package/schemas/arcane-app-bundle.schema.json +125 -0
  214. package/schemas/arcane-app.schema.json +329 -0
  215. package/schemas/arcane-lock.schema.json +86 -0
  216. package/schemas/arcane-package.schema.json +224 -0
  217. package/schemas/cli-event.schema.json +122 -0
  218. package/schemas/event-stack.schema.json +152 -0
  219. package/schemas/native-build-plan.schema.json +176 -0
  220. package/schemas/target-adapter.schema.json +117 -0
  221. package/src/app-descriptor.mjs +500 -0
  222. package/src/cli/main.mjs +561 -0
  223. package/src/constants.mjs +31 -0
  224. package/src/dev-server.mjs +718 -0
  225. package/src/doctor.mjs +315 -0
  226. package/src/dom-event-instrumentation.mjs +594 -0
  227. package/src/errors.mjs +75 -0
  228. package/src/event-manager.mjs +1342 -0
  229. package/src/event-queue.mjs +138 -0
  230. package/src/events.mjs +219 -0
  231. package/src/index.mjs +177 -0
  232. package/src/integrated-provider-loader.mjs +432 -0
  233. package/src/native-plan.mjs +698 -0
  234. package/src/native-provider-loader.mjs +1126 -0
  235. package/src/packager/core.mjs +2691 -0
  236. package/src/process.mjs +353 -0
  237. package/src/release-bundle.mjs +2523 -0
  238. package/src/repository.mjs +90 -0
  239. package/src/runtime.mjs +452 -0
  240. package/src/scaffold.mjs +380 -0
  241. package/src/targets/index.mjs +436 -0
  242. package/src/templates/assets/app-icon.png +0 -0
  243. package/src/templates/workspace-template.mjs +388 -0
  244. package/src/testing-loader.mjs +9 -0
  245. package/src/testing.mjs +427 -0
  246. package/src/toolchain.mjs +1335 -0
  247. package/src/update-check.mjs +307 -0
  248. package/src/workspace.mjs +449 -0
@@ -0,0 +1,1098 @@
1
+ # Arcane runtime component catalog
2
+
3
+ Arcane components are reusable HTML fragments loaded through the shared `<html-import>` element. They are browser UI, so they run in an ordinary supported browser renderer and in native Arcane WebViews. They do not run in Node or as cloud services.
4
+
5
+ A component file does not register its own custom element. The `<html-import>` host fetches the fragment from the same origin, attaches an open shadow root, runs its inline scripts with `this` bound to the host, and publishes `html-import-ready` or `html-import-error`. Component methods and properties are attached to that host.
6
+
7
+ ## Basic loading pattern
8
+
9
+ ```html
10
+ <script type="module">
11
+ import '/arcane/modules/HTMLImport.js';
12
+ </script>
13
+
14
+ <html-import id="widget" href="/arcane/components/weather-widget.html"></html-import>
15
+
16
+ <script type="module">
17
+ const widget = document.querySelector('#widget');
18
+ widget.addEventListener('html-import-ready', () => {
19
+ console.log('Component methods are attached.', typeof widget.setWeather);
20
+ }, {once: true});
21
+ </script>
22
+ ```
23
+
24
+ ## Canonical inventory
25
+
26
+ | Component | Capability | Principal methods | Events | Normalization |
27
+ | --- | --- | --- | --- | --- |
28
+ | [`app-bar.html`](#app-barhtml) | Responsive application navigation, route state, status, and trailing actions. | `setNavigation()`<br>`setActiveRoute()`<br>`setStatus()`<br>`refresh()` | `app-bar-ready` | DOM-normalized |
29
+ | [`assistant-panel.html`](#assistant-panelhtml) | Reusable assistant drawer, message area, composer, pending/streaming/empty/error state, and actions. | `open()`<br>`close()`<br>`toggle()`<br>`send()`<br>`clear()`<br>`setState()`<br>`focusComposer()`<br>`scrollToEnd()` | `assistant-ready`<br>`assistant-send`<br>`assistant-clear` | DOM-normalized; caller/provider results remain external |
30
+ | [`calculator.html`](#calculatorhtml) | Calculator keypad and result/error event surface backed by CalculatorEngine. | `calculate()` | `calculator-ready`<br>`calculation-complete`<br>`calculation-error` | Normalized Calculation/error events |
31
+ | [`chart.html`](#charthtml) | Accessible uPlot line, area, or point chart with normalized options and rows. | `configure()`<br>`populate()`<br>`setData()`<br>`addData()`<br>`update()`<br>`destroy()` | `chart-ready`<br>`chart-remove` | Options/rows normalized; uPlot rendering is vendor-native |
32
+ | [`chat.html`](#chathtml) | Shared chat, file upload, streaming, speech, language, availability, and conversation-timebox surface. | `streamMessage()`<br>`setMessageProgress()`<br>`setAIAvailability()`<br>`setInitialSpeechMuted()`<br>`setConversationComplete()`<br>`bindConversationTimebox()`<br>`submitMessage()`<br>`sendMessage()`<br>`languageChanged()` | `chat-ready`<br>`chat-send-message`<br>`chat-send-error`<br>`chat-file-uploaded`<br>`chat-language-changed`<br>`conversation-timebox-error` | UI state normalized; AI/storage/media behavior mixed |
33
+ | [`conversation-view.html`](#conversation-viewhtml) | Provider-neutral conversation display, advisory actions, composer, busy state, and status. | `setConversation()`<br>`setBusy()`<br>`setStatus()`<br>`clearComposer()` | `conversation-view-ready`<br>`communication-send`<br>`communication-advisory-action` | DOM-normalized |
34
+ | [`dashboard-config.html`](#dashboard-confightml) | Selects which normalized chart definitions are visible on a dashboard. | `configure()`<br>`setDefinitions()`<br>`setVisibility()`<br>`getChartOptions()`<br>`getEffectiveVisibility()`<br>`open()`<br>`close()` | `dashboard-config-ready`<br>`dashboard-config-opened`<br>`dashboard-config-closed`<br>`dashboard-config-change` | Fully normalized definitions and visibility |
35
+ | [`data-maintenance.html`](#data-maintenancehtml) | Runs destructive cleanup of empty chats and memories inside the current app data scope. | `open()` | `data-maintenance-ready`<br>`data-maintenance-complete` | Normalized counts; DBOPFS failures mixed |
36
+ | [`data-view.html`](#data-viewhtml) | Opens a generic modal-style data view around an injected provider. | `beforeOpen()`<br>`open()` | `data-view-ready` | DOM-native result |
37
+ | [`directory-picker.html`](#directory-pickerhtml) | Presents the provider-owned OS directory chooser with change/cancel/error states. | `configure()`<br>`focus()`<br>`select()` | `directory-picker-ready`<br>`directory-picker-change`<br>`directory-picker-cancel`<br>`directory-picker-error` | Strict normalized native selection/error |
38
+ | [`document-inspector.html`](#document-inspectorhtml) | Inspects PDF, text, or source documents and records review state. | `loadDocument()`<br>`selectView()`<br>`markSaved()` | `document-inspector-ready`<br>`document-review-change` | Document state normalized; browser document APIs mixed |
39
+ | [`file-drop.html`](#file-drophtml) | Acquires files by drag/drop or picker and presents busy, progress, error, and cleared state. | `configure()`<br>`openPicker()`<br>`clear()`<br>`setBusy()`<br>`setError()`<br>`setProgress()` | `file-drop-ready`<br>`file-drop-selected`<br>`file-drop-progress`<br>`file-drop-state`<br>`file-drop-error` | State normalized; browser File/drop errors mixed |
40
+ | [`file-inspector.html`](#file-inspectorhtml) | Displays file metadata, preview, busy/error state, and caller-defined actions. | `configure()`<br>`show()`<br>`clear()`<br>`setActions()`<br>`setBusy()`<br>`setError()`<br>`setPreview()` | `file-inspector-ready`<br>`file-inspector-action`<br>`file-inspector-change`<br>`file-inspector-cleared`<br>`file-inspector-error` | State normalized; preview/provider behavior mixed |
41
+ | [`file-manager.html`](#file-managerhtml) | Browses, filters, selects, opens, and acts on app-scoped files. | `setProvider()`<br>`loadAll()`<br>`setFilter()`<br>`select()`<br>`clearSelection()` | `file-manager-ready`<br>`file-manager-select`<br>`file-manager-open`<br>`file-manager-action` | Selection/filter state normalized; storage/provider behavior mixed |
42
+ | [`header.html`](#headerhtml) | Legacy title bar with history, reload, online marker, presentation labels, and 988 link. | None | No component-specific event | Browser/platform-native behavior; no component-ready contract |
43
+ | [`integration-settings.html`](#integration-settingshtml) | Edits non-secret communication service configuration and service actions. | `configure()`<br>`getValues()`<br>`setStatus()` | `integration-settings-ready`<br>`integration-settings-save`<br>`integration-settings-close`<br>`integration-action` | Normalized non-secret values |
44
+ | [`local-ai-status.html`](#local-ai-statushtml) | Presents local-AI standby, failure, recovery, guidance, retry, and dismissal states. | `configure()`<br>`begin()`<br>`present(); hidden property` | `local-ai-status-ready`<br>`local-ai-status-dismissed`<br>`local-ai-retry` | Fully normalized LocalAIReadiness report |
45
+ | [`markdown-document.html`](#markdown-documenthtml) | Safely renders and navigates a Markdown document with focusable fragments. | `configure()`<br>`load()`<br>`render()`<br>`clear()`<br>`fail()`<br>`focus()`<br>`focusFragment()` | `markdown-document-ready`<br>`markdown-document-state`<br>`markdown-document-navigate` | State/sanitized output normalized; Marked/DOM failures mixed |
46
+ | [`markdown-editor.html`](#markdown-editorhtml) | Configurable Markdown authoring, toolbar, preview, title, and save surface. | `configure()`<br>`focus()`<br>`clear()`<br>`saveEntry()` | `markdown-editor-ready`<br>`markdown-editor-change`<br>`markdown-editor-saved` | Editor values normalized; injected save result mixed |
47
+ | [`media-embed.html`](#media-embedhtml) | Loads a validated YouTube video or playlist embed and exposes external-platform action. | `configure()`<br>`load()` | `media-embed-ready`<br>`media-load`<br>`media-error`<br>`media-open-platform` | URL/error normalized; iframe/platform behavior native |
48
+ | [`modal.html`](#modalhtml) | Generic modal with population, open/close, actions, and sequential task execution. | `populate()`<br>`open()`<br>`close()`<br>`runTasks()` | `modal-ready`<br>`modal-opened`<br>`modal-closed`<br>`modal-action` | Modal state normalized; injected task results mixed |
49
+ | [`output-panel.html`](#output-panelhtml) | Presents status, output, body, coverage, actions, pending, error, and cleared states. | `configure()`<br>`setOutput()`<br>`setBody()`<br>`setCoverage()`<br>`setActions()`<br>`setPending()`<br>`setStatus()`<br>`setError()`<br>`clear()` | `output-panel-ready`<br>`output-panel-state`<br>`output-panel-change`<br>`output-panel-action`<br>`output-panel-error`<br>`output-panel-cleared` | DOM-normalized |
50
+ | [`preferences-form.html`](#preferences-formhtml) | Builds a schema-driven preferences form with submit, reset, busy, and status behavior. | `configure()`<br>`getValues()`<br>`setValues()`<br>`setBusy()`<br>`setStatus()` | `preferences-form-ready`<br>`preferences-change`<br>`preferences-submit`<br>`preferences-reset` | Normalized form values |
51
+ | [`record-timeline.html`](#record-timelinehtml) | Displays chronological records/evidence and emits open actions. | `setItems()`<br>`populate()` | `record-timeline-ready`<br>`record-timeline-open` | DOM-normalized |
52
+ | [`relationship-board.html`](#relationship-boardhtml) | Displays normalized relationship nodes/edges in graph and list forms. | `setGraph()`<br>`populate()` | `relationship-board-ready`<br>`relationship-node-open`<br>`relationship-edge-open` | DOM-normalized |
53
+ | [`screen-capture.html`](#screen-capturehtml) | Presents image, video, or GIF display-capture workflow. | `capture()` | `screen-capture-ready`<br>`screen-capture-result` | State/result normalized; media permission/codec failures mixed |
54
+ | [`source-code-viewer.html`](#source-code-viewerhtml) | Renders line-addressable source code with load, error, focus, and state behavior. | `configure()`<br>`load()`<br>`render()`<br>`clear()`<br>`fail()`<br>`focus()`<br>`focusLine()` | `source-code-viewer-ready`<br>`source-code-viewer-state` | Normalized source/state |
55
+ | [`source-explanation.html`](#source-explanationhtml) | Presents an evidence finding, source selection, explanation, and save state. | `showFinding()`<br>`populate()`<br>`selectSource()`<br>`markSaved()` | `source-explanation-ready`<br>`source-explanation-save`<br>`source-explanation-source-selected` | DOM-normalized |
56
+ | [`speech.html`](#speechhtml) | Coordinates speech controls, transcription completion, mute state, and microphone availability. | `configure()`<br>`setAvailability()`<br>`setMuted(); availability`<br>`muted`<br>`initialMuted`<br>`componentReady properties` | `speech-ready`<br>`speech-transcription-complete`<br>`speech-microphone-unavailable` | UI state normalized; AI/media behavior mixed |
57
+ | [`summary-strip.html`](#summary-striphtml) | Displays compact selectable KPI or summary items. | `configure()`<br>`setItems()`<br>`updateItem()`<br>`clear()` | `summary-strip-ready`<br>`summary-strip-change`<br>`summary-strip-select` | DOM-normalized |
58
+ | [`table.html`](#tablehtml) | Builds and updates a simple header/body table. | `buildHeader()`<br>`buildTable()` | `table-ready`<br>`header-update`<br>`body-update` | DOM-normalized |
59
+ | [`task-progress.html`](#task-progresshtml) | Runs and displays a task list with started/change/complete/error state. | `configure()`<br>`setTasks()`<br>`updateTask()`<br>`runTasks()`<br>`clear()` | `task-progress-ready`<br>`task-progress-started`<br>`task-progress-change`<br>`task-progress-complete`<br>`task-progress-error` | Task state normalized; injected task results mixed |
60
+ | [`terminal-workspace.html`](#terminal-workspacehtml) | Presents multiple terminal sessions, output, active selection, theme, and terminal actions. | `configure()`<br>`addSession()`<br>`removeSession()`<br>`activateSession()`<br>`append()`<br>`clear()`<br>`setState()`<br>`setTheme()`<br>`focus()` | `terminal-workspace-ready`<br>`terminal-submit`<br>`terminal-interrupt`<br>`terminal-clear`<br>`terminal-session-new`<br>`terminal-session-close`<br>`terminal-session-select`<br>`terminal-settings` | UI/session state normalized; native command results supplied externally |
61
+ | [`theme-editor.html`](#theme-editorhtml) | Edits, previews, saves, and resets semantic custom theme tokens. | `configure()`<br>`getTheme()`<br>`setTheme()`<br>`setBusy()`<br>`setStatus()` | `theme-editor-ready`<br>`theme-preview`<br>`theme-save`<br>`theme-reset` | Fully normalized Theme values |
62
+ | [`theme-switcher.html`](#theme-switcherhtml) | Selects and refreshes system, light, dark, or custom theme mode. | `setMode()`<br>`refresh()` | No component-specific event | Preference/native appearance behavior mixed; no component-ready contract |
63
+ | [`unified-inbox.html`](#unified-inboxhtml) | Displays provider-neutral communication threads with active/loading state. | `configure()`<br>`setThreads()`<br>`setActive()`<br>`setLoading()` | `unified-inbox-ready`<br>`inbox-refresh`<br>`thread-select` | DOM-normalized |
64
+ | [`voice-transcription.html`](#voice-transcriptionhtml) | Records segmented microphone audio, transcribes, persists, and completes a combined transcript. | `configure()`<br>`startRecording()`<br>`stopRecording()`<br>`save()`<br>`completeTranscription()/complete()`<br>`clear()`<br>`reset()`<br>`destroy()` | `voice-transcription-ready`<br>`voice-transcription-state`<br>`voice-transcription-segment`<br>`voice-transcription-change`<br>`voice-transcription-complete`<br>`speech-transcription-complete` | State/text normalized; media/provider behavior mixed |
65
+ | [`weather-widget.html`](#weather-widgethtml) | Displays normalized current and daily weather with refresh intent. | `setWeather()`<br>`clear()` | `weather-widget-ready`<br>`weather-refresh` | Display normalized; provider supplied externally |
66
+ | [`web-navigator.html`](#web-navigatorhtml) | Guards embedded/external navigation and surfaces allow/block/open intents. | `configure()`<br>`navigate()`<br>`currentUrl()` | `web-navigator-ready`<br>`web-navigate`<br>`web-navigation-blocked`<br>`web-open-external` | Navigation intent/decision normalized; browser navigation result platform-native |
67
+
68
+ ## app-bar.html
69
+
70
+ ### Overview
71
+
72
+ Responsive application navigation, route state, status, and trailing actions.
73
+
74
+ ### Public surface
75
+
76
+ Methods/properties: `setNavigation()`, `setActiveRoute()`, `setStatus()`, `refresh()`.
77
+
78
+ Events: `app-bar-ready`.
79
+
80
+ Slots: `brand-mark`, `product-name`, `navigation`, `status`, `trailing`.
81
+
82
+ ### Availability and normalization
83
+
84
+ **Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
85
+
86
+ ### Example
87
+
88
+ ```html
89
+ <html-import
90
+ id="app-bar.html"
91
+ href="/arcane/components/app-bar.html">
92
+ </html-import>
93
+ ```
94
+
95
+ ## assistant-panel.html
96
+
97
+ ### Overview
98
+
99
+ Reusable assistant drawer, message area, composer, pending/streaming/empty/error state, and actions.
100
+
101
+ ### Public surface
102
+
103
+ Methods/properties: `open()`, `close()`, `toggle()`, `send()`, `clear()`, `setState()`, `focusComposer()`, `scrollToEnd()`.
104
+
105
+ Events: `assistant-ready`, `assistant-send`, `assistant-clear`.
106
+
107
+ Slots: `title`, `subtitle`, `identity`, `messages/message`, `composer`, `actions`, `pending`, `streaming`, `empty`, `error`, `footer`.
108
+
109
+ ### Availability and normalization
110
+
111
+ **Browser and supported native WebViews.** DOM-normalized; caller/provider results remain external. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
112
+
113
+ ### Example
114
+
115
+ ```html
116
+ <html-import
117
+ id="assistant-panel.html"
118
+ href="/arcane/components/assistant-panel.html">
119
+ </html-import>
120
+ ```
121
+
122
+ ## calculator.html
123
+
124
+ ### Overview
125
+
126
+ Calculator keypad and result/error event surface backed by CalculatorEngine.
127
+
128
+ ### Public surface
129
+
130
+ Methods/properties: `calculate()`.
131
+
132
+ Events: `calculator-ready`, `calculation-complete`, `calculation-error`.
133
+
134
+ Shared dependencies: [`CalculatorEngine.js`](runtime-modules.md#calculatorenginejs).
135
+
136
+ ### Availability and normalization
137
+
138
+ **Browser and supported native WebViews.** Normalized Calculation/error events. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
139
+
140
+ ### Example
141
+
142
+ ```html
143
+ <html-import
144
+ id="calculator.html"
145
+ href="/arcane/components/calculator.html">
146
+ </html-import>
147
+ ```
148
+
149
+ ## chart.html
150
+
151
+ ### Overview
152
+
153
+ Accessible uPlot line, area, or point chart with normalized options and rows.
154
+
155
+ ### Public surface
156
+
157
+ Methods/properties: `configure()`, `populate()`, `setData()`, `addData()`, `update()`, `destroy()`.
158
+
159
+ Events: `chart-ready`, `chart-remove`.
160
+
161
+ Shared dependencies: [`ChartLibrary.js`](runtime-modules.md#chartlibraryjs), [`ComponentContracts.js`](runtime-modules.md#componentcontractsjs).
162
+
163
+ ### Availability and normalization
164
+
165
+ **Browser and supported native WebViews.** Options/rows normalized; uPlot rendering is vendor-native. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
166
+
167
+ ### Example
168
+
169
+ ```html
170
+ <html-import
171
+ id="chart.html"
172
+ href="/arcane/components/chart.html">
173
+ </html-import>
174
+ ```
175
+
176
+ ## chat.html
177
+
178
+ ### Overview
179
+
180
+ Shared chat, file upload, streaming, speech, language, availability, and conversation-timebox surface.
181
+
182
+ ### Public surface
183
+
184
+ Methods/properties: `streamMessage()`, `setMessageProgress()`, `setAIAvailability()`, `setInitialSpeechMuted()`, `setConversationComplete()`, `bindConversationTimebox()`, `submitMessage()`, `sendMessage()`, `languageChanged()`.
185
+
186
+ `sendMessage(text)` and `languageChanged(text)` are host-overridable async
187
+ extension callbacks. The component installs warning-only defaults when the host
188
+ does not supply them; applications may instead consume the corresponding
189
+ `chat-send-message` and `chat-language-changed` events.
190
+
191
+ Events: `chat-ready`, `chat-send-message`, `chat-send-error`, `chat-file-uploaded`, `chat-language-changed`, `conversation-timebox-error`.
192
+
193
+ Shared dependencies: [`MD.js`](runtime-modules.md#mdjs), [`File.js`](runtime-entities.md#filejs), [`ConversationTimebox.js`](runtime-modules.md#conversationtimeboxjs).
194
+
195
+ ### Availability and normalization
196
+
197
+ **Browser and supported native WebViews.** UI state normalized; AI/storage/media behavior mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
198
+
199
+ ### Example
200
+
201
+ ```html
202
+ <html-import
203
+ id="chat.html"
204
+ href="/arcane/components/chat.html">
205
+ </html-import>
206
+ ```
207
+
208
+ ## conversation-view.html
209
+
210
+ ### Overview
211
+
212
+ Provider-neutral conversation display, advisory actions, composer, busy state, and status.
213
+
214
+ ### Public surface
215
+
216
+ Methods/properties: `setConversation()`, `setBusy()`, `setStatus()`, `clearComposer()`.
217
+
218
+ Events: `conversation-view-ready`, `communication-send`, `communication-advisory-action`.
219
+
220
+ ### Availability and normalization
221
+
222
+ **Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
223
+
224
+ ### Example
225
+
226
+ ```html
227
+ <html-import
228
+ id="conversation-view.html"
229
+ href="/arcane/components/conversation-view.html">
230
+ </html-import>
231
+ ```
232
+
233
+ ## dashboard-config.html
234
+
235
+ ### Overview
236
+
237
+ Selects which normalized chart definitions are visible on a dashboard.
238
+
239
+ ### Public surface
240
+
241
+ Methods/properties: `configure()`, `setDefinitions()`, `setVisibility()`, `getChartOptions()`, `getEffectiveVisibility()`, `open()`, `close()`.
242
+
243
+ Events: `dashboard-config-ready`, `dashboard-config-opened`, `dashboard-config-closed`, `dashboard-config-change`.
244
+
245
+ Shared dependencies: [`ComponentContracts.js`](runtime-modules.md#componentcontractsjs), [`WaitForComponent.js`](runtime-modules.md#waitforcomponentjs).
246
+
247
+ ### Availability and normalization
248
+
249
+ **Browser and supported native WebViews.** Fully normalized definitions and visibility. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
250
+
251
+ ### Example
252
+
253
+ ```html
254
+ <html-import
255
+ id="dashboard-config.html"
256
+ href="/arcane/components/dashboard-config.html">
257
+ </html-import>
258
+ ```
259
+
260
+ ## data-maintenance.html
261
+
262
+ ### Overview
263
+
264
+ Runs destructive cleanup of empty chats and memories inside the current app data scope.
265
+
266
+ ### Public surface
267
+
268
+ Methods/properties: `open()`.
269
+
270
+ Events: `data-maintenance-ready`, `data-maintenance-complete`.
271
+
272
+ Shared dependencies: [`DataMaintenance.js`](runtime-modules.md#datamaintenancejs), [`WaitForComponent.js`](runtime-modules.md#waitforcomponentjs).
273
+
274
+ ### Availability and normalization
275
+
276
+ **Browser and supported native WebViews.** Normalized counts; DBOPFS failures mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
277
+
278
+ ### Example
279
+
280
+ ```html
281
+ <html-import
282
+ id="data-maintenance.html"
283
+ href="/arcane/components/data-maintenance.html">
284
+ </html-import>
285
+ ```
286
+
287
+ ## data-view.html
288
+
289
+ ### Overview
290
+
291
+ Opens a generic modal-style data view around an injected provider.
292
+
293
+ ### Public surface
294
+
295
+ Methods/properties: `beforeOpen()`, `open()`.
296
+
297
+ Events: `data-view-ready`.
298
+
299
+ Shared dependencies: [`WaitForComponent.js`](runtime-modules.md#waitforcomponentjs).
300
+
301
+ ### Availability and normalization
302
+
303
+ **Browser and supported native WebViews.** DOM-native result. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
304
+
305
+ ### Example
306
+
307
+ ```html
308
+ <html-import
309
+ id="data-view.html"
310
+ href="/arcane/components/data-view.html">
311
+ </html-import>
312
+ ```
313
+
314
+ ## directory-picker.html
315
+
316
+ ### Overview
317
+
318
+ Presents the provider-owned OS directory chooser with change/cancel/error states.
319
+
320
+ ### Public surface
321
+
322
+ Methods/properties: `configure()`, `focus()`, `select()`.
323
+
324
+ Events: `directory-picker-ready`, `directory-picker-change`, `directory-picker-cancel`, `directory-picker-error`.
325
+
326
+ Shared dependencies: [`DirectoryPicker.js`](runtime-modules.md#directorypickerjs).
327
+
328
+ ### Availability and normalization
329
+
330
+ **Browser and supported native WebViews.** Strict normalized native selection/error. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
331
+
332
+ ### Example
333
+
334
+ ```html
335
+ <html-import
336
+ id="directory-picker.html"
337
+ href="/arcane/components/directory-picker.html">
338
+ </html-import>
339
+ ```
340
+
341
+ ## document-inspector.html
342
+
343
+ ### Overview
344
+
345
+ Inspects PDF, text, or source documents and records review state.
346
+
347
+ ### Public surface
348
+
349
+ Methods/properties: `loadDocument()`, `selectView()`, `markSaved()`.
350
+
351
+ Events: `document-inspector-ready`, `document-review-change`.
352
+
353
+ Shared dependencies: [`MD.js`](runtime-modules.md#mdjs).
354
+
355
+ ### Availability and normalization
356
+
357
+ **Browser and supported native WebViews.** Document state normalized; browser document APIs mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
358
+
359
+ ### Example
360
+
361
+ ```html
362
+ <html-import
363
+ id="document-inspector.html"
364
+ href="/arcane/components/document-inspector.html">
365
+ </html-import>
366
+ ```
367
+
368
+ ## file-drop.html
369
+
370
+ ### Overview
371
+
372
+ Acquires files by drag/drop or picker and presents busy, progress, error, and cleared state.
373
+
374
+ ### Public surface
375
+
376
+ Methods/properties: `configure()`, `openPicker()`, `clear()`, `setBusy()`, `setError()`, `setProgress()`.
377
+
378
+ Events: `file-drop-ready`, `file-drop-selected`, `file-drop-progress`, `file-drop-state`, `file-drop-error`.
379
+
380
+ ### Availability and normalization
381
+
382
+ **Browser and supported native WebViews.** State normalized; browser File/drop errors mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
383
+
384
+ ### Example
385
+
386
+ ```html
387
+ <html-import
388
+ id="file-drop.html"
389
+ href="/arcane/components/file-drop.html">
390
+ </html-import>
391
+ ```
392
+
393
+ ## file-inspector.html
394
+
395
+ ### Overview
396
+
397
+ Displays file metadata, preview, busy/error state, and caller-defined actions.
398
+
399
+ ### Public surface
400
+
401
+ Methods/properties: `configure()`, `show()`, `clear()`, `setActions()`, `setBusy()`, `setError()`, `setPreview()`.
402
+
403
+ Events: `file-inspector-ready`, `file-inspector-action`, `file-inspector-change`, `file-inspector-cleared`, `file-inspector-error`.
404
+
405
+ Slots: `title`, `preview`, `metadata`, `actions`.
406
+
407
+ ### Availability and normalization
408
+
409
+ **Browser and supported native WebViews.** State normalized; preview/provider behavior mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
410
+
411
+ ### Example
412
+
413
+ ```html
414
+ <html-import
415
+ id="file-inspector.html"
416
+ href="/arcane/components/file-inspector.html">
417
+ </html-import>
418
+ ```
419
+
420
+ ## file-manager.html
421
+
422
+ ### Overview
423
+
424
+ Browses, filters, selects, opens, and acts on app-scoped files.
425
+
426
+ ### Public surface
427
+
428
+ Methods/properties: `setProvider()`, `loadAll()`, `setFilter()`, `select()`, `clearSelection()`.
429
+
430
+ Events: `file-manager-ready`, `file-manager-select`, `file-manager-open`, `file-manager-action`.
431
+
432
+ Shared dependencies: [`DBOPFS.js`](runtime-modules.md#dbopfsjs), [`File.js`](runtime-entities.md#filejs), [`WaitForComponent.js`](runtime-modules.md#waitforcomponentjs).
433
+
434
+ ### Availability and normalization
435
+
436
+ **Browser and supported native WebViews.** Selection/filter state normalized; storage/provider behavior mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
437
+
438
+ ### Example
439
+
440
+ ```html
441
+ <html-import
442
+ id="file-manager.html"
443
+ href="/arcane/components/file-manager.html">
444
+ </html-import>
445
+ ```
446
+
447
+ ## header.html
448
+
449
+ ### Overview
450
+
451
+ Legacy title bar with history, reload, online marker, presentation labels, and 988 link.
452
+
453
+ ### Public surface
454
+
455
+ This fragment declares no public host method.
456
+
457
+ This fragment declares no component-specific readiness or action event; use the loader's `html-import-ready` only to know that import execution completed.
458
+
459
+ ### Availability and normalization
460
+
461
+ **Browser and supported native WebViews.** Browser/platform-native behavior; no component-ready contract. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
462
+
463
+ ### Example
464
+
465
+ ```html
466
+ <html-import
467
+ id="header.html"
468
+ href="/arcane/components/header.html">
469
+ </html-import>
470
+ ```
471
+
472
+ ## integration-settings.html
473
+
474
+ ### Overview
475
+
476
+ Edits non-secret communication service configuration and service actions.
477
+
478
+ ### Public surface
479
+
480
+ Methods/properties: `configure()`, `getValues()`, `setStatus()`.
481
+
482
+ Events: `integration-settings-ready`, `integration-settings-save`, `integration-settings-close`, `integration-action`.
483
+
484
+ ### Availability and normalization
485
+
486
+ **Browser and supported native WebViews.** Normalized non-secret values. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
487
+
488
+ ### Example
489
+
490
+ ```html
491
+ <html-import
492
+ id="integration-settings.html"
493
+ href="/arcane/components/integration-settings.html">
494
+ </html-import>
495
+ ```
496
+
497
+ ## local-ai-status.html
498
+
499
+ ### Overview
500
+
501
+ Presents local-AI standby, failure, recovery, guidance, retry, and dismissal states.
502
+
503
+ ### Public surface
504
+
505
+ Methods/properties: `configure()`, `begin()`, `present(); hidden property`.
506
+
507
+ Events: `local-ai-status-ready`, `local-ai-status-dismissed`, `local-ai-retry`.
508
+
509
+ Shared dependencies: [`LocalAIReadiness.js`](runtime-modules.md#localaireadinessjs).
510
+
511
+ ### Availability and normalization
512
+
513
+ **Browser and supported native WebViews.** Fully normalized LocalAIReadiness report. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
514
+
515
+ ### Example
516
+
517
+ ```html
518
+ <html-import
519
+ id="local-ai-status.html"
520
+ href="/arcane/components/local-ai-status.html">
521
+ </html-import>
522
+ ```
523
+
524
+ ## markdown-document.html
525
+
526
+ ### Overview
527
+
528
+ Safely renders and navigates a Markdown document with focusable fragments.
529
+
530
+ ### Public surface
531
+
532
+ Methods/properties: `configure()`, `load()`, `render()`, `clear()`, `fail()`, `focus()`, `focusFragment()`.
533
+
534
+ Events: `markdown-document-ready`, `markdown-document-state`, `markdown-document-navigate`.
535
+
536
+ Shared dependencies: [`MD.js`](runtime-modules.md#mdjs).
537
+
538
+ ### Availability and normalization
539
+
540
+ **Browser and supported native WebViews.** State/sanitized output normalized; Marked/DOM failures mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
541
+
542
+ ### Example
543
+
544
+ ```html
545
+ <html-import
546
+ id="markdown-document.html"
547
+ href="/arcane/components/markdown-document.html">
548
+ </html-import>
549
+ ```
550
+
551
+ ## markdown-editor.html
552
+
553
+ ### Overview
554
+
555
+ Configurable Markdown authoring, toolbar, preview, title, and save surface.
556
+
557
+ ### Public surface
558
+
559
+ Methods/properties: `configure()`, `focus()`, `clear()`, `saveEntry()`.
560
+
561
+ Events: `markdown-editor-ready`, `markdown-editor-change`, `markdown-editor-saved`.
562
+
563
+ Shared dependencies: [`MD.js`](runtime-modules.md#mdjs), [`ComponentContracts.js`](runtime-modules.md#componentcontractsjs).
564
+
565
+ ### Availability and normalization
566
+
567
+ **Browser and supported native WebViews.** Editor values normalized; injected save result mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
568
+
569
+ ### Example
570
+
571
+ ```html
572
+ <html-import
573
+ id="markdown-editor.html"
574
+ href="/arcane/components/markdown-editor.html">
575
+ </html-import>
576
+ ```
577
+
578
+ ## media-embed.html
579
+
580
+ ### Overview
581
+
582
+ Loads a validated YouTube video or playlist embed and exposes external-platform action.
583
+
584
+ ### Public surface
585
+
586
+ Methods/properties: `configure()`, `load()`.
587
+
588
+ Events: `media-embed-ready`, `media-load`, `media-error`, `media-open-platform`.
589
+
590
+ Shared dependencies: [`YouTubeMedia.js`](runtime-modules.md#youtubemediajs).
591
+
592
+ ### Availability and normalization
593
+
594
+ **Browser and supported native WebViews.** URL/error normalized; iframe/platform behavior native. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
595
+
596
+ ### Example
597
+
598
+ ```html
599
+ <html-import
600
+ id="media-embed.html"
601
+ href="/arcane/components/media-embed.html">
602
+ </html-import>
603
+ ```
604
+
605
+ ## modal.html
606
+
607
+ ### Overview
608
+
609
+ Generic modal with population, open/close, actions, and sequential task execution.
610
+
611
+ ### Public surface
612
+
613
+ Methods/properties: `populate()`, `open()`, `close()`, `runTasks()`.
614
+
615
+ Events: `modal-ready`, `modal-opened`, `modal-closed`, `modal-action`.
616
+
617
+ Slots: `header`, `body`, `footer`.
618
+
619
+ ### Availability and normalization
620
+
621
+ **Browser and supported native WebViews.** Modal state normalized; injected task results mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
622
+
623
+ ### Example
624
+
625
+ ```html
626
+ <html-import
627
+ id="modal.html"
628
+ href="/arcane/components/modal.html">
629
+ </html-import>
630
+ ```
631
+
632
+ ## output-panel.html
633
+
634
+ ### Overview
635
+
636
+ Presents status, output, body, coverage, actions, pending, error, and cleared states.
637
+
638
+ ### Public surface
639
+
640
+ Methods/properties: `configure()`, `setOutput()`, `setBody()`, `setCoverage()`, `setActions()`, `setPending()`, `setStatus()`, `setError()`, `clear()`.
641
+
642
+ Events: `output-panel-ready`, `output-panel-state`, `output-panel-change`, `output-panel-action`, `output-panel-error`, `output-panel-cleared`.
643
+
644
+ Slots: `title`, `header-actions`, `body`, `coverage`, `actions`.
645
+
646
+ ### Availability and normalization
647
+
648
+ **Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
649
+
650
+ ### Example
651
+
652
+ ```html
653
+ <html-import
654
+ id="output-panel.html"
655
+ href="/arcane/components/output-panel.html">
656
+ </html-import>
657
+ ```
658
+
659
+ ## preferences-form.html
660
+
661
+ ### Overview
662
+
663
+ Builds a schema-driven preferences form with submit, reset, busy, and status behavior.
664
+
665
+ ### Public surface
666
+
667
+ Methods/properties: `configure()`, `getValues()`, `setValues()`, `setBusy()`, `setStatus()`.
668
+
669
+ Events: `preferences-form-ready`, `preferences-change`, `preferences-submit`, `preferences-reset`.
670
+
671
+ ### Availability and normalization
672
+
673
+ **Browser and supported native WebViews.** Normalized form values. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
674
+
675
+ ### Example
676
+
677
+ ```html
678
+ <html-import
679
+ id="preferences-form.html"
680
+ href="/arcane/components/preferences-form.html">
681
+ </html-import>
682
+ ```
683
+
684
+ ## record-timeline.html
685
+
686
+ ### Overview
687
+
688
+ Displays chronological records/evidence and emits open actions.
689
+
690
+ ### Public surface
691
+
692
+ Methods/properties: `setItems()`, `populate()`.
693
+
694
+ Events: `record-timeline-ready`, `record-timeline-open`.
695
+
696
+ ### Availability and normalization
697
+
698
+ **Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
699
+
700
+ ### Example
701
+
702
+ ```html
703
+ <html-import
704
+ id="record-timeline.html"
705
+ href="/arcane/components/record-timeline.html">
706
+ </html-import>
707
+ ```
708
+
709
+ ## relationship-board.html
710
+
711
+ ### Overview
712
+
713
+ Displays normalized relationship nodes/edges in graph and list forms.
714
+
715
+ ### Public surface
716
+
717
+ Methods/properties: `setGraph()`, `populate()`.
718
+
719
+ Events: `relationship-board-ready`, `relationship-node-open`, `relationship-edge-open`.
720
+
721
+ ### Availability and normalization
722
+
723
+ **Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
724
+
725
+ ### Example
726
+
727
+ ```html
728
+ <html-import
729
+ id="relationship-board.html"
730
+ href="/arcane/components/relationship-board.html">
731
+ </html-import>
732
+ ```
733
+
734
+ ## screen-capture.html
735
+
736
+ ### Overview
737
+
738
+ Presents image, video, or GIF display-capture workflow.
739
+
740
+ ### Public surface
741
+
742
+ Methods/properties: `capture()`.
743
+
744
+ Events: `screen-capture-ready`, `screen-capture-result`.
745
+
746
+ Shared dependencies: [`ScreenCapture.js`](runtime-modules.md#screencapturejs).
747
+
748
+ ### Availability and normalization
749
+
750
+ **Browser and supported native WebViews.** State/result normalized; media permission/codec failures mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
751
+
752
+ ### Example
753
+
754
+ ```html
755
+ <html-import
756
+ id="screen-capture.html"
757
+ href="/arcane/components/screen-capture.html">
758
+ </html-import>
759
+ ```
760
+
761
+ ## source-code-viewer.html
762
+
763
+ ### Overview
764
+
765
+ Renders line-addressable source code with load, error, focus, and state behavior.
766
+
767
+ ### Public surface
768
+
769
+ Methods/properties: `configure()`, `load()`, `render()`, `clear()`, `fail()`, `focus()`, `focusLine()`.
770
+
771
+ Events: `source-code-viewer-ready`, `source-code-viewer-state`.
772
+
773
+ ### Availability and normalization
774
+
775
+ **Browser and supported native WebViews.** Normalized source/state. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
776
+
777
+ ### Example
778
+
779
+ ```html
780
+ <html-import
781
+ id="source-code-viewer.html"
782
+ href="/arcane/components/source-code-viewer.html">
783
+ </html-import>
784
+ ```
785
+
786
+ ## source-explanation.html
787
+
788
+ ### Overview
789
+
790
+ Presents an evidence finding, source selection, explanation, and save state.
791
+
792
+ ### Public surface
793
+
794
+ Methods/properties: `showFinding()`, `populate()`, `selectSource()`, `markSaved()`.
795
+
796
+ Events: `source-explanation-ready`, `source-explanation-save`, `source-explanation-source-selected`.
797
+
798
+ ### Availability and normalization
799
+
800
+ **Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
801
+
802
+ ### Example
803
+
804
+ ```html
805
+ <html-import
806
+ id="source-explanation.html"
807
+ href="/arcane/components/source-explanation.html">
808
+ </html-import>
809
+ ```
810
+
811
+ ## speech.html
812
+
813
+ ### Overview
814
+
815
+ Coordinates speech controls, transcription completion, mute state, and microphone availability.
816
+
817
+ ### Public surface
818
+
819
+ Methods/properties: `configure()`, `setAvailability()`, `setMuted(); availability`, `muted`, `initialMuted`, `componentReady properties`.
820
+
821
+ Events: `speech-ready`, `speech-transcription-complete`, `speech-microphone-unavailable`.
822
+
823
+ Shared dependencies: [`AI.js`](runtime-modules.md#aijs), [`DBLS.js`](runtime-modules.md#dblsjs).
824
+
825
+ ### Availability and normalization
826
+
827
+ **Browser and supported native WebViews.** UI state normalized; AI/media behavior mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
828
+
829
+ ### Example
830
+
831
+ ```html
832
+ <html-import
833
+ id="speech.html"
834
+ href="/arcane/components/speech.html">
835
+ </html-import>
836
+ ```
837
+
838
+ ## summary-strip.html
839
+
840
+ ### Overview
841
+
842
+ Displays compact selectable KPI or summary items.
843
+
844
+ ### Public surface
845
+
846
+ Methods/properties: `configure()`, `setItems()`, `updateItem()`, `clear()`.
847
+
848
+ Events: `summary-strip-ready`, `summary-strip-change`, `summary-strip-select`.
849
+
850
+ ### Availability and normalization
851
+
852
+ **Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
853
+
854
+ ### Example
855
+
856
+ ```html
857
+ <html-import
858
+ id="summary-strip.html"
859
+ href="/arcane/components/summary-strip.html">
860
+ </html-import>
861
+ ```
862
+
863
+ ## table.html
864
+
865
+ ### Overview
866
+
867
+ Builds and updates a simple header/body table.
868
+
869
+ ### Public surface
870
+
871
+ Methods/properties: `buildHeader()`, `buildTable()`.
872
+
873
+ Events: `table-ready`, `header-update`, `body-update`.
874
+
875
+ ### Availability and normalization
876
+
877
+ **Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
878
+
879
+ ### Example
880
+
881
+ ```html
882
+ <html-import
883
+ id="table.html"
884
+ href="/arcane/components/table.html">
885
+ </html-import>
886
+ ```
887
+
888
+ ## task-progress.html
889
+
890
+ ### Overview
891
+
892
+ Runs and displays a task list with started/change/complete/error state.
893
+
894
+ ### Public surface
895
+
896
+ Methods/properties: `configure()`, `setTasks()`, `updateTask()`, `runTasks()`, `clear()`.
897
+
898
+ Events: `task-progress-ready`, `task-progress-started`, `task-progress-change`, `task-progress-complete`, `task-progress-error`.
899
+
900
+ ### Availability and normalization
901
+
902
+ **Browser and supported native WebViews.** Task state normalized; injected task results mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
903
+
904
+ ### Example
905
+
906
+ ```html
907
+ <html-import
908
+ id="task-progress.html"
909
+ href="/arcane/components/task-progress.html">
910
+ </html-import>
911
+ ```
912
+
913
+ ## terminal-workspace.html
914
+
915
+ ### Overview
916
+
917
+ Presents multiple terminal sessions, output, active selection, theme, and terminal actions.
918
+
919
+ ### Public surface
920
+
921
+ Methods/properties: `configure()`, `addSession()`, `removeSession()`, `activateSession()`, `append()`, `clear()`, `setState()`, `setTheme()`, `focus()`.
922
+
923
+ Events: `terminal-workspace-ready`, `terminal-submit`, `terminal-interrupt`, `terminal-clear`, `terminal-session-new`, `terminal-session-close`, `terminal-session-select`, `terminal-settings`.
924
+
925
+ Shared dependencies: [`AnsiText.js`](runtime-modules.md#ansitextjs).
926
+
927
+ ### Availability and normalization
928
+
929
+ **Browser and supported native WebViews.** UI/session state normalized; native command results supplied externally. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
930
+
931
+ ### Example
932
+
933
+ ```html
934
+ <html-import
935
+ id="terminal-workspace.html"
936
+ href="/arcane/components/terminal-workspace.html">
937
+ </html-import>
938
+ ```
939
+
940
+ ## theme-editor.html
941
+
942
+ ### Overview
943
+
944
+ Edits, previews, saves, and resets semantic custom theme tokens.
945
+
946
+ ### Public surface
947
+
948
+ Methods/properties: `configure()`, `getTheme()`, `setTheme()`, `setBusy()`, `setStatus()`.
949
+
950
+ Events: `theme-editor-ready`, `theme-preview`, `theme-save`, `theme-reset`.
951
+
952
+ Shared dependencies: [`Theme.js`](runtime-entities.md#themejs).
953
+
954
+ ### Availability and normalization
955
+
956
+ **Browser and supported native WebViews.** Fully normalized Theme values. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
957
+
958
+ ### Example
959
+
960
+ ```html
961
+ <html-import
962
+ id="theme-editor.html"
963
+ href="/arcane/components/theme-editor.html">
964
+ </html-import>
965
+ ```
966
+
967
+ ## theme-switcher.html
968
+
969
+ ### Overview
970
+
971
+ Selects and refreshes system, light, dark, or custom theme mode.
972
+
973
+ ### Public surface
974
+
975
+ Methods/properties: `setMode()`, `refresh()`.
976
+
977
+ This fragment declares no component-specific readiness or action event; use the loader's `html-import-ready` only to know that import execution completed.
978
+
979
+ Shared dependencies: [`ThemeManager.js`](runtime-modules.md#thememanagerjs).
980
+
981
+ ### Availability and normalization
982
+
983
+ **Browser and supported native WebViews.** Preference/native appearance behavior mixed; no component-ready contract. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
984
+
985
+ ### Example
986
+
987
+ ```html
988
+ <html-import
989
+ id="theme-switcher.html"
990
+ href="/arcane/components/theme-switcher.html">
991
+ </html-import>
992
+ ```
993
+
994
+ ## unified-inbox.html
995
+
996
+ ### Overview
997
+
998
+ Displays provider-neutral communication threads with active/loading state.
999
+
1000
+ ### Public surface
1001
+
1002
+ Methods/properties: `configure()`, `setThreads()`, `setActive()`, `setLoading()`.
1003
+
1004
+ Events: `unified-inbox-ready`, `inbox-refresh`, `thread-select`.
1005
+
1006
+ ### Availability and normalization
1007
+
1008
+ **Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
1009
+
1010
+ ### Example
1011
+
1012
+ ```html
1013
+ <html-import
1014
+ id="unified-inbox.html"
1015
+ href="/arcane/components/unified-inbox.html">
1016
+ </html-import>
1017
+ ```
1018
+
1019
+ ## voice-transcription.html
1020
+
1021
+ ### Overview
1022
+
1023
+ Records segmented microphone audio, transcribes, persists, and completes a combined transcript.
1024
+
1025
+ ### Public surface
1026
+
1027
+ Methods/properties: `configure()`, `startRecording()`, `stopRecording()`, `save()`, `completeTranscription()/complete()`, `clear()`, `reset()`, `destroy()`.
1028
+
1029
+ Events: `voice-transcription-ready`, `voice-transcription-state`, `voice-transcription-segment`, `voice-transcription-change`, `voice-transcription-complete`, `speech-transcription-complete`.
1030
+
1031
+ Shared dependencies: [`MD.js`](runtime-modules.md#mdjs), [`ComponentContracts.js`](runtime-modules.md#componentcontractsjs), [`AI.js`](runtime-modules.md#aijs).
1032
+
1033
+ ### Availability and normalization
1034
+
1035
+ **Browser and supported native WebViews.** State/text normalized; media/provider behavior mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
1036
+
1037
+ ### Example
1038
+
1039
+ ```html
1040
+ <html-import
1041
+ id="voice-transcription.html"
1042
+ href="/arcane/components/voice-transcription.html">
1043
+ </html-import>
1044
+ ```
1045
+
1046
+ ## weather-widget.html
1047
+
1048
+ ### Overview
1049
+
1050
+ Displays normalized current and daily weather with refresh intent.
1051
+
1052
+ ### Public surface
1053
+
1054
+ Methods/properties: `setWeather()`, `clear()`.
1055
+
1056
+ Events: `weather-widget-ready`, `weather-refresh`.
1057
+
1058
+ ### Availability and normalization
1059
+
1060
+ **Browser and supported native WebViews.** Display normalized; provider supplied externally. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
1061
+
1062
+ ### Example
1063
+
1064
+ ```html
1065
+ <html-import
1066
+ id="weather-widget.html"
1067
+ href="/arcane/components/weather-widget.html">
1068
+ </html-import>
1069
+ ```
1070
+
1071
+ ## web-navigator.html
1072
+
1073
+ ### Overview
1074
+
1075
+ Guards embedded/external navigation and surfaces allow/block/open intents.
1076
+
1077
+ ### Public surface
1078
+
1079
+ Methods/properties: `configure()`, `navigate()`, `currentUrl()`.
1080
+
1081
+ Events: `web-navigator-ready`, `web-navigate`, `web-navigation-blocked`, `web-open-external`.
1082
+
1083
+ ### Availability and normalization
1084
+
1085
+ **Browser and supported native WebViews.** Navigation intent/decision normalized; browser navigation result platform-native. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
1086
+
1087
+ ### Example
1088
+
1089
+ ```html
1090
+ <html-import
1091
+ id="web-navigator.html"
1092
+ href="/arcane/components/web-navigator.html">
1093
+ </html-import>
1094
+ ```
1095
+
1096
+ ## Readiness caveats
1097
+
1098
+ `header.html` and `theme-switcher.html` do not currently publish a component-specific ready event/property. Consumers can observe `html-import-ready` for completed fragment execution and then feature-detect their methods. Other fragments publish the exact ready event listed above.