arcane-os 0.3.1 → 0.3.2

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 (153) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +86 -117
  3. package/bin/arcane-test.mjs +170 -46
  4. package/browser-runtime/ai/browser-speech-artifacts.mjs +855 -895
  5. package/browser-runtime/ai/browser-speech-providers.mjs +80 -204
  6. package/browser-runtime/ai/browser-wasm-llm-provider.mjs +627 -819
  7. package/browser-runtime/ai/browser-wasm.mjs +24 -35
  8. package/browser-runtime/ai/browser-wllama-runtime.mjs +64 -316
  9. package/browser-runtime/ai/model-controller.mjs +584 -181
  10. package/browser-runtime/ai/speech-worker-client.mjs +8 -148
  11. package/browser-runtime/ai/speech-worker-runtime.mjs +642 -374
  12. package/browser-runtime/dom-event-instrumentation.mjs +55 -147
  13. package/browser-runtime/event-manager.mjs +239 -624
  14. package/package.json +5 -6
  15. package/runtime/arcane/components/app-bar.html +3 -15
  16. package/runtime/arcane/components/assistant-panel.html +10 -10
  17. package/runtime/arcane/components/calculator.html +1 -1
  18. package/runtime/arcane/components/chat.html +1359 -135
  19. package/runtime/arcane/components/conversation-view.html +2 -2
  20. package/runtime/arcane/components/document-inspector.html +11 -17
  21. package/runtime/arcane/components/file-manager.html +13 -56
  22. package/runtime/arcane/components/markdown-document.html +82 -281
  23. package/runtime/arcane/components/markdown-editor.html +7 -10
  24. package/runtime/arcane/components/media-embed.html +6 -6
  25. package/runtime/arcane/components/screen-capture.html +4 -4
  26. package/runtime/arcane/components/source-explanation.html +2 -2
  27. package/runtime/arcane/components/speech.html +112 -68
  28. package/runtime/arcane/components/terminal-workspace.html +4 -4
  29. package/runtime/arcane/components/theme-editor.html +1 -1
  30. package/runtime/arcane/components/unified-inbox.html +2 -2
  31. package/runtime/arcane/components/voice-transcription.html +31 -21
  32. package/runtime/arcane/entities/Calculation.js +2 -3
  33. package/runtime/arcane/entities/Chat.js +228 -43
  34. package/runtime/arcane/entities/Preference.js +3 -5
  35. package/runtime/arcane/entities/Weather.js +5 -5
  36. package/runtime/arcane/modules/AI.js +1042 -427
  37. package/runtime/arcane/modules/AIProviderRuntime.js +618 -359
  38. package/runtime/arcane/modules/AIResponseLength.js +9 -19
  39. package/runtime/arcane/modules/AIRuntimeState.js +109 -72
  40. package/runtime/arcane/modules/ArcaneNavigationPolicy.js +45 -32
  41. package/runtime/arcane/modules/BrowserTestSuite.js +78 -122
  42. package/runtime/arcane/modules/CalculatorEngine.js +9 -9
  43. package/runtime/arcane/modules/CommunicationAppController.js +3 -7
  44. package/runtime/arcane/modules/ComponentContracts.js +30 -32
  45. package/runtime/arcane/modules/ConfiguredAIChatSession.js +281 -230
  46. package/runtime/arcane/modules/ConversationActionItems.js +26 -59
  47. package/runtime/arcane/modules/ConversationClosingReport.js +34 -61
  48. package/runtime/arcane/modules/ConversationTimebox.js +27 -15
  49. package/runtime/arcane/modules/DBOPFSDocumentLibrary.js +152 -344
  50. package/runtime/arcane/modules/DocumentLexicalSearch.js +25 -91
  51. package/runtime/arcane/modules/HTMLImport.js +54 -1
  52. package/runtime/arcane/modules/IsolatedModelQuestionRunner.js +40 -203
  53. package/runtime/arcane/modules/LocalAIReadiness.js +40 -60
  54. package/runtime/arcane/modules/LocalAIReadinessController.js +15 -13
  55. package/runtime/arcane/modules/MD.js +1 -45
  56. package/runtime/arcane/modules/Mail.js +51 -103
  57. package/runtime/arcane/modules/MailOutbox.mjs +95 -193
  58. package/runtime/arcane/modules/MailTransport.mjs +36 -57
  59. package/runtime/arcane/modules/ModelDefinition.js +22 -106
  60. package/runtime/arcane/modules/OpenMeteoWeatherProvider.js +39 -101
  61. package/runtime/arcane/modules/PersistentAIChatSession.js +281 -18
  62. package/runtime/arcane/modules/PreferenceStore.js +102 -30
  63. package/runtime/arcane/modules/RiskSignalAnalyzer.js +8 -9
  64. package/runtime/arcane/modules/ScopedOPFSCache.js +7 -42
  65. package/runtime/arcane/modules/ScreenCapture.js +175 -128
  66. package/runtime/arcane/modules/SpeechPlayback.js +46 -149
  67. package/runtime/arcane/modules/StaticDocumentCatalog.js +173 -407
  68. package/runtime/arcane/modules/ToolCallRouter.js +25 -12
  69. package/runtime/arcane/modules/YouTubeMedia.js +6 -5
  70. package/schemas/arcane-app-bundle.schema.json +13 -78
  71. package/schemas/arcane-app.schema.json +9 -25
  72. package/schemas/arcane-lock.schema.json +18 -151
  73. package/schemas/arcane-package.schema.json +2 -16
  74. package/schemas/native-build-plan.schema.json +119 -122
  75. package/src/app-descriptor.mjs +75 -132
  76. package/src/application-tests.mjs +200 -0
  77. package/src/cli/main.mjs +27 -46
  78. package/src/constants.mjs +3 -4
  79. package/src/dev-server.mjs +30 -324
  80. package/src/doctor.mjs +92 -154
  81. package/src/dom-event-instrumentation.mjs +55 -147
  82. package/src/errors.mjs +2 -3
  83. package/src/event-manager.mjs +239 -624
  84. package/src/event-queue.mjs +3 -3
  85. package/src/import-map.mjs +273 -1028
  86. package/src/index.mjs +14 -16
  87. package/src/installed-sdk-runtime.mjs +27 -67
  88. package/src/integrated-provider-loader.mjs +53 -382
  89. package/src/mail-api.mjs +0 -2
  90. package/src/mail-server.mjs +224 -580
  91. package/src/mail.mjs +4 -10
  92. package/src/native-plan.mjs +163 -598
  93. package/src/native-provider-loader.mjs +104 -1063
  94. package/src/packager/core.mjs +485 -3229
  95. package/src/process.mjs +5 -10
  96. package/src/release-bundle.mjs +292 -2405
  97. package/src/runtime.mjs +76 -396
  98. package/src/scaffold.mjs +30 -80
  99. package/src/sdk-browser-runtime.mjs +70 -626
  100. package/src/source-server.mjs +588 -0
  101. package/src/targets/index.mjs +78 -188
  102. package/src/templates/workspace-template.mjs +19 -135
  103. package/src/testing-loader.mjs +164 -0
  104. package/src/testing.mjs +1 -1
  105. package/src/toolchain.mjs +131 -544
  106. package/src/update-check.mjs +26 -64
  107. package/src/workspace-operation-lock.mjs +139 -430
  108. package/src/workspace-runtime.mjs +109 -1558
  109. package/src/workspace.mjs +40 -302
  110. package/browser-runtime/ARCANE_SDK_BROWSER_RELEASE.json +0 -218
  111. package/browser-runtime/ai/ARCANE_AI_BROWSER_SPEECH_COMPONENTS.json +0 -203
  112. package/browser-runtime/ai/ARCANE_AI_BROWSER_WASM_COMPONENTS.json +0 -80
  113. package/browser-runtime/ai/internal/sha256.mjs +0 -166
  114. package/docs/architecture.md +0 -344
  115. package/docs/compatibility.md +0 -36
  116. package/docs/event-manager.md +0 -294
  117. package/docs/platform-targets.md +0 -108
  118. package/docs/publishing.md +0 -201
  119. package/docs/reference/README.md +0 -185
  120. package/docs/reference/ai/browser-speech-package-authority.json +0 -835
  121. package/docs/reference/ai/browser-speech.md +0 -1295
  122. package/docs/reference/ai/browser-wasm.md +0 -530
  123. package/docs/reference/arcane-ollama.md +0 -288
  124. package/docs/reference/availability-and-normalization.md +0 -183
  125. package/docs/reference/behavioral-testing.md +0 -133
  126. package/docs/reference/cli.md +0 -779
  127. package/docs/reference/core/README.md +0 -62
  128. package/docs/reference/core/arcane-ai-contracts.md +0 -907
  129. package/docs/reference/core/arcane-api.md +0 -601
  130. package/docs/reference/core/arcane-entities.md +0 -65
  131. package/docs/reference/core/arcane-events.md +0 -134
  132. package/docs/reference/core/ollama-module.md +0 -181
  133. package/docs/reference/core/reference/arcane-api/ai-and-ollama.md +0 -1909
  134. package/docs/reference/core/reference/arcane-api/applications-terminal-capabilities.md +0 -1057
  135. package/docs/reference/core/reference/arcane-api/core-and-events.md +0 -320
  136. package/docs/reference/core/reference/arcane-api/filesystem-storage-preferences-appearance.md +0 -610
  137. package/docs/reference/core/reference/arcane-api/namespaces.md +0 -1157
  138. package/docs/reference/core/reference/arcane-api/platform-installation-users-system.md +0 -1423
  139. package/docs/reference/core/reference/arcane-api/session-provisioning-diagnostics-development.md +0 -315
  140. package/docs/reference/event-manager.md +0 -1511
  141. package/docs/reference/inventory/package-api.json +0 -3284
  142. package/docs/reference/inventory/runtime-components.json +0 -1011
  143. package/docs/reference/inventory/runtime-entities.json +0 -26
  144. package/docs/reference/inventory/runtime-modules.json +0 -1431
  145. package/docs/reference/mail.md +0 -316
  146. package/docs/reference/protocols.md +0 -719
  147. package/docs/reference/runtime-components.md +0 -1366
  148. package/docs/reference/runtime-entities.md +0 -303
  149. package/docs/reference/runtime-modules.md +0 -2965
  150. package/docs/reference/sdk-api.md +0 -6698
  151. package/docs/roadmap.md +0 -79
  152. package/docs/work-amplification.md +0 -129
  153. package/runtime/ARCANE_RUNTIME_RELEASE.json +0 -826
