arcane-os 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/NOTICE +5 -3
  3. package/README.md +73 -24
  4. package/browser-runtime/ARCANE_SDK_BROWSER_RELEASE.json +67 -18
  5. package/browser-runtime/ai/ARCANE_AI_BROWSER_WASM_COMPONENTS.json +16 -5
  6. package/browser-runtime/ai/browser-kokoro-worker.mjs +3 -0
  7. package/browser-runtime/ai/browser-speech-artifacts.mjs +1108 -0
  8. package/browser-runtime/ai/browser-speech-providers.mjs +475 -0
  9. package/browser-runtime/ai/browser-speech.mjs +9 -0
  10. package/browser-runtime/ai/browser-wasm-llm-provider.mjs +1537 -167
  11. package/browser-runtime/ai/browser-wasm.mjs +46 -1
  12. package/browser-runtime/ai/browser-whisper-worker.mjs +3 -0
  13. package/browser-runtime/ai/browser-wllama-runtime.mjs +677 -132
  14. package/browser-runtime/ai/model-controller.mjs +138 -12
  15. package/browser-runtime/ai/speech-worker-client.mjs +207 -0
  16. package/browser-runtime/ai/speech-worker-runtime.mjs +516 -0
  17. package/browser-runtime/ai/wllama/index.mjs +389 -0
  18. package/docs/architecture.md +132 -22
  19. package/docs/reference/README.md +1 -1
  20. package/docs/reference/ai/browser-wasm.md +101 -42
  21. package/docs/reference/availability-and-normalization.md +19 -5
  22. package/docs/reference/behavioral-testing.md +18 -5
  23. package/docs/reference/cli.md +2 -2
  24. package/docs/reference/inventory/package-api.json +14 -14
  25. package/docs/reference/protocols.md +4 -4
  26. package/docs/reference/sdk-api.md +68 -38
  27. package/docs/work-amplification.md +8 -4
  28. package/package.json +7 -3
  29. package/runtime/ARCANE_RUNTIME_RELEASE.json +50 -20
  30. package/runtime/arcane/components/chat.html +280 -62
  31. package/runtime/arcane/components/speech.html +1113 -265
  32. package/runtime/arcane/entities/Chat.js +246 -43
  33. package/runtime/arcane/modules/AI.js +713 -162
  34. package/runtime/arcane/modules/AIProviderRuntime.js +2289 -0
  35. package/runtime/arcane/modules/AIRuntimeState.js +872 -0
  36. package/runtime/arcane/modules/ConfiguredAIChatSession.js +293 -27
  37. package/runtime/arcane/modules/DBOPFSDocumentLibrary.js +682 -0
  38. package/runtime/arcane/modules/DocumentLexicalSearch.js +292 -0
  39. package/runtime/arcane/modules/PersistentAIChatSession.js +268 -0
  40. package/runtime/arcane/modules/StaticDocumentCatalog.js +25 -206
  41. package/schemas/arcane-lock.schema.json +6 -4
  42. package/src/cli/main.mjs +14 -2
  43. package/src/constants.mjs +1 -1
  44. package/src/dev-server.mjs +244 -13
  45. package/src/import-map.mjs +59 -1
  46. package/src/packager/core.mjs +2 -2
  47. package/src/runtime.mjs +14 -4
  48. package/src/sdk-browser-runtime.mjs +28 -75
  49. package/src/templates/workspace-template.mjs +4 -4
  50. package/src/toolchain.mjs +3 -0
  51. package/src/workspace-runtime.mjs +1 -1
  52. package/src/workspace.mjs +1 -1
@@ -29,7 +29,7 @@ for that 86-entry physical-runtime contract.
29
29
  | `arcane-os/packager` | Low-level browser app packager. |
30
30
  | `arcane-os/release-bundle` | Deterministic external release bundles. |
31
31
  | `arcane-os/event-manager` | Central synchronous events, bounded time-travel history, playback, and optional DOM instrumentation. |
