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,224 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/TheWizardNexus/arcane-os-sdk/schemas/arcane-package.schema.json",
4
+ "title": "Arcane application package",
5
+ "description": "Authored application input accepted by the Arcane application packager.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "id",
11
+ "displayName",
12
+ "version",
13
+ "entry",
14
+ "strategy",
15
+ "security",
16
+ "include",
17
+ "shared"
18
+ ],
19
+ "properties": {
20
+ "schemaVersion": {
21
+ "const": 1
22
+ },
23
+ "id": {
24
+ "$ref": "#/$defs/appId"
25
+ },
26
+ "displayName": {
27
+ "type": "string",
28
+ "minLength": 1,
29
+ "maxLength": 160,
30
+ "pattern": "^(?=.*\\S)[^<>\\u0000-\\u001f\\u007f]+$"
31
+ },
32
+ "version": {
33
+ "type": "string",
34
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"
35
+ },
36
+ "entry": {
37
+ "$ref": "#/$defs/relativePath"
38
+ },
39
+ "strategy": {
40
+ "enum": [
41
+ "static",
42
+ "adapter"
43
+ ]
44
+ },
45
+ "localAIModelPolicy": {
46
+ "$ref": "#/$defs/localAIModelPolicy"
47
+ },
48
+ "security": {
49
+ "type": "object",
50
+ "additionalProperties": false,
51
+ "required": [
52
+ "connectOrigins",
53
+ "frameOrigins",
54
+ "mediaOrigins"
55
+ ],
56
+ "properties": {
57
+ "connectOrigins": {
58
+ "$ref": "#/$defs/connectOriginList"
59
+ },
60
+ "frameOrigins": {
61
+ "$ref": "#/$defs/frameOriginList"
62
+ },
63
+ "mediaOrigins": {
64
+ "$ref": "#/$defs/httpsOriginList"
65
+ }
66
+ }
67
+ },
68
+ "include": {
69
+ "allOf": [
70
+ {
71
+ "$ref": "#/$defs/pathList"
72
+ },
73
+ {
74
+ "minItems": 1
75
+ }
76
+ ]
77
+ },
78
+ "exclude": {
79
+ "$ref": "#/$defs/pathList"
80
+ },
81
+ "shared": {
82
+ "type": "array",
83
+ "uniqueItems": true,
84
+ "items": {
85
+ "type": "string",
86
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
87
+ }
88
+ },
89
+ "adapter": {
90
+ "allOf": [
91
+ {
92
+ "$ref": "#/$defs/relativePath"
93
+ },
94
+ {
95
+ "pattern": "^scripts/[A-Za-z0-9._/-]+\\.mjs$"
96
+ }
97
+ ]
98
+ }
99
+ },
100
+ "allOf": [
101
+ {
102
+ "if": {
103
+ "properties": {
104
+ "strategy": {
105
+ "const": "adapter"
106
+ }
107
+ },
108
+ "required": [
109
+ "strategy"
110
+ ]
111
+ },
112
+ "then": {
113
+ "required": [
114
+ "adapter"
115
+ ]
116
+ },
117
+ "else": {
118
+ "not": {
119
+ "required": [
120
+ "adapter"
121
+ ]
122
+ }
123
+ }
124
+ }
125
+ ],
126
+ "$defs": {
127
+ "appId": {
128
+ "type": "string",
129
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
130
+ },
131
+ "relativePath": {
132
+ "type": "string",
133
+ "minLength": 1,
134
+ "pattern": "^(?!.*\\\\)(?!.*:)(?!.*[<>\"|?*])(?!.*(?:^|/)(?:\\.{1,2}|(?:[Cc][Oo][Nn]|[Pp][Rr][Nn]|[Aa][Uu][Xx]|[Nn][Uu][Ll]|[Cc][Ll][Oo][Cc][Kk]\\$|[Cc][Oo][Nn][Ii][Nn]\\$|[Cc][Oo][Nn][Oo][Uu][Tt]\\$|[Cc][Oo][Mm][1-9¹²³]|[Ll][Pp][Tt][1-9¹²³])(?:\\.[^/]*)?)(?:/|$))(?!.*[. ](?:/|$))[^/\\u0000-\\u001f\\u007f]+(?:/[^/\\u0000-\\u001f\\u007f]+)*$"
135
+ },
136
+ "literalRelativePath": {
137
+ "allOf": [
138
+ {
139
+ "$ref": "#/$defs/relativePath"
140
+ },
141
+ {
142
+ "pattern": "^[^*?\\[\\]{}]+$"
143
+ }
144
+ ]
145
+ },
146
+ "pathList": {
147
+ "type": "array",
148
+ "maxItems": 512,
149
+ "uniqueItems": true,
150
+ "items": {
151
+ "$ref": "#/$defs/literalRelativePath"
152
+ }
153
+ },
154
+ "connectOriginList": {
155
+ "type": "array",
156
+ "maxItems": 16,
157
+ "uniqueItems": true,
158
+ "items": {
159
+ "type": "string",
160
+ "pattern": "^(?:https://[^/?#]+|http://(?:127\\.0\\.0\\.1|\\[::1\\])(?::[0-9]{1,5})?)$"
161
+ }
162
+ },
163
+ "httpsOriginList": {
164
+ "type": "array",
165
+ "maxItems": 16,
166
+ "uniqueItems": true,
167
+ "items": {
168
+ "type": "string",
169
+ "pattern": "^https://[^/?#]+$"
170
+ }
171
+ },
172
+ "frameOriginList": {
173
+ "type": "array",
174
+ "maxItems": 16,
175
+ "uniqueItems": true,
176
+ "items": {
177
+ "type": "string",
178
+ "pattern": "^(?:https:|https://[^/?#]+)$"
179
+ }
180
+ },
181
+ "localAIModelPolicy": {
182
+ "type": "object",
183
+ "additionalProperties": false,
184
+ "required": [
185
+ "verified_only",
186
+ "models"
187
+ ],
188
+ "properties": {
189
+ "verified_only": {
190
+ "type": "boolean"
191
+ },
192
+ "models": {
193
+ "type": "array",
194
+ "maxItems": 64,
195
+ "uniqueItems": true,
196
+ "items": {
197
+ "type": "object",
198
+ "additionalProperties": false,
199
+ "required": [
200
+ "name",
201
+ "definition"
202
+ ],
203
+ "properties": {
204
+ "name": {
205
+ "type": "string",
206
+ "minLength": 1,
207
+ "maxLength": 256,
208
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,191}(?::[A-Za-z0-9][A-Za-z0-9._-]{0,63})?$",
209
+ "not": {
210
+ "pattern": "^[Oo][Pp][Ee][Nn][Aa][Ii]$"
211
+ }
212
+ },
213
+ "definition": {
214
+ "type": "string",
215
+ "maxLength": 128,
216
+ "pattern": "^(?:Modelfile|[A-Za-z0-9][A-Za-z0-9._-]{0,118}\\.Modelfile)$"
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }
223
+ }
224
+ }
@@ -0,0 +1,122 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/TheWizardNexus/arcane-os-sdk/schemas/cli-event.schema.json",
4
+ "title": "Arcane CLI event",
5
+ "description": "One ordered NDJSON event emitted by an Arcane CLI operation.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "protocol",
10
+ "operationId",
11
+ "sequence",
12
+ "timestamp",
13
+ "command",
14
+ "type",
15
+ "status"
16
+ ],
17
+ "properties": {
18
+ "protocol": {
19
+ "const": "arcane-cli-events/1"
20
+ },
21
+ "operationId": {
22
+ "type": "string",
23
+ "minLength": 1,
24
+ "maxLength": 128
25
+ },
26
+ "sequence": {
27
+ "type": "integer",
28
+ "minimum": 1
29
+ },
30
+ "timestamp": {
31
+ "type": "string",
32
+ "format": "date-time"
33
+ },
34
+ "type": {
35
+ "type": "string",
36
+ "pattern": "^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9]*)+$"
37
+ },
38
+ "command": {
39
+ "type": "string",
40
+ "minLength": 1
41
+ },
42
+ "status": {
43
+ "enum": [
44
+ "accepted",
45
+ "running",
46
+ "completed",
47
+ "failed",
48
+ "cancelled"
49
+ ]
50
+ },
51
+ "message": {
52
+ "type": "string"
53
+ },
54
+ "data": {}
55
+ },
56
+ "allOf": [
57
+ {
58
+ "if": {
59
+ "properties": {
60
+ "type": {
61
+ "const": "operation.accepted"
62
+ }
63
+ }
64
+ },
65
+ "then": {
66
+ "properties": {
67
+ "status": {
68
+ "const": "accepted"
69
+ }
70
+ }
71
+ }
72
+ },
73
+ {
74
+ "if": {
75
+ "properties": {
76
+ "type": {
77
+ "const": "operation.completed"
78
+ }
79
+ }
80
+ },
81
+ "then": {
82
+ "properties": {
83
+ "status": {
84
+ "const": "completed"
85
+ }
86
+ }
87
+ }
88
+ },
89
+ {
90
+ "if": {
91
+ "properties": {
92
+ "type": {
93
+ "const": "operation.failed"
94
+ }
95
+ }
96
+ },
97
+ "then": {
98
+ "properties": {
99
+ "status": {
100
+ "const": "failed"
101
+ }
102
+ }
103
+ }
104
+ },
105
+ {
106
+ "if": {
107
+ "properties": {
108
+ "type": {
109
+ "const": "operation.cancelled"
110
+ }
111
+ }
112
+ },
113
+ "then": {
114
+ "properties": {
115
+ "status": {
116
+ "const": "cancelled"
117
+ }
118
+ }
119
+ }
120
+ }
121
+ ]
122
+ }
@@ -0,0 +1,152 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://thewizardnexus.github.io/arcane-os-sdk/schemas/event-stack.schema.json",
4
+ "title": "Arcane Event Stack",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "protocol",
9
+ "sessionId",
10
+ "createdAt",
11
+ "events"
12
+ ],
13
+ "properties": {
14
+ "protocol": {
15
+ "const": "arcane-event-stack/1"
16
+ },
17
+ "sessionId": {
18
+ "type": "string",
19
+ "minLength": 1
20
+ },
21
+ "createdAt": {
22
+ "type": "string",
23
+ "format": "date-time"
24
+ },
25
+ "events": {
26
+ "type": "array",
27
+ "items": {
28
+ "$ref": "#/$defs/event"
29
+ }
30
+ }
31
+ },
32
+ "$defs": {
33
+ "nullableString": {
34
+ "type": [
35
+ "string",
36
+ "null"
37
+ ]
38
+ },
39
+ "event": {
40
+ "type": "object",
41
+ "additionalProperties": false,
42
+ "required": [
43
+ "protocol",
44
+ "sessionId",
45
+ "id",
46
+ "sequence",
47
+ "timestamp",
48
+ "monotonicMs",
49
+ "type",
50
+ "source",
51
+ "category",
52
+ "correlationId",
53
+ "causationId",
54
+ "parentSequence",
55
+ "depth",
56
+ "stack",
57
+ "payload",
58
+ "metadata",
59
+ "status",
60
+ "completedAt",
61
+ "durationMs",
62
+ "error"
63
+ ],
64
+ "properties": {
65
+ "protocol": {
66
+ "const": "arcane-event-stack/1"
67
+ },
68
+ "sessionId": {
69
+ "type": "string",
70
+ "minLength": 1
71
+ },
72
+ "id": {
73
+ "type": "string",
74
+ "minLength": 1
75
+ },
76
+ "sequence": {
77
+ "type": "integer",
78
+ "minimum": 1
79
+ },
80
+ "timestamp": {
81
+ "type": "string",
82
+ "format": "date-time"
83
+ },
84
+ "monotonicMs": {
85
+ "type": "number"
86
+ },
87
+ "type": {
88
+ "type": "string"
89
+ },
90
+ "source": {
91
+ "type": "string",
92
+ "minLength": 1
93
+ },
94
+ "category": {
95
+ "$ref": "#/$defs/nullableString"
96
+ },
97
+ "correlationId": {
98
+ "$ref": "#/$defs/nullableString"
99
+ },
100
+ "causationId": {
101
+ "$ref": "#/$defs/nullableString"
102
+ },
103
+ "parentSequence": {
104
+ "type": [
105
+ "integer",
106
+ "null"
107
+ ],
108
+ "minimum": 1
109
+ },
110
+ "depth": {
111
+ "type": "integer",
112
+ "minimum": 0
113
+ },
114
+ "stack": {
115
+ "$ref": "#/$defs/nullableString"
116
+ },
117
+ "payload": {
118
+ "type": "array"
119
+ },
120
+ "metadata": {
121
+ "type": "object"
122
+ },
123
+ "status": {
124
+ "enum": [
125
+ "dispatching",
126
+ "completed",
127
+ "failed"
128
+ ]
129
+ },
130
+ "completedAt": {
131
+ "anyOf": [
132
+ {
133
+ "type": "string",
134
+ "format": "date-time"
135
+ },
136
+ {
137
+ "type": "null"
138
+ }
139
+ ]
140
+ },
141
+ "durationMs": {
142
+ "type": [
143
+ "number",
144
+ "null"
145
+ ],
146
+ "minimum": 0
147
+ },
148
+ "error": {}
149
+ }
150
+ }
151
+ }
152
+ }
@@ -0,0 +1,176 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/TheWizardNexus/arcane-os-sdk/schemas/native-build-plan.schema.json",
4
+ "title": "Arcane native build plan",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["protocol", "generation", "toolchain", "minimumCoreVersion", "app", "dependencies", "targetRequest", "outputRoot", "operations"],
8
+ "properties": {
9
+ "protocol": { "const": "arcane-native-build-plan/1" },
10
+ "generation": { "type": "string", "pattern": "^[a-f0-9]{32}$" },
11
+ "providerGeneration": { "$ref": "#/$defs/providerGeneration" },
12
+ "toolchain": { "$ref": "#/$defs/toolchain" },
13
+ "minimumCoreVersion": { "$ref": "#/$defs/semver" },
14
+ "app": { "$ref": "#/$defs/app" },
15
+ "dependencies": {
16
+ "type": "array",
17
+ "maxItems": 64,
18
+ "items": { "$ref": "#/$defs/app" }
19
+ },
20
+ "targetRequest": { "$ref": "#/$defs/targetRequest" },
21
+ "outputRoot": { "type": "string", "minLength": 1 },
22
+ "operations": {
23
+ "const": [
24
+ "authenticate-toolchain",
25
+ "authenticate-app-release",
26
+ "authenticate-dependency-releases",
27
+ "build-selected-target",
28
+ "verify-native-artifact"
29
+ ]
30
+ }
31
+ },
32
+ "$defs": {
33
+ "sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
34
+ "semver": {
35
+ "type": "string",
36
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"
37
+ },
38
+ "providerGeneration": {
39
+ "type": "object",
40
+ "additionalProperties": false,
41
+ "required": ["kind", "generationSha256", "contentSha256", "moduleCount"],
42
+ "properties": {
43
+ "kind": { "const": "arcane-native-provider-generation" },
44
+ "generationSha256": { "$ref": "#/$defs/sha256" },
45
+ "contentSha256": { "$ref": "#/$defs/sha256" },
46
+ "moduleCount": { "type": "integer", "minimum": 1, "maximum": 128 }
47
+ }
48
+ },
49
+ "toolchain": {
50
+ "type": "object",
51
+ "additionalProperties": false,
52
+ "required": ["kind", "version", "protocolVersion", "features", "supportedCapabilities", "supportedMethods", "canonicalLocation", "contentSha256"],
53
+ "properties": {
54
+ "kind": { "type": "string", "minLength": 1 },
55
+ "version": { "$ref": "#/$defs/semver" },
56
+ "protocolVersion": { "type": "string", "pattern": "^arcane/[1-9][0-9]*$" },
57
+ "features": { "$ref": "#/$defs/contractList" },
58
+ "supportedCapabilities": { "$ref": "#/$defs/contractList" },
59
+ "supportedMethods": { "$ref": "#/$defs/contractList" },
60
+ "canonicalLocation": { "type": "string", "minLength": 1 },
61
+ "contentSha256": { "$ref": "#/$defs/sha256" }
62
+ }
63
+ },
64
+ "contractList": {
65
+ "type": "array",
66
+ "maxItems": 4096,
67
+ "uniqueItems": true,
68
+ "items": { "type": "string", "minLength": 1 }
69
+ },
70
+ "release": {
71
+ "type": "object",
72
+ "additionalProperties": false,
73
+ "required": ["canonicalLocation", "policySha256", "contentSha256", "fileCount", "totalBytes"],
74
+ "properties": {
75
+ "canonicalLocation": { "type": "string", "minLength": 1 },
76
+ "policySha256": { "$ref": "#/$defs/sha256" },
77
+ "contentSha256": { "$ref": "#/$defs/sha256" },
78
+ "fileCount": { "type": "integer", "minimum": 1 },
79
+ "totalBytes": { "type": "integer", "minimum": 1 }
80
+ }
81
+ },
82
+ "app": {
83
+ "type": "object",
84
+ "additionalProperties": false,
85
+ "required": ["id", "version", "descriptorSha256", "release"],
86
+ "properties": {
87
+ "id": { "type": "string", "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$" },
88
+ "version": { "type": "string", "minLength": 1 },
89
+ "descriptorSha256": { "$ref": "#/$defs/sha256" },
90
+ "release": { "$ref": "#/$defs/release" }
91
+ }
92
+ },
93
+ "unsignedLocalSigning": {
94
+ "type": "object",
95
+ "additionalProperties": false,
96
+ "required": ["mode", "profileId"],
97
+ "properties": {
98
+ "mode": { "const": "unsigned-local-test" },
99
+ "profileId": { "type": "null" }
100
+ }
101
+ },
102
+ "androidDevelopmentSigning": {
103
+ "type": "object",
104
+ "additionalProperties": false,
105
+ "required": ["mode", "profileId"],
106
+ "properties": {
107
+ "mode": { "const": "development" },
108
+ "profileId": { "const": "arcane-android-development-v1" }
109
+ }
110
+ },
111
+ "targetRequest": {
112
+ "oneOf": [
113
+ {
114
+ "type": "object",
115
+ "additionalProperties": false,
116
+ "required": ["target", "platform", "architecture", "format", "signing"],
117
+ "properties": {
118
+ "target": { "const": "portable" },
119
+ "platform": { "enum": ["windows", "linux"] },
120
+ "architecture": { "enum": ["x64", "arm64"] },
121
+ "format": { "const": "portable" },
122
+ "signing": { "$ref": "#/$defs/unsignedLocalSigning" }
123
+ }
124
+ },
125
+ {
126
+ "type": "object",
127
+ "additionalProperties": false,
128
+ "required": ["target", "platform", "architecture", "format", "signing"],
129
+ "properties": {
130
+ "target": { "const": "windows-x64" },
131
+ "platform": { "const": "windows" },
132
+ "architecture": { "const": "x64" },
133
+ "format": { "const": "exe" },
134
+ "signing": { "$ref": "#/$defs/unsignedLocalSigning" }
135
+ }
136
+ },
137
+ {
138
+ "type": "object",
139
+ "additionalProperties": false,
140
+ "required": ["target", "platform", "architecture", "format", "signing"],
141
+ "properties": {
142
+ "target": { "const": "linux-x64" },
143
+ "platform": { "const": "linux" },
144
+ "architecture": { "const": "x64" },
145
+ "format": { "const": "deb" },
146
+ "signing": { "$ref": "#/$defs/unsignedLocalSigning" }
147
+ }
148
+ },
149
+ {
150
+ "type": "object",
151
+ "additionalProperties": false,
152
+ "required": ["target", "platform", "architecture", "format", "signing"],
153
+ "properties": {
154
+ "target": { "const": "linux-arm64" },
155
+ "platform": { "const": "linux" },
156
+ "architecture": { "const": "arm64" },
157
+ "format": { "const": "deb" },
158
+ "signing": { "$ref": "#/$defs/unsignedLocalSigning" }
159
+ }
160
+ },
161
+ {
162
+ "type": "object",
163
+ "additionalProperties": false,
164
+ "required": ["target", "platform", "architecture", "format", "signing"],
165
+ "properties": {
166
+ "target": { "const": "android-arm64" },
167
+ "platform": { "const": "android" },
168
+ "architecture": { "const": "arm64" },
169
+ "format": { "const": "apk" },
170
+ "signing": { "$ref": "#/$defs/androidDevelopmentSigning" }
171
+ }
172
+ }
173
+ ]
174
+ }
175
+ }
176
+ }