@@ -2,172 +2,169 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://github.com/TheWizardNexus/arcane-os-sdk/schemas/native-build-plan.schema.json",
4
4
  "title": "Arcane native build plan",
5
+ "description": "Direct structural inputs for one selected native build.",
5
6
  "type": "object",
6
- "additionalProperties": false,
7
- "required": ["protocol", "generation", "toolchain", "minimumCoreVersion", "app", "dependencies", "targetRequest", "outputRoot", "operations"],
7
+ "required": [
8
+ "protocol",
9
+ "nativeBuilder",
10
+ "toolchainRoot",
11
+ "toolchain",
12
+ "appDescriptor",
13
+ "application",
14
+ "dependencies",
15
+ "minimumCoreVersion",
16
+ "protectedRoots",
17
+ "outputRoot",
18
+ "targetRequest"
19
+ ],
8
20
  "properties": {
9
21
  "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" },
22
+ "nativeBuilder": { "$ref": "#/$defs/nativeBuilder" },
23
+ "toolchainRoot": { "type": "string", "minLength": 1 },
24
+ "toolchain": { "type": "object" },
25
+ "appDescriptor": { "type": "object" },
26
+ "application": { "$ref": "#/$defs/releaseSelection" },
15
27
  "dependencies": {
16
28
  "type": "array",
17
- "maxItems": 64,
18
- "items": { "$ref": "#/$defs/app" }
29
+ "items": { "$ref": "#/$defs/dependencySelection" }
30
+ },
31
+ "minimumCoreVersion": {
32
+ "type": ["string", "null"]
33
+ },
34
+ "protectedRoots": {
35
+ "type": "array",
36
+ "items": { "type": "string", "minLength": 1 }
19
37
  },