32
- | `arcane-os/ai/browser-wasm` | Caller-authenticated browser-local Wllama inference, verified DBOPFS model caching, streaming, cancellation, and structural tool-call results. |
32
+ | `arcane-os/ai/browser-wasm` | Caller-selected browser-local Wllama inference, configurable DBOPFS model checks, streaming, cancellation, and structural tool-call results. |
33
33
 
34
34
  JSON schemas, the runtime manifest, and `package.json` are data-only export subpaths. In Node ESM, import JSON with `with {type: 'json'}`, or resolve and read it explicitly.
35
35
 
@@ -89,7 +89,7 @@ Protocol mechanics are intentionally kept in the [deep protocol guide](protocols
89
89
  | `createArcaneAI()` | function | `arcane-os/ai/browser-wasm` | Browser-WASM local AI | Browser; compatible LLM provider or controller required |
90
90
  | `createAppReleaseBundle()` | function | `arcane-os` | Packaging and release bundles | Node |
91
91
  | `createBrowserModelSource()` | function | `arcane-os/ai/browser-wasm` | Browser-WASM local AI | Browser Fetch with a readable response body |
92
- | `createBrowserWasmLlmProvider()` | function | `arcane-os/ai/browser-wasm` | Browser-WASM local AI | Browser; WebAssembly and verified DBOPFS model bytes |
92
+ | `createBrowserWasmLlmProvider()` | function | `arcane-os/ai/browser-wasm` | Browser-WASM local AI | Browser; WebAssembly and DBOPFS model bytes |
93
93
  | `createCanonicalUstarHeader()` | function | `arcane-os` | Packaging and release bundles | Node |
94
94
  | `createDbopfsModelStore()` | function | `arcane-os/ai/browser-wasm` | Browser-WASM local AI | Browser with a ready DBOPFS instance and OPFS |
95
95
  | `createNativeBuildPlan()` | function | `arcane-os` | Targets, native plans, and providers | Node; selected browser/native target or provider as documented |
@@ -2655,7 +2655,7 @@ The import-map operation also reports the stable operation-specific strings
2655
2655
  `ARCANE_IMPORT_MAP_COLLISION`; package assembly can additionally report
2656
2656
  `ARCANE_IMPORT_MAP_CLEANUP_FAILED`. They are normalized `ArcaneError.code`
2657
2657
  values, but are not properties added to this frozen general registry in SDK
2658
- `0.1.1`.
2658
+ `0.1.2`.
2659
2659
 
2660
2660
  ### Value and import
2661
2661
 
@@ -3474,7 +3474,7 @@ const toolchain = createToolchain({
3474
3474
 
3475
3475
  // Only this explicit call refreshes the managed map and HTML entry.
3476
3476
  const result = await toolchain.importMap();
3477
- console.log(result.importMap.entryCount); // 86 in SDK 0.1.1
3477
+ console.log(result.importMap.entryCount); // 86 in SDK 0.1.2
3478
3478
  ```
3479
3479
 
3480
3480
  ## describeTargets()
@@ -4941,7 +4941,7 @@ console.log(stack.sessionId, stack.events.length);
4941
4941
 
4942
4942
  Deep-frozen authority for the browser-only runtime behind
4943
4943
  `arcane-os/ai/browser-wasm`. It records protocol
4944
- `arcane-ai-browser-wasm/1`, `@wllama/wllama` `3.6.0`, the embedded llama.cpp
4944
+ `arcane-ai-browser-wasm/2`, `@wllama/wllama` `3.6.0`, the embedded llama.cpp
4945
4945
  revision, the exact packaged JavaScript and WebAssembly assets, retained MIT
4946
4946
  licenses, and the disabled compatibility-runtime/remote-model-helper policy.
4947
4947
  It contains no model weights or model catalog.
@@ -4984,7 +4984,7 @@ requires an explicit successful `load()` before requests. When both `llm` and
4984
4984
  ### Signature and result
4985
4985
 
4986
4986
  ```text
4987
- createArcaneAI({ llm=null, provider=null, loadPolicy='on-demand' }={})
4987
+ createArcaneAI({ llm=null, provider=null, loadPolicy='on-demand', security }={})
4988
4988
  ```
4989
4989
 
4990
4990
  At least one `llm` or `provider` is required. The frozen facade contains
@@ -4994,6 +4994,12 @@ methods return the flat LLM status. `fetchRequest()` returns the completion.
4994
4994
  `streamRequest()` consumes streaming and returns text or a tool-name-to-JSON-
4995
4995
  argument-string record. Use `ai.llm.stream()` for the async iterator.
4996
4996
 
4997
+ App and load-operation security use
4998
+ `{security:{secure?:boolean, checks?:{byteLength?:boolean, sha256?:boolean}}}`.
4999
+ The SDK/app default is `secure:false`. Each omitted field inherits and an
5000
+ operation field overrides the corresponding app field. The provider/model
5001
+ binding scope, documented below, sits between those scopes.
5002
+
4997
5003
  ### Availability and normalization
4998
5004
 
4999
5005
  **Browser.** It normalizes lifecycle, state/progress events, lazy/manual use,
@@ -5014,10 +5020,9 @@ stop();
5014
5020
  ### Overview
5015
5021
 
5016
5022
  Validates a caller-owned model descriptor and creates the cancellable HTTPS
5017
- source accepted by the browser-WASM store/provider. Required fields are `id`,
5018
- `name`, `immutableUrl`, `bytes`, `sha256`, `licenseSpdx`, and
5019
- `sourceRevision`. `bytes` is the expected positive safe-integer byte length,
5020
- not inline data.
5023
+ source accepted by the browser-WASM store/provider. The canonical descriptor is
5024
+ `{id, url, bytes?, sha256?}`. `id` and `url` are required. `bytes`, when
5025
+ present, is the expected positive safe-integer byte length, not inline data.
5021
5026
 
5022
5027
  ### Signature and result
5023
5028
 
@@ -5026,30 +5031,34 @@ createBrowserModelSource(descriptor, { fetchImpl=null }={})
5026
5031
  ```
5027
5032
 
5028
5033
  The URL must be absolute HTTPS with no credentials or fragment and no
5029
- revision-floating `main`, `master`, or `latest` path. The SHA-256 value is
5030
- exactly 64 hexadecimal characters. The frozen source exposes its canonical
5034
+ revision-floating `main`, `master`, or `latest` path. A supplied SHA-256 value
5035
+ is exactly 64 hexadecimal characters. The frozen source exposes its canonical
5031
5036
  descriptor and `open({signal})`, which returns `{body, requestedUrl, finalUrl,
5032
- cancel}`. Every direct `open()` performs the configured fetch. The SDK records
5033
- but does not independently prove the supplied license identifier or revision.
5037
+ reportedBytes, cancel}`. `reportedBytes` is the nullable valid nonnegative
5038
+ `Content-Length` observation; it is not an unconditional admission check. Every
5039
+ direct `open()` performs the configured fetch.
5040
+
5041
+ For compatibility, `immutableUrl` remains an alias for `url` and `name` can
5042
+ remain a cache-filename hint; `url` and `immutableUrl` must match when both are
5043
+ present. Legacy `licenseSpdx` and `sourceRevision` properties are not canonical
5044
+ descriptor fields, runtime admission checks, or proof of license rights.
5034
5045
 
5035
5046
  ### Availability and normalization
5036
5047
 
5037
5048
  **Browser Fetch with CORS and a readable response body.** Downloads omit
5038
5049
  credentials/referrer, disable HTTP caching, follow redirects, require a final
5039
- HTTPS URL, compare `Content-Length` when present, and honor `AbortSignal`.
5040
- Actual length and digest admission belongs to the DBOPFS store.
5050
+ HTTPS URL, and honor `AbortSignal`. The DBOPFS store always counts and records
5051
+ actual bytes; it compares expected length or hashes bytes only when the
5052
+ corresponding effective check is enabled.
5041
5053
 
5042
5054
  ### Example
5043
5055
 
5044
5056
  ```javascript
5045
5057
  const source = createBrowserModelSource({
5046
5058
  id:'reviewed-model',
5047
- name:'model-q4.gguf',
5048
- immutableUrl:'https://models.example/revisions/4f7c/model-q4.gguf',
5059
+ url:'https://models.example/revisions/4f7c/model-q4.gguf',
5049
5060
  bytes:123456789,
5050
- sha256:'0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
5051
- licenseSpdx:'Apache-2.0',
5052
- sourceRevision:'4f7c'
5061
+ sha256:'0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef'
5053
5062
  });
5054
5063
  ```
5055
5064
 
@@ -5064,7 +5073,7 @@ created by this module. It serializes requests and exposes provider states
5064
5073
  ### Signature and result
5065
5074
 
5066
5075
  ```text
5067
- createBrowserWasmLlmProvider({ source, store, loadDefaults={}, logger=console }={})
5076
+ createBrowserWasmLlmProvider({ source, store, loadDefaults={}, security, logger=console }={})
5068
5077
  ```
5069
5078
 
5070
5079
  The frozen provider exposes `protocol`, `id`, `model`, `capabilities`,
@@ -5075,12 +5084,24 @@ OpenAI-like message/generation fields, tools, tool choice, parallel tool-call
5075
5084
  preference, and JSON/JSON-Schema structured output. `stream()` returns a frozen
5076
5085
  async iterator with `result` and `cancel(reason)`.
5077
5086
 
5087
+ Provider `security` is the provider/model-binding scope. Security fields resolve
5088
+ independently by precedence: load operation, provider/model binding, app SDK
5089
+ configuration, then SDK default `secure:false`. Omitted fields inherit. After
5090
+ resolution, `secure:true` enables both byte-length and SHA-256 checks by default;
5091
+ `secure:false` disables both by default. An explicit per-check boolean overrides
5092
+ the resolved secure default. Enabled checks require their corresponding
5093
+ descriptor fields and fail closed; disabled checks permit those fields to be
5094
+ absent. Changing effective checks for an already loaded or in-flight model
5095
+ requires unload and reload.
5096
+
5078
5097
  ### Availability and normalization
5079
5098
 
5080
- **Browser with WebAssembly and a verified DBOPFS model.** WebGPU and
5081
- cross-origin isolation are capability observations, not promised gates.
5082
- Returned tools are validated structural data; the SDK never calls a handler.
5083
- Cancellation normalizes to `ARCANE_AI_REQUEST_ABORTED`.
5099
+ **Browser with WebAssembly and a DBOPFS model.** A load succeeds only after
5100
+ Wllama confirms the model is loaded. WebGPU and cross-origin isolation are
5101
+ capability observations, not promised gates. Status discloses effective
5102
+ `security` and per-check `integrity`; unchecked bytes are never labeled SHA-256
5103
+ verified. Returned tools are validated structural data; the SDK never calls a
5104
+ handler. Cancellation normalizes to `ARCANE_AI_REQUEST_ABORTED`.
5084
5105
 
5085
5106
  ### Example
5086
5107
 
@@ -5088,6 +5109,7 @@ Cancellation normalizes to `ARCANE_AI_REQUEST_ABORTED`.
5088
5109
  const provider = createBrowserWasmLlmProvider({
5089
5110
  source,
5090
5111
  store,
5112
+ security:{secure:true},
5091
5113
  loadDefaults:{threads:1, contextTokens:4096, gpuLayers:0}
5092
5114
  });
5093
5115
  console.log(provider.status().state); // unloaded
@@ -5097,10 +5119,10 @@ console.log(provider.status().state); // unloaded
5097
5119
 
5098
5120
  ### Overview
5099
5121
 
5100
- Adapts an existing DBOPFS instance into an authenticated model cache without
5101
- renaming its public methods. The adapter commits model bytes before the
5102
- `arcane.ai.browser-wasm.model.v2` completion manifest and then reopens and
5103
- rehashes the stored file.
5122
+ Adapts an existing DBOPFS instance into a model cache without renaming its
5123
+ public methods. The adapter commits model bytes before the
5124
+ `arcane.ai.browser-wasm.model.v3` completion manifest and always records the
5125
+ observed downloaded or cached byte length.
5104
5126
 
5105
5127
  ### Signature and result
5106
5128
 
@@ -5110,14 +5132,22 @@ createDbopfsModelStore({ dbopfs, tableName='arcane_ai_browser_models' }={})
5110
5132
 
5111
5133
  The frozen result contains `kind`, `tableName`, the original `adapter`, and
5112
5134
  `ready`, `openVerified`, `install`, `ensure`, and `remove`. `ensure()` returns
5113
- `{file, manifest, cache:'verified'|'installed'}`. Every cache reuse rehashes the
5114
- actual bytes. `offline:true` never downloads and rejects a miss with
5115
- `ARCANE_AI_MODEL_OFFLINE_MISS`. Invalid cache records are removed fail closed.
5116
-
5117
- ### Availability and normalization
5118
-
5119
- **Browser with a ready DBOPFS instance and OPFS.** The cache is local integrity
5120
- evidence, not a transferable capability or license proof. Unload/dispose keep
5135
+ the file, manifest, `observedBytes`, integrity detail, and
5136
+ `cache:'cached'|'installed'`. `openVerified()` is a compatibility helper that
5137
+ forces both checks on. Ordinary install/reuse compares expected length only
5138
+ when effective `checks.byteLength` is true and hashes only when effective
5139
+ `checks.sha256` is true. `offline:true` never downloads and rejects a miss with
5140
+ `ARCANE_AI_MODEL_OFFLINE_MISS`. Version-2 manifests with matching model identity
5141
+ can migrate to version 3 without fabricating verification.
5142
+
5143
+ ### Availability and normalization
5144
+
5145
+ **Browser with a ready DBOPFS instance and OPFS.** The cache reports only checks
5146
+ actually performed. Disabled byte-length checks do not compare descriptor
5147
+ `bytes`, disabled SHA-256 checks do not hash or reread solely for a digest, and
5148
+ overall integrity is `verified` when every enabled check succeeds or
5149
+ `unchecked` when neither check is enabled. Cache
5150
+ metadata is not a transferable capability or license proof. Unload/dispose keep
5121
5151
  the cache; `store.remove(source)` explicitly deletes it.
5122
5152
 
5123
5153
  ### Example
@@ -50,10 +50,14 @@ format, or signing loop and does not produce app output.
50
50
 
51
51
  - Scaffold: approximately 15-25 files, less than 100 KiB, target under one
52
52
  second before an optional dependency installation.
53
- - Shared browser payload: 166 files / 3,478,345 bytes, comprising the exact
54
- 155-file / 3,320,994-byte Arcane-upstream runtime receipt, the separate
55
- 8-file / 118,385-byte SDK browser-runtime receipt, and three SDK licensing
56
- files / 38,966 bytes, verified once per exact SDK installation state.
53
+ - Shared browser payload: 188 files / 12,854,565 bytes, comprising the exact
54
+ 160-file / 3,549,207-byte SDK-canonical runtime receipt, the separate
55
+ 25-file / 9,265,304-byte SDK browser-runtime receipt, and three SDK licensing
56
+ files / 40,054 canonical LF bytes, verified once per exact SDK installation
57
+ state.
58
+ The SDK is the canonical owner of portable shared runtime. The receipt keeps
59
+ the prior Arcane OS identity only as migration provenance and binds the
60
+ SDK-owned inventory once without multiplying payload verification.
57
61
  - Small browser package: app bytes plus the shared runtime, copied and inventoried
58
62
  once into an atomic staging directory.
59
63
  - Portable build: one explicitly selected app and one host platform request. In
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arcane-os",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "Arcane OS JavaScript SDK, project-local CLI, browser runtime, and repository-portable application packager.",
5
5
  "type": "module",
6
6
  "main": "./src/index.mjs",
@@ -14,6 +14,7 @@
14
14
  "./events": "./src/events.mjs",
15
15
  "./event-manager": "./src/event-manager.mjs",
16
16
  "./ai/browser-wasm": "./browser-runtime/ai/browser-wasm.mjs",
17
+ "./ai/browser-speech": "./browser-runtime/ai/browser-speech.mjs",
17
18
  "./testing": "./src/testing.mjs",
18
19
  "./targets": "./src/targets/index.mjs",
19
20
  "./native": "./src/native-plan.mjs",
@@ -32,6 +33,9 @@
32
33
  "./schemas/target-adapter.json": "./schemas/target-adapter.schema.json",
33
34
  "./package.json": "./package.json"
34
35
  },
36
+ "imports": {
37
+ "#arcane/persistent-ai-chat-session": "./runtime/arcane/modules/PersistentAIChatSession.js"
38
+ },
35
39
  "files": [
36
40
  "bin/",
37
41
  "browser-runtime/",
@@ -49,8 +53,8 @@
49
53
  "test": "npm run test:unit && npm run test:functional && npm run test:integration && npm run test:regression",
50
54
  "test:release": "node ./bin/arcane-test.mjs test/npm-release.test.mjs",
51
55
  "test:unit": "node ./bin/arcane-test.mjs test/app-descriptor.test.mjs test/app-schema.test.mjs test/contracts.test.mjs test/doctor.test.mjs test/targets.test.mjs test/workspace-operation-lock.test.mjs",
52
- "test:functional": "node ./bin/arcane-test.mjs test/cli.test.mjs test/dev-server.test.mjs test/dom-event-instrumentation.test.mjs test/event-manager.test.mjs test/events.test.mjs test/import-map.test.mjs test/packaging.test.mjs test/reference-completeness.test.mjs test/runtime-api-behavior.test.mjs test/runtime-sync.test.mjs test/runtime.test.mjs test/scaffold.test.mjs test/site.test.mjs test/update-check.test.mjs",
53
- "test:integration": "node ./bin/arcane-test.mjs test/integrated-shared.test.mjs test/integrated-workspace.test.mjs test/native-plan.test.mjs test/native-provider-loader.test.mjs test/npm-release.test.mjs test/release-bundle.test.mjs test/release-capability-smoke.test.mjs test/shared-payload-batch.test.mjs test/tarball.test.mjs",
56
+ "test:functional": "node ./bin/arcane-test.mjs test/browser-speech-providers.test.mjs test/cli.test.mjs test/dbopfs-document-library.test.mjs test/dev-server.test.mjs test/dom-event-instrumentation.test.mjs test/event-manager.test.mjs test/events.test.mjs test/import-map.test.mjs test/packaging.test.mjs test/persistent-ai-chat-session.test.mjs test/reference-completeness.test.mjs test/runtime-api-behavior.test.mjs test/runtime-sync.test.mjs test/runtime.test.mjs test/scaffold.test.mjs test/site.test.mjs test/update-check.test.mjs",
57
+ "test:integration": "node ./bin/arcane-test.mjs test/integrated-shared.test.mjs test/integrated-workspace.test.mjs test/native-plan.test.mjs test/native-provider-loader.test.mjs test/npm-release.test.mjs test/release-bundle.test.mjs test/release-capability-smoke.test.mjs test/shared-payload-batch.test.mjs test/tarball.test.mjs test/wllama-webgpu-runtime.test.mjs",
54
58
  "test:regression": "node ./bin/arcane-test.mjs test/channel-workflows.test.mjs test/native-provider-generation.test.mjs test/testing.test.mjs test/test-sets.test.mjs",
55
59
  "check": "node tools/check-source.mjs && node tools/runtime-manifest.mjs --verify && node tools/sdk-browser-runtime-manifest.mjs --verify && npm test",
56
60
  "check:release": "node tools/check-source.mjs --package-only && node tools/runtime-manifest.mjs --verify && node tools/sdk-browser-runtime-manifest.mjs --verify && npm run test:release",
@@ -1,16 +1,21 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "builder": "arcane-sdk-runtime-v1",
4
- "sdkVersion": "0.1.2",
4
+ "sdkVersion": "0.2.0",
5
5
  "source": {
6
- "repository": "https://github.com/TheWizardNexus/ARCANE-OS.git",
7
- "commit": "567ad110bf57a1c2d4a3daa22ae93716cc5f4d7e",
8
- "bundleVersion": "0.8.12",
9
- "protocol": "arcane/1"
6
+ "authority": "sdk-canonical",
7
+ "repository": "https://github.com/TheWizardNexus/arcane-os-sdk.git",
8
+ "path": "runtime/arcane",
9
+ "protocol": "arcane/1",
10
+ "legacyProjection": {
11
+ "repository": "https://github.com/TheWizardNexus/ARCANE-OS.git",
12
+ "commit": "c540014afe69f14cf5ae60493b7295f36dbcec64",
13
+ "bundleVersion": "0.8.12"
14
+ }
10
15
  },
11
- "fileCount": 155,
12
- "totalBytes": 3320994,
13
- "contentSha256": "7b1b583b4adf6a6ec794da6f0c03c553cdee79784dab75094d83ee24f9637098",
16
+ "fileCount": 160,
17
+ "totalBytes": 3549207,
18
+ "contentSha256": "fa3bcddb5479817971a400049dbeff8431c6499d708e9a8b714176715c5a015a",
14
19
  "files": [
15
20
  {
16
21
  "path": "arcane/components/app-bar.html",
@@ -34,8 +39,8 @@
34
39
  },
35
40
  {
36
41
  "path": "arcane/components/chat.html",
37
- "bytes": 44659,
38
- "sha256": "770a27248ef16ee4e23618250374b9c0a54f7632a1ec2e59087a77473986209f"
42
+ "bytes": 52132,
43
+ "sha256": "42d4769a074e70b5c2768e850eaf29a25c93ee9e8734724b72b2ad585e19b2ca"
39
44
  },
40
45
  {
41
46
  "path": "arcane/components/conversation-view.html",
@@ -154,8 +159,8 @@
154
159
  },
155
160
  {
156
161
  "path": "arcane/components/speech.html",
157
- "bytes": 10912,
158
- "sha256": "170324cb17057460efe72201cea5e7bd58d0b4b3d9b4f884e44d62e5d4f6daa0"
162
+ "bytes": 38217,
163
+ "sha256": "61786685b7f4f257da77db2cbbe8230b379c56292ad635081f5b0763d5f48e1e"
159
164
  },
160
165
  {
161
166
  "path": "arcane/components/summary-strip.html",
@@ -254,8 +259,8 @@
254
259
  },
255
260
  {
256
261
  "path": "arcane/entities/Chat.js",
257
- "bytes": 16273,
258
- "sha256": "6353af820d4912c8945681effdc9f9787b790a69700b2724be5649639743a90f"
262
+ "bytes": 25366,
263
+ "sha256": "20ece4ea4537693c49580dda723e392af152792c25006686ce2f75c7c906984d"
259
264
  },
260
265
  {
261
266
  "path": "arcane/entities/CommunicationMessage.js",
@@ -369,8 +374,8 @@
369
374
  },
370
375
  {
371
376
  "path": "arcane/modules/AI.js",
372
- "bytes": 60674,
373
- "sha256": "a53b71a1b6b4c629f6baa97ab81882858b60d1cb04320b661508c569d66b2170"
377
+ "bytes": 81061,
378
+ "sha256": "8e34445ad394064dae970583147b635de81d878a6caebb8a60d64b34dbc9e658"
374
379
  },
375
380
  {
376
381
  "path": "arcane/modules/AIPreferenceRuntime.js",
@@ -382,6 +387,11 @@
382
387
  "bytes": 2594,
383
388
  "sha256": "7fd028fd9e7f3eb309a6a2b7612a5fc67d4c7289adc4168d681224579220ac09"
384
389
  },
390
+ {
391
+ "path": "arcane/modules/AIProviderRuntime.js",
392
+ "bytes": 83261,
393
+ "sha256": "32aa65b464ea9a9317d47f382063fc052e1f47e63e6c65c28e58898e0ab4911a"
394
+ },
385
395
  {
386
396
  "path": "arcane/modules/AIResponseLength.js",
387
397
  "bytes": 1941,
@@ -392,6 +402,11 @@
392
402
  "bytes": 17587,
393
403
  "sha256": "905af15d5d4912a68fa96ea44b0f6ac2eef90c69c6486ce507e00a7850acd626"
394
404
  },
405
+ {
406
+ "path": "arcane/modules/AIRuntimeState.js",
407
+ "bytes": 24783,
408
+ "sha256": "8b9bfaf208eb44455b581d8e700cec785044f81595dcf839dcdfa3e06ed0f5fa"
409
+ },
395
410
  {
396
411
  "path": "arcane/modules/AnsiText.js",
397
412
  "bytes": 2373,
@@ -484,8 +499,8 @@
484
499
  },
485
500
  {
486
501
  "path": "arcane/modules/ConfiguredAIChatSession.js",
487
- "bytes": 10582,
488
- "sha256": "378559117479eaae4977a127b3dbc02002fcff1768f817a4a5a878b79a04eee3"
502
+ "bytes": 21462,
503
+ "sha256": "12e02b169be6867d82ef8be75bcb1c2b367e778609e8d065389ed109d896c4c8"
489
504
  },
490
505
  {
491
506
  "path": "arcane/modules/ConversationActionItems.js",
@@ -517,6 +532,11 @@
517
532
  "bytes": 30099,
518
533
  "sha256": "eef077c318032626cf3c455e0619dfd6a729e916c367fd4fffac72c6dcb50745"
519
534
  },
535
+ {
536
+ "path": "arcane/modules/DBOPFSDocumentLibrary.js",
537
+ "bytes": 29977,
538
+ "sha256": "4c551b5917d1577b8b46b08457cf762d7ab7548222abd6f4a72c7c7ab5c697b7"
539
+ },
520
540
  {
521
541
  "path": "arcane/modules/DBOPFSWorker.js",
522
542
  "bytes": 3928,
@@ -537,6 +557,11 @@
537
557
  "bytes": 3799,
538
558
  "sha256": "da1eaab03aa5d5ee64d236b5d6bd11a792c811110a1d57fa43d43e26ff97d169"
539
559
  },
560
+ {
561
+ "path": "arcane/modules/DocumentLexicalSearch.js",
562
+ "bytes": 12977,
563
+ "sha256": "f83a8428e5080cd61bbecac39104a768457d4c7b4825acaf9add9286c6b84b09"
564
+ },
540
565
  {
541
566
  "path": "arcane/modules/DocumentNavigation.js",
542
567
  "bytes": 7194,
@@ -632,6 +657,11 @@
632
657
  "bytes": 3624,
633
658
  "sha256": "2e3f8b07c6e0acb1ebf8e1327b208242dff9c55abdd6bedc288abf6692caf43d"
634
659
  },
660
+ {
661
+ "path": "arcane/modules/PersistentAIChatSession.js",
662
+ "bytes": 10890,
663
+ "sha256": "4bb4980e09f3cfcf20ca7c5130e1e133042554b8e1fae4fd613e0e2a9acdbee0"
664
+ },
635
665
  {
636
666
  "path": "arcane/modules/PreferenceStore.js",
637
667
  "bytes": 3794,
@@ -694,8 +724,8 @@
694
724
  },
695
725
  {
696
726
  "path": "arcane/modules/StaticDocumentCatalog.js",
697
- "bytes": 56002,
698
- "sha256": "ec512ec054d2fdc1d7ced29d1038257bb6f9872920f442376b906783f12bb6e1"
727
+ "bytes": 47189,
728
+ "sha256": "002ab228c2ec80006c6365eb5bbdde33e5951c7424ca15aa16b4d9663bcc77f8"
699
729
  },
700
730
  {
701
731
  "path": "arcane/modules/SystemAppearance.js",