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,569 @@
1
+ # Arcane CLI reference
2
+
3
+ The `arcane` and `arcane-os` executables invoke the same headless SDK toolchain.
4
+ Use the command name that is unambiguous in the current project; project-local
5
+ scripts should resolve the exact package version pinned by the app's lockfile.
6
+
7
+ Every potentially blocking operation acknowledges before it begins, owns its
8
+ work, emits progress or heartbeat records, observes cancellation where safe,
9
+ and exits nonzero on failure. Machine output is defined by
10
+ `arcane-cli-events/1`.
11
+
12
+ ## Command inventory
13
+
14
+ | Command | Scope and result |
15
+ | --- | --- |
16
+ | `arcane new <id>` | Creates one external app workspace. |
17
+ | `arcane init [id]` | Initializes one app in an external or integrated workspace without rewriting unrelated files. |
18
+ | `arcane doctor` | Reads and reports Node/tooling, SDK runtime, workspace, optional Arcane source recognition, and supported managed ArcaneOllama readiness. |
19
+ | `arcane dev` | Starts one owned browser development server for one selected app. |
20
+ | `arcane test` | Runs one app test boundary or one explicit integrated shared test file. |
21
+ | `arcane check` | Validates one app boundary or the canonical integrated shared check. |
22
+ | `arcane package` | Creates one browser release, or plans it with `--dry-run`. |
23
+ | `arcane verify` | Authenticates one existing browser release. |
24
+ | `arcane bundle` | Creates one deterministic external-app release archive. |
25
+ | `arcane verify-bundle` | Verifies one deterministic external-app release archive without extraction. |
26
+ | `arcane native-doctor` | Diagnoses one explicit native provider and host. |
27
+ | `arcane native-prepare` | Runs one standalone provider toolchain-integrity preparation diagnostic. |
28
+ | `arcane build` | Packages, plans, builds, and retained-verifies one target artifact. |
29
+ | `arcane run` | Verifies and serves an existing browser release, or packages, plans, builds, verifies, and launches one paired native artifact. |
30
+ | `arcane update-check` | Performs one explicit, read-only npm dist-tag query for the installed SDK version. |
31
+ | `arcane targets` | Lists target ids, declared status, formats, architectures, signing profiles, methods, and pairing reason. |
32
+ | `arcane repo status\|pull\|push` | Runs one selected repository operation for the current app workspace. |
33
+
34
+ ## Parser-wide options
35
+
36
+ The parser recognizes these names before the selected command applies its own
37
+ meaning and cardinality rules:
38
+
39
+ | Option | Value / form | Meaningful commands |
40
+ | --- | --- | --- |
41
+ | `--path` | directory | `new` |
42
+ | `--display-name` | string | `new`, `init` |
43
+ | `--workspace` | directory | Commands that select an external or integrated workspace; defaults to `.`. |
44
+ | `--app` | app id | Workspace/app operations except shared scope and `verify-bundle`. |
45
+ | `--arcane-root` | directory | `doctor`, native `build`/`run`, `native-doctor`, `native-prepare` |
46
+ | `--host` / `--port` | host / integer 0–65535 | Browser `dev` and `run`; defaults to `127.0.0.1:8000`. |
47
+ | `--target` | target id | `new`, `init`, native diagnostics, `build`, `run` |
48
+ | `--format` / `--signing` | target-supported values | Native diagnostics, `build`, `run` |
49
+ | `--output-root` | directory | Native `build` and `run` |
50
+ | `--scope` | `app` or `shared` | `test`, `check`; defaults to `app`. |
51
+ | `--test-file` | repository-relative `.test.mjs` | `test --scope shared` only |
52
+ | `--artifact` | bundle path | `bundle`, `verify-bundle` |
53
+ | `--output` | `human`, `json`, `ndjson` | Every invocation; the final occurrence wins. |
54
+ | `--git` | flag | `new` |
55
+ | `--skip-tests` | flag | `check --scope app` |
56
+ | `--dry-run` | flag | `package`; parser-supported on `build` with the boundary below |
57
+ | `--require-local-ai` | flag | `doctor` |
58
+ | `--overwrite` | flag | `bundle` only |
59
+ | `--help`, `-h` | flag | Prints help and exits zero. |
60
+ | `--version`, `-v` | flag | Prints the exact SDK version and exits zero. |
61
+
62
+ Value options accept `--name value` and `--name=value`; a bare `--` ends option
63
+ parsing. Repeated value options currently use the last value, and repeated flags
64
+ are idempotent. Unknown names, missing values, excess positionals, invalid
65
+ command-specific enums/cardinality, and the explicitly rejected cross-command
66
+ cases fail before work begins.
67
+
68
+ Other recognized but inapplicable options are not yet uniformly rejected. They
69
+ can be parsed and then ignored by a command. Do not depend on that permissive
70
+ behavior: pass only the options listed for the selected command.
71
+
72
+ ## Output and exit contract
73
+
74
+ Human mode writes progress and terminal diagnostics to stderr and the selected
75
+ result to stdout. JSON mode writes accepted/running event envelopes to stderr
76
+ and exactly one final JSON success or error envelope to stdout. NDJSON mode
77
+ writes every ordered event, including its one terminal event, to stdout.
78
+
79
+ Structured payload normalization converts `bigint` to decimal text and errors
80
+ to the public error record, omits functions, symbols, `undefined`, and cycles,
81
+ and keeps repeated non-cyclic values. Exit status is `0` for success, `1` for an
82
+ ordinary usage/operation failure, and `130` for cancellation. The separate
83
+ `arcane-test` infrastructure runner uses status `2` for its own infrastructure
84
+ failure; it is not an `arcane` command.
85
+
86
+ ## `arcane new`
87
+
88
+ ### Overview
89
+
90
+ Creates one repository-shaped external application workspace and the selected
91
+ app. It never creates more than one app or silently installs a global SDK.
92
+
93
+ ```text
94
+ arcane new <id> [--path <directory>] [--display-name <name>] [--target <target>] [--git]
95
+ ```
96
+
97
+ ### Options and result
98
+
99
+ `--path` selects the new workspace, `--display-name` sets presentation text,
100
+ `--target` declares one initial target, and `--git` initializes that exact
101
+ directory as a repository. Native target scaffolds also retain `browser` and
102
+ include the required icon. The result reports the workspace, app, descriptor,
103
+ target, and created paths.
104
+
105
+ ### Example
106
+
107
+ ```bash
108
+ npm exec -- arcane new hello-arcane --path ./hello-arcane --target portable --git
109
+ ```
110
+
111
+ ## `arcane init`
112
+
113
+ ### Overview
114
+
115
+ Adds missing Arcane application files to one existing workspace. Integrated
116
+ initialization writes only the selected `apps/<id>/` boundary and does not add
117
+ an SDK dependency to the Arcane OS repository.
118
+
119
+ ```text
120
+ arcane init [id] [--workspace <directory>] [--app <id>] [--display-name <name>] [--target <target>]
121
+ ```
122
+
123
+ ### Errors and safety
124
+
125
+ Existing conflicting files, invalid ids, an ambiguous app selection, or an
126
+ incompatible workspace fail rather than being overwritten. Initialization is
127
+ idempotent only for files whose existing content satisfies the scaffold
128
+ contract.
129
+
130
+ ### Example
131
+
132
+ ```bash
133
+ npm exec -- arcane init reports --target browser
134
+ ```
135
+
136
+ ## `arcane doctor`
137
+
138
+ ### Overview
139
+
140
+ Performs read-only Node, npm, Git, SDK runtime, workspace, optional Arcane
141
+ source-checkout recognition, and supported ArcaneOllama managed-service
142
+ assessment. It reports unavailable optional capabilities without turning them
143
+ into packaging failures.
144
+
145
+ ```text
146
+ arcane doctor [--workspace <directory>] [--app <id>] [--arcane-root <directory>] [--require-local-ai]
147
+ ```
148
+
149
+ ### Availability
150
+
151
+ The SDK/runtime checks are **Node**. `--arcane-root` only checks for the
152
+ expected Arcane development-lifecycle source marker; it does not load or
153
+ diagnose a native target provider. Use `native-doctor --target ...` for that
154
+ boundary. Managed ArcaneOllama inspection currently runs on Windows and reports
155
+ unsupported elsewhere. Doctor never installs, repairs, starts, or mutates
156
+ Ollama. `--require-local-ai` changes an otherwise optional local-AI readiness
157
+ failure into a failed doctor result.
158
+
159
+ ### Example
160
+
161
+ ```bash
162
+ npm exec -- arcane doctor --workspace . --arcane-root "../Arcane OS"
163
+ ```
164
+
165
+ ## `arcane dev`
166
+
167
+ ### Overview
168
+
169
+ Starts one loopback development server for one selected app and maps the exact
170
+ workspace/runtime routes. It is a development convenience, not a production
171
+ security boundary.
172
+
173
+ ```text
174
+ arcane dev [--app <id>] [--host 127.0.0.1] [--port 8000]
175
+ ```
176
+
177
+ ### Lifecycle
178
+
179
+ The command reports acceptance before bind/start work, emits the final URL,
180
+ owns the server until cancellation, and restores failure to the process exit.
181
+ The default host is loopback. Exposing another interface is an explicit
182
+ development choice and does not add authentication.
183
+
184
+ ### Example
185
+
186
+ ```bash
187
+ npm exec -- arcane dev --app hello-world --port 8000
188
+ ```
189
+
190
+ ## `arcane test`
191
+
192
+ ### Overview
193
+
194
+ Runs exactly one test scope.
195
+
196
+ ```text
197
+ arcane test [--app <id>] [--scope app]
198
+ arcane test --scope shared --test-file <repo-relative.test.mjs>
199
+ ```
200
+
201
+ ### Scope
202
+
203
+ App scope selects only the external workspace test boundary plus the selected
204
+ app tests, or only the selected integrated app's tests. Shared scope is
205
+ integrated-only and admits one exact repository-relative `.test.mjs` through
206
+ Arcane's fixed provider. It cannot run an arbitrary command, glob every test,
207
+ or cross into another app.
208
+
209
+ ### Example
210
+
211
+ ```bash
212
+ node ../arcane-os-sdk/bin/arcane.mjs test \
213
+ --workspace "../Arcane OS" \
214
+ --scope shared \
215
+ --test-file test/component-contracts.test.mjs
216
+ ```
217
+
218
+ ## `arcane check`
219
+
220
+ ### Overview
221
+
222
+ Runs the canonical validation boundary for one app, or the one canonical
223
+ integrated shared development check.
224
+
225
+ ```text
226
+ arcane check [--app <id>] [--scope app] [--skip-tests]
227
+ arcane check --scope shared
228
+ ```
229
+
230
+ ### Test behavior
231
+
232
+ `--skip-tests` is app-scope-only and skips the selected app test stage without
233
+ weakening descriptor, runtime, or source checks. Shared check owns Arcane's
234
+ canonical development check and does not accept a custom command.
235
+
236
+ ### Example
237
+
238
+ ```bash
239
+ npm exec -- arcane check --app hello-world
240
+ ```
241
+
242
+ ## `arcane package`
243
+
244
+ ### Overview
245
+
246
+ Creates and authenticates one browser release beneath `dist/<id>/`, preserving
247
+ the prior output until the replacement is verified.
248
+
249
+ ```text
250
+ arcane package [--app <id>] [--dry-run]
251
+ ```
252
+
253
+ ### Result and receipts
254
+
255
+ The result includes the release root, manifest, positive inventory, hashes,
256
+ byte counts, policy identity, and a process-authenticated release receipt.
257
+ `--dry-run` plans the selected package without replacing output.
258
+
259
+ ### Example
260
+
261
+ ```bash
262
+ npm exec -- arcane package --app hello-world
263
+ ```
264
+
265
+ ## `arcane verify`
266
+
267
+ ### Overview
268
+
269
+ Authenticates one existing browser release against the app descriptor, package
270
+ policy, exact inventory, file identities, byte lengths, and hashes.
271
+
272
+ ```text
273
+ arcane verify [--app <id>]
274
+ ```
275
+
276
+ ### Evidence boundary
277
+
278
+ Verification proves consistency for the exact observed release state. It does
279
+ not prove publisher authorization, native signing, installation, launch, or
280
+ release acceptance.
281
+
282
+ ### Example
283
+
284
+ ```bash
285
+ npm exec -- arcane verify --app hello-world
286
+ ```
287
+
288
+ ## `arcane bundle`
289
+
290
+ ### Overview
291
+
292
+ Seals one already packaged and authenticated external app into the deterministic
293
+ `.arcane-app.tar.gz` contract.
294
+
295
+ ```text
296
+ arcane bundle [--app <id>] [--artifact <file>.arcane-app.tar.gz] [--overwrite]
297
+ ```
298
+
299
+ ### Replacement behavior
300
+
301
+ The default output is `dist/<id>-<version>.arcane-app.tar.gz`. An existing path
302
+ is refused unless `--overwrite` is explicit. Even then, the prior artifact is
303
+ retained until the promoted bytes pass final exact-length, hash, link, and
304
+ filesystem-identity checks.
305
+
306
+ ### Example
307
+
308
+ ```bash
309
+ npm exec -- arcane bundle --app hello-world
310
+ ```
311
+
312
+ ## `arcane verify-bundle`
313
+
314
+ ### Overview
315
+
316
+ Parses and authenticates one release bundle without extracting it.
317
+
318
+ ```text
319
+ arcane verify-bundle <file.arcane-app.tar.gz>
320
+ ```
321
+
322
+ ### Validation
323
+
324
+ The verifier enforces the canonical gzip member, USTAR metadata and order,
325
+ portable paths, expansion limits, canonical descriptor, release policy,
326
+ inventory, bytes, and hashes. Internal consistency is not installation
327
+ authority.
328
+
329
+ ### Example
330
+
331
+ ```bash
332
+ npm exec -- arcane verify-bundle dist/hello-world-1.0.0.arcane-app.tar.gz
333
+ ```
334
+
335
+ ## `arcane native-doctor`
336
+
337
+ ### Overview
338
+
339
+ Loads one fixed native provider from one explicit Arcane OS checkout and
340
+ diagnoses the selected target/host prerequisites without building an app.
341
+
342
+ ```text
343
+ arcane native-doctor --target <native-target> --arcane-root <directory>
344
+ ```
345
+
346
+ ### Availability
347
+
348
+ This is a **Node** orchestration command with **Native** provider behavior. The
349
+ provider fails honestly when the selected platform, architecture, or toolchain
350
+ is unavailable; it never returns a browser package as a substitute.
351
+
352
+ ### Example
353
+
354
+ ```bash
355
+ npm exec -- arcane native-doctor \
356
+ --target windows-x64 \
357
+ --arcane-root "../Arcane OS"
358
+ ```
359
+
360
+ ## `arcane native-prepare`
361
+
362
+ ### Overview
363
+
364
+ Runs the provider's standalone toolchain-integrity preparation diagnostic for
365
+ one target. It is not a prerequisite command to repeat immediately before
366
+ `build`; `build` prepares and retains its own process-owned receipt.
367
+
368
+ ```text
369
+ arcane native-prepare --target <native-target> --arcane-root <directory>
370
+ ```
371
+
372
+ ### Example
373
+
374
+ ```bash
375
+ npm exec -- arcane native-prepare \
376
+ --target linux-x64 \
377
+ --arcane-root "../Arcane OS"
378
+ ```
379
+
380
+ ## `arcane build`
381
+
382
+ ### Overview
383
+
384
+ Packages one app, prepares one provider, creates one immutable plan, builds one
385
+ target, and retained-verifies one result.
386
+
387
+ ```text
388
+ arcane build --target <target> [--arcane-root <directory>] [--output-root <directory>] [--format <format>] [--signing <mode>] [--dry-run]
389
+ ```
390
+
391
+ ### Cardinality and outputs
392
+
393
+ The command selects one workspace, app, target, architecture, format, signing
394
+ profile, and output root. Current providers emit a verified portable directory,
395
+ Windows x64 EXE bundle, Linux x64/ARM64 DEB, or development-signed Android APK.
396
+ The output remains target-specific inside the common plan/receipt contract.
397
+ `--dry-run` is implemented for the browser build path. Native builds reject it
398
+ rather than returning a fictional native artifact plan.
399
+
400
+ ### Example
401
+
402
+ ```bash
403
+ npm exec -- arcane build \
404
+ --target windows-x64 \
405
+ --arcane-root "../Arcane OS" \
406
+ --output-root "../arcane-native-output"
407
+ ```
408
+
409
+ ## `arcane run`
410
+
411
+ ### Overview
412
+
413
+ For `--target browser`, verifies the existing current `dist/<app>` release
414
+ and starts its packaged server; it does not package or rebuild that release.
415
+ For a paired native target, performs package, prepare, plan, build, retained
416
+ verification, launch, readiness, and owned cancellation in one process so
417
+ process-local receipts remain authoritative.
418
+
419
+ ```text
420
+ arcane run [--target <target>] [--app <id>] [--arcane-root <directory>] [--output-root <directory>] [--format <format>] [--signing <mode>]
421
+ ```
422
+
423
+ ### Availability
424
+
425
+ Browser run is **Node control plane / browser data plane** and requires an
426
+ existing verified release (run `arcane package` first). Windows, Linux, and
427
+ Android providers expose supported paired native run paths. Portable output is
428
+ a verified directory and intentionally cannot run. Android run requires one
429
+ connected physical/native ARM64 device for the current target.
430
+
431
+ ### Example
432
+
433
+ ```bash
434
+ npm exec -- arcane run \
435
+ --target linux-x64 \
436
+ --arcane-root "../Arcane OS" \
437
+ --output-root "../arcane-native-output"
438
+ ```
439
+
440
+ ## `arcane update-check`
441
+
442
+ ### Overview
443
+
444
+ Performs one explicit, on-demand check of the installed Arcane SDK version
445
+ against its matching npm distribution tag.
446
+
447
+ ```text
448
+ arcane update-check
449
+ ```
450
+
451
+ This is a maintainer/user query, not app runtime behavior. The command never
452
+ polls, downloads a package, installs dependencies, changes files, mutates npm
453
+ configuration, or self-updates. Arcane applications do not run it automatically.
454
+
455
+ ### Request boundary
456
+
457
+ The command makes one bounded, credential-free HTTPS `GET` to the approved
458
+ `registry.npmjs.org` origin for the `arcane-os` dist-tag document. It rejects
459
+ redirects and changed request identity, omits credentials and referrer data,
460
+ disables cache use, accepts only JSON, limits the response to 32 KiB, and uses a
461
+ 2.5-second timeout. The CLI does not expose registry, package, or timeout
462
+ overrides.
463
+
464
+ An installed prerelease version selects the npm `dev` tag. A stable installed
465
+ version selects `latest`.
466
+
467
+ ### Result
468
+
469
+ Success returns:
470
+
471
+ ```javascript
472
+ {
473
+ packageName:'arcane-os',
474
+ currentVersion:'0.1.0-dev.4',
475
+ registryVersion:'0.1.0-dev.5',
476
+ tag:'dev',
477
+ status:'update-available', // or 'current' or 'ahead'
478
+ updateAvailable:true,
479
+ registry:'https://registry.npmjs.org',
480
+ checkedAt:'2026-08-24T04:00:00.000Z'
481
+ }
482
+ ```
483
+
484
+ `current` means the installed and registry versions match. `ahead` means the
485
+ installed version is newer than the selected registry tag. `update-available`
486
+ means the selected registry version is newer; the boolean is true only for that
487
+ status. Reporting availability does not authorize or perform installation.
488
+
489
+ ### Events, errors, and cancellation
490
+
491
+ The normal CLI envelope emits `operation.accepted`, then
492
+ `update.check.started`. Success emits `update.check.completed` followed by the
493
+ terminal `operation.completed` result. HTTP failure, timeout, changed origin,
494
+ oversized/non-JSON/invalid UTF-8 content, malformed dist tags, or invalid semantic
495
+ versions emit `update.check.failed` and terminate as `operation.failed` with
496
+ `ARCANE_UPDATE_CHECK_FAILED` and exit status `1`.
497
+
498
+ `SIGINT` or `SIGTERM` cancels the owned request. Cancellation terminates as
499
+ `operation.cancelled` with exit status `130`; it does not masquerade as an update
500
+ failure. Output framing follows the global human/JSON/NDJSON contract above.
501
+
502
+ ### Example
503
+
504
+ ```bash
505
+ npm exec -- arcane update-check --output json
506
+ ```
507
+
508
+ ## `arcane targets`
509
+
510
+ ### Overview
511
+
512
+ Lists the current target descriptors without building. Descriptors report
513
+ protocol, id, display name, declared status, platforms, architectures, formats,
514
+ signing modes, advertised adapter methods, and the reason a target is deferred
515
+ or requires pairing. The `methods` list describes the adapter interface; it is
516
+ not a live runnable/readiness probe. Use `native-doctor` for an explicit
517
+ provider/host assessment, and note that portable output intentionally rejects
518
+ run even though adapters share the common method shape.
519
+
520
+ ### Example
521
+
522
+ ```bash
523
+ npm exec -- arcane targets --output json
524
+ ```
525
+
526
+ ## `arcane repo`
527
+
528
+ ### Overview
529
+
530
+ Runs one repository action for the selected application workspace.
531
+
532
+ ```text
533
+ arcane repo status|pull|push
534
+ ```
535
+
536
+ ### Behavior
537
+
538
+ `status` is read-only. `pull` and `push` use the repository's already configured
539
+ remote and credentials, stream the owned child process, and surface nonzero
540
+ failure. The command does not create credentials, choose another repository, or
541
+ loop across workspaces.
542
+
543
+ ### Example
544
+
545
+ ```bash
546
+ npm exec -- arcane repo status
547
+ ```
548
+
549
+ ## Machine output
550
+
551
+ `--output json` returns one complete JSON document after structured progress is
552
+ collected. `--output ndjson` emits one event record per line as work proceeds.
553
+ Human output is presentation only; automation should consume the versioned
554
+ machine fields and tolerate documented additive detail.
555
+
556
+ Every record identifies the CLI event protocol, sequence, operation, phase,
557
+ level, message, and structured detail as applicable. Acceptance precedes
558
+ blocking work, terminal completion/failure closes the owned stream, and stdout
559
+ in machine modes contains no unframed child-process text.
560
+
561
+ Deep details: [SDK/CLI protocols](protocols.md#sdk-package-and-cli-protocols).
562
+
563
+ ## Programmatic-only operation names
564
+
565
+ `executeOperation()` also accepts `plan` and `native-verify`. The CLI parser has
566
+ no `arcane plan` or `arcane native-verify` route in this SDK version. Call the
567
+ documented JavaScript operations directly when that lower-level lifecycle is
568
+ required; do not present those names as user commands or infer them from the
569
+ parser's recognized option set.
@@ -0,0 +1,62 @@
1
+ # Arcane Core reference snapshot
2
+
3
+ This directory derives the complete committed Arcane application API reference
4
+ from the SDK runtime's exact upstream Arcane OS commit
5
+ `567ad110bf57a1c2d4a3daa22ae93716cc5f4d7e`. The imported reference defines
6
+ protocol `arcane/1` at that source identity. Its canonical inventories and
7
+ focused member contracts were verified unchanged at committed Arcane OS `main`
8
+ commit `13f3ce0ae34f77a3495331c8b4c30b1bb105f8ed` during this import. SDK-local
9
+ provenance, link, and package-boundary annotations are intentionally added here,
10
+ so these Markdown files are not represented as byte-identical upstream blobs.
11
+
12
+ The snapshot contains:
13
+
14
+ - 35 namespaces, constructors, and values;
15
+ - 106 application-facing methods;
16
+ - 14 renderer-visible event names;
17
+ - 35 public shared-entity exports;
18
+ - the complete provider-neutral AI and direct Ollama data contracts;
19
+ - 141 MDN-style member guides with exact H2 keys, substantive contract detail,
20
+ and safe JavaScript examples.
21
+
22
+ ## Canonical files
23
+
24
+ | Contract | File |
25
+ | --- | --- |
26
+ | Namespace and method inventory | [Arcane API reference](arcane-api.md) |
27
+ | Event names, delivery, hosts, triggers, and payloads | [Arcane events](arcane-events.md) |
28
+ | Public entity exports | [Arcane entities](arcane-entities.md) |
29
+ | AI requests, results, bounds, and provider boundaries | [Arcane AI data contracts](arcane-ai-contracts.md) |
30
+ | Ollama runtime/module overview | [Ollama module](ollama-module.md) |
31
+ | Per-member guides | [`reference/arcane-api/`](reference/arcane-api/) |
32
+
33
+ ## Runtime pin and current Core admission
34
+
35
+ The SDK's browser runtime and this source reference use the same pinned Arcane
36
+ OS commit. They remain different artifact classes: the SDK ships exact renderer
37
+ bytes. A native build does not infer compatibility from a higher Core version
38
+ or a matching protocol name. This SDK version accepts a selected checkout and
39
+ Core only when its current native plan's exact protocol, version, feature,
40
+ capability, method, provider, and identity-bound receipt checks all pass. That
41
+ is present-build admission evidence, not a promise that a future SDK will accept
42
+ this Core or that this SDK will accept a future Core.
43
+
44
+ Documentation provenance does not admit a Core. The SDK's native plan,
45
+ provider, and receipt checks remain authoritative for a particular build.
46
+
47
+ ## Reading order
48
+
49
+ Application developers should begin with the capability or method in
50
+ [Arcane API reference](arcane-api.md) and use its linked guide. Engineers who
51
+ need WebView2, WebKitGTK, Android WebView, development HTTP, Core RPC, event,
52
+ or provider boundaries can continue into the SDK's
53
+ [protocol and host architecture guide](../protocols.md).
54
+
55
+ ## Source, receipt, and license links
56
+
57
+ - [Pinned upstream ARCANE-OS source](https://github.com/TheWizardNexus/ARCANE-OS/tree/567ad110bf57a1c2d4a3daa22ae93716cc5f4d7e)
58
+ - [SDK runtime release manifest](../../../runtime/ARCANE_RUNTIME_RELEASE.json)
59
+ - [SDK runtime source pin](../../../tools/runtime-source.json)
60
+ - [AGPL license](../../../LICENSE)
61
+ - [Commercial-license notice](../../../COMMERCIAL-LICENSE.md)
62
+ - [Third-party and distribution notice](../../../NOTICE)