20
- "targetRequest": { "$ref": "#/$defs/targetRequest" },
21
38
  "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
- }
39
+ "targetRequest": { "$ref": "#/$defs/targetRequest" }
31
40
  },
32
41
  "$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": {
42
+ "nativeBuilder": {
39
43
  "type": "object",
40
- "additionalProperties": false,
41
- "required": ["kind", "generationSha256", "contentSha256", "moduleCount"],
44
+ "required": ["protocol", "describe", "doctor", "prepare", "build", "verify", "run"],
42
45
  "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 }
46
+ "protocol": { "const": "arcane-native-builder/1" },
47
+ "describe": {},
48
+ "doctor": {},
49
+ "prepare": {},
50
+ "build": {},
51
+ "verify": {},
52
+ "run": {}
47
53
  }
48
54
  },
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
55
  "release": {
71
56
  "type": "object",
72
- "additionalProperties": false,
73
- "required": ["canonicalLocation", "policySha256", "contentSha256", "fileCount", "totalBytes"],
57
+ "required": ["files"],
74
58
  "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 }
59
+ "files": {
60
+ "type": "array",
61
+ "uniqueItems": true,
62
+ "items": { "$ref": "#/$defs/relativePath" }
63
+ }
80
64
  }
81
65
  },
82
- "app": {
66
+ "releaseSelection": {
83
67
  "type": "object",
84
- "additionalProperties": false,
85
- "required": ["id", "version", "descriptorSha256", "release"],
68
+ "required": ["root", "release", "readFile"],
86
69
  "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" }
70
+ "root": { "type": "string", "minLength": 1 },
71
+ "release": { "$ref": "#/$defs/release" },
72
+ "readFile": {}
91
73
  }
92
74
  },
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
- }
75
+ "dependencySelection": {
76
+ "allOf": [
77
+ { "$ref": "#/$defs/releaseSelection" },
78
+ {
79
+ "type": "object",
80
+ "required": ["appId"],
81
+ "properties": {
82
+ "appId": { "$ref": "#/$defs/appId" }
83
+ }
84
+ }
85
+ ]
86
+ },
87
+ "appId": {
88
+ "type": "string",
89
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
101
90
  },
102
- "androidDevelopmentSigning": {
91
+ "relativePath": {
92
+ "type": "string",
93
+ "minLength": 1,
94
+ "pattern": "^(?![A-Za-z]:)(?!/)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?!.*\\\\)[^\\u0000]+$"
95
+ },
96
+ "unsignedTargetRequest": {
103
97
  "type": "object",
104
- "additionalProperties": false,
105
- "required": ["mode", "profileId"],
98
+ "required": ["target", "platform", "architecture", "format", "signing", "signingProfileId"],
106
99
  "properties": {
107
- "mode": { "const": "development" },
108
- "profileId": { "const": "arcane-android-development-v1" }
100
+ "signing": { "const": "unsigned-local-test" },
101
+ "signingProfileId": { "type": "null" }
109
102
  }
110
103
  },
111
104
  "targetRequest": {
112
105
  "oneOf": [
113
106
  {
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
- }
107
+ "allOf": [
108
+ { "$ref": "#/$defs/unsignedTargetRequest" },
109
+ {
110
+ "properties": {
111
+ "target": { "const": "portable" },
112
+ "platform": { "enum": ["windows", "linux"] },
113
+ "architecture": { "enum": ["x64", "arm64"] },
114
+ "format": { "const": "portable" }
115
+ }
116
+ }
117
+ ]
124
118
  },
125
119
  {
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
- }
120
+ "allOf": [
121
+ { "$ref": "#/$defs/unsignedTargetRequest" },
122
+ {
123
+ "properties": {
124
+ "target": { "const": "windows-x64" },
125
+ "platform": { "const": "windows" },
126
+ "architecture": { "const": "x64" },
127
+ "format": { "const": "exe" }
128
+ }
129
+ }
130
+ ]
136
131
  },
137
132
  {
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
- }
133
+ "allOf": [
134
+ { "$ref": "#/$defs/unsignedTargetRequest" },
135
+ {
136
+ "properties": {
137
+ "target": { "const": "linux-x64" },
138
+ "platform": { "const": "linux" },
139
+ "architecture": { "const": "x64" },
140
+ "format": { "const": "deb" }
141
+ }
142
+ }
143
+ ]
148
144
  },
149
145
  {
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
- }
146
+ "allOf": [
147
+ { "$ref": "#/$defs/unsignedTargetRequest" },
148
+ {
149
+ "properties": {
150
+ "target": { "const": "linux-arm64" },
151
+ "platform": { "const": "linux" },
152
+ "architecture": { "const": "arm64" },
153
+ "format": { "const": "deb" }
154
+ }
155
+ }
156
+ ]
160
157
  },
161
158
  {
162
159
  "type": "object",
163
- "additionalProperties": false,
164
- "required": ["target", "platform", "architecture", "format", "signing"],
160
+ "required": ["target", "platform", "architecture", "format", "signing", "signingProfileId"],
165
161
  "properties": {
166
162
  "target": { "const": "android-arm64" },
167
163
  "platform": { "const": "android" },
168
164
  "architecture": { "const": "arm64" },
169
165
  "format": { "const": "apk" },
170
- "signing": { "$ref": "#/$defs/androidDevelopmentSigning" }
166
+ "signing": { "const": "development" },
167
+ "signingProfileId": { "const": "arcane-android-development-v1" }
171
168
  }
172
169
  }
173
170
  ]