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.
- package/CHANGELOG.md +14 -0
- package/README.md +86 -117
- package/bin/arcane-test.mjs +170 -46
- package/browser-runtime/ai/browser-speech-artifacts.mjs +855 -895
- package/browser-runtime/ai/browser-speech-providers.mjs +80 -204
- package/browser-runtime/ai/browser-wasm-llm-provider.mjs +627 -819
- package/browser-runtime/ai/browser-wasm.mjs +24 -35
- package/browser-runtime/ai/browser-wllama-runtime.mjs +64 -316
- package/browser-runtime/ai/model-controller.mjs +584 -181
- package/browser-runtime/ai/speech-worker-client.mjs +8 -148
- package/browser-runtime/ai/speech-worker-runtime.mjs +642 -374
- package/browser-runtime/dom-event-instrumentation.mjs +55 -147
- package/browser-runtime/event-manager.mjs +239 -624
- package/package.json +5 -6
- package/runtime/arcane/components/app-bar.html +3 -15
- package/runtime/arcane/components/assistant-panel.html +10 -10
- package/runtime/arcane/components/calculator.html +1 -1
- package/runtime/arcane/components/chat.html +1359 -135
- package/runtime/arcane/components/conversation-view.html +2 -2
- package/runtime/arcane/components/document-inspector.html +11 -17
- package/runtime/arcane/components/file-manager.html +13 -56
- package/runtime/arcane/components/markdown-document.html +82 -281
- package/runtime/arcane/components/markdown-editor.html +7 -10
- package/runtime/arcane/components/media-embed.html +6 -6
- package/runtime/arcane/components/screen-capture.html +4 -4
- package/runtime/arcane/components/source-explanation.html +2 -2
- package/runtime/arcane/components/speech.html +112 -68
- package/runtime/arcane/components/terminal-workspace.html +4 -4
- package/runtime/arcane/components/theme-editor.html +1 -1
- package/runtime/arcane/components/unified-inbox.html +2 -2
- package/runtime/arcane/components/voice-transcription.html +31 -21
- package/runtime/arcane/entities/Calculation.js +2 -3
- package/runtime/arcane/entities/Chat.js +228 -43
- package/runtime/arcane/entities/Preference.js +3 -5
- package/runtime/arcane/entities/Weather.js +5 -5
- package/runtime/arcane/modules/AI.js +1042 -427
- package/runtime/arcane/modules/AIProviderRuntime.js +618 -359
- package/runtime/arcane/modules/AIResponseLength.js +9 -19
- package/runtime/arcane/modules/AIRuntimeState.js +109 -72
- package/runtime/arcane/modules/ArcaneNavigationPolicy.js +45 -32
- package/runtime/arcane/modules/BrowserTestSuite.js +78 -122
- package/runtime/arcane/modules/CalculatorEngine.js +9 -9
- package/runtime/arcane/modules/CommunicationAppController.js +3 -7
- package/runtime/arcane/modules/ComponentContracts.js +30 -32
- package/runtime/arcane/modules/ConfiguredAIChatSession.js +281 -230
- package/runtime/arcane/modules/ConversationActionItems.js +26 -59
- package/runtime/arcane/modules/ConversationClosingReport.js +34 -61
- package/runtime/arcane/modules/ConversationTimebox.js +27 -15
- package/runtime/arcane/modules/DBOPFSDocumentLibrary.js +152 -344
- package/runtime/arcane/modules/DocumentLexicalSearch.js +25 -91
- package/runtime/arcane/modules/HTMLImport.js +54 -1
- package/runtime/arcane/modules/IsolatedModelQuestionRunner.js +40 -203
- package/runtime/arcane/modules/LocalAIReadiness.js +40 -60
- package/runtime/arcane/modules/LocalAIReadinessController.js +15 -13
- package/runtime/arcane/modules/MD.js +1 -45
- package/runtime/arcane/modules/Mail.js +51 -103
- package/runtime/arcane/modules/MailOutbox.mjs +95 -193
- package/runtime/arcane/modules/MailTransport.mjs +36 -57
- package/runtime/arcane/modules/ModelDefinition.js +22 -106
- package/runtime/arcane/modules/OpenMeteoWeatherProvider.js +39 -101
- package/runtime/arcane/modules/PersistentAIChatSession.js +281 -18
- package/runtime/arcane/modules/PreferenceStore.js +102 -30
- package/runtime/arcane/modules/RiskSignalAnalyzer.js +8 -9
- package/runtime/arcane/modules/ScopedOPFSCache.js +7 -42
- package/runtime/arcane/modules/ScreenCapture.js +175 -128
- package/runtime/arcane/modules/SpeechPlayback.js +46 -149
- package/runtime/arcane/modules/StaticDocumentCatalog.js +173 -407
- package/runtime/arcane/modules/ToolCallRouter.js +25 -12
- package/runtime/arcane/modules/YouTubeMedia.js +6 -5
- package/schemas/arcane-app-bundle.schema.json +13 -78
- package/schemas/arcane-app.schema.json +9 -25
- package/schemas/arcane-lock.schema.json +18 -151
- package/schemas/arcane-package.schema.json +2 -16
- package/schemas/native-build-plan.schema.json +119 -122
- package/src/app-descriptor.mjs +75 -132
- package/src/application-tests.mjs +200 -0
- package/src/cli/main.mjs +27 -46
- package/src/constants.mjs +3 -4
- package/src/dev-server.mjs +30 -324
- package/src/doctor.mjs +92 -154
- package/src/dom-event-instrumentation.mjs +55 -147
- package/src/errors.mjs +2 -3
- package/src/event-manager.mjs +239 -624
- package/src/event-queue.mjs +3 -3
- package/src/import-map.mjs +273 -1028
- package/src/index.mjs +14 -16
- package/src/installed-sdk-runtime.mjs +27 -67
- package/src/integrated-provider-loader.mjs +53 -382
- package/src/mail-api.mjs +0 -2
- package/src/mail-server.mjs +224 -580
- package/src/mail.mjs +4 -10
- package/src/native-plan.mjs +163 -598
- package/src/native-provider-loader.mjs +104 -1063
- package/src/packager/core.mjs +485 -3229
- package/src/process.mjs +5 -10
- package/src/release-bundle.mjs +292 -2405
- package/src/runtime.mjs +76 -396
- package/src/scaffold.mjs +30 -80
- package/src/sdk-browser-runtime.mjs +70 -626
- package/src/source-server.mjs +588 -0
- package/src/targets/index.mjs +78 -188
- package/src/templates/workspace-template.mjs +19 -135
- package/src/testing-loader.mjs +164 -0
- package/src/testing.mjs +1 -1
- package/src/toolchain.mjs +131 -544
- package/src/update-check.mjs +26 -64
- package/src/workspace-operation-lock.mjs +139 -430
- package/src/workspace-runtime.mjs +109 -1558
- package/src/workspace.mjs +40 -302
- package/browser-runtime/ARCANE_SDK_BROWSER_RELEASE.json +0 -218
- package/browser-runtime/ai/ARCANE_AI_BROWSER_SPEECH_COMPONENTS.json +0 -203
- package/browser-runtime/ai/ARCANE_AI_BROWSER_WASM_COMPONENTS.json +0 -80
- package/browser-runtime/ai/internal/sha256.mjs +0 -166
- package/docs/architecture.md +0 -344
- package/docs/compatibility.md +0 -36
- package/docs/event-manager.md +0 -294
- package/docs/platform-targets.md +0 -108
- package/docs/publishing.md +0 -201
- package/docs/reference/README.md +0 -185
- package/docs/reference/ai/browser-speech-package-authority.json +0 -835
- package/docs/reference/ai/browser-speech.md +0 -1295
- package/docs/reference/ai/browser-wasm.md +0 -530
- package/docs/reference/arcane-ollama.md +0 -288
- package/docs/reference/availability-and-normalization.md +0 -183
- package/docs/reference/behavioral-testing.md +0 -133
- package/docs/reference/cli.md +0 -779
- package/docs/reference/core/README.md +0 -62
- package/docs/reference/core/arcane-ai-contracts.md +0 -907
- package/docs/reference/core/arcane-api.md +0 -601
- package/docs/reference/core/arcane-entities.md +0 -65
- package/docs/reference/core/arcane-events.md +0 -134
- package/docs/reference/core/ollama-module.md +0 -181
- package/docs/reference/core/reference/arcane-api/ai-and-ollama.md +0 -1909
- package/docs/reference/core/reference/arcane-api/applications-terminal-capabilities.md +0 -1057
- package/docs/reference/core/reference/arcane-api/core-and-events.md +0 -320
- package/docs/reference/core/reference/arcane-api/filesystem-storage-preferences-appearance.md +0 -610
- package/docs/reference/core/reference/arcane-api/namespaces.md +0 -1157
- package/docs/reference/core/reference/arcane-api/platform-installation-users-system.md +0 -1423
- package/docs/reference/core/reference/arcane-api/session-provisioning-diagnostics-development.md +0 -315
- package/docs/reference/event-manager.md +0 -1511
- package/docs/reference/inventory/package-api.json +0 -3284
- package/docs/reference/inventory/runtime-components.json +0 -1011
- package/docs/reference/inventory/runtime-entities.json +0 -26
- package/docs/reference/inventory/runtime-modules.json +0 -1431
- package/docs/reference/mail.md +0 -316
- package/docs/reference/protocols.md +0 -719
- package/docs/reference/runtime-components.md +0 -1366
- package/docs/reference/runtime-entities.md +0 -303
- package/docs/reference/runtime-modules.md +0 -2965
- package/docs/reference/sdk-api.md +0 -6698
- package/docs/roadmap.md +0 -79
- package/docs/work-amplification.md +0 -129
- package/runtime/ARCANE_RUNTIME_RELEASE.json +0 -826
|
@@ -7,9 +7,9 @@ import {
|
|
|
7
7
|
unavailableMessageInspection
|
|
8
8
|
} from './MessageAdvisory.js?v=3';
|
|
9
9
|
|
|
10
|
-
export const COMMUNICATION_APP_CONTROLLER_ERROR_CODES=
|
|
10
|
+
export const COMMUNICATION_APP_CONTROLLER_ERROR_CODES={
|
|
11
11
|
destroyed:'ARCANE_COMMUNICATION_APP_CONTROLLER_DESTROYED'
|
|
12
|
-
}
|
|
12
|
+
};
|
|
13
13
|
|
|
14
14
|
function communicationAbortError(reason){
|
|
15
15
|
if(
|
|
@@ -570,11 +570,7 @@ export default class CommunicationAppController{
|
|
|
570
570
|
return;
|
|
571
571
|
}
|
|
572
572
|
if(service.externalUrl){
|
|
573
|
-
const opened=globalThis.open(
|
|
574
|
-
service.externalUrl,
|
|
575
|
-
'_blank',
|
|
576
|
-
'noopener,noreferrer'
|
|
577
|
-
);
|
|
573
|
+
const opened=globalThis.open(service.externalUrl,'_blank');
|
|
578
574
|
if(!opened){
|
|
579
575
|
this.elements.settings.setStatus(
|
|
580
576
|
`Open ${service.externalUrl} to continue.`
|
|
@@ -3,14 +3,16 @@ import {
|
|
|
3
3
|
projectArcaneDOMEvent
|
|
4
4
|
} from 'arcane-os/event-manager';
|
|
5
5
|
|
|
6
|
+
const completeValue=(value)=>value;
|
|
7
|
+
|
|
6
8
|
const own=(value,key)=>Object.prototype.hasOwnProperty.call(value,key);
|
|
7
9
|
|
|
8
|
-
const STT_ACTIVATION_EVENT_TYPES=
|
|
10
|
+
const STT_ACTIVATION_EVENT_TYPES=completeValue({
|
|
9
11
|
error:'speech-stt-activation-error',
|
|
10
12
|
request:'speech-stt-activation-request'
|
|
11
13
|
});
|
|
12
14
|
|
|
13
|
-
const STT_ACTIVATION_ERROR_CODES=
|
|
15
|
+
const STT_ACTIVATION_ERROR_CODES=completeValue({
|
|
14
16
|
buttonInvalid:'ARCANE_STT_ACTIVATION_BUTTON_INVALID',
|
|
15
17
|
buttonListenerFailed:'ARCANE_STT_ACTIVATION_BUTTON_LISTENER_FAILED',
|
|
16
18
|
domProjectionUnavailable:'ARCANE_STT_ACTIVATION_DOM_PROJECTION_UNAVAILABLE',
|
|
@@ -22,7 +24,7 @@ const STT_ACTIVATION_ERROR_CODES=Object.freeze({
|
|
|
22
24
|
requestRejected:'ARCANE_STT_ACTIVATION_REQUEST_REJECTED'
|
|
23
25
|
});
|
|
24
26
|
|
|
25
|
-
const STT_ACTIVATION_REASONS=
|
|
27
|
+
const STT_ACTIVATION_REASONS=completeValue({
|
|
26
28
|
explicitRequest:'explicit-request',
|
|
27
29
|
presentationCallbackThrew:'activation-presentation-callback-threw',
|
|
28
30
|
requestRejected:'activation-request-rejected'
|
|
@@ -152,7 +154,7 @@ function stringRecord(value,defaults,label){
|
|
|
152
154
|
return normalized;
|
|
153
155
|
}
|
|
154
156
|
|
|
155
|
-
const CHART_LABELS=
|
|
157
|
+
const CHART_LABELS=completeValue({
|
|
156
158
|
empty:'No data yet.',
|
|
157
159
|
hover:'Point under cursor',
|
|
158
160
|
keyboard:'Keyboard-selected point',
|
|
@@ -335,7 +337,7 @@ function normalizeDashboardDefinitions(values=[]){
|
|
|
335
337
|
);
|
|
336
338
|
}
|
|
337
339
|
|
|
338
|
-
const DASHBOARD_LABELS=
|
|
340
|
+
const DASHBOARD_LABELS=completeValue({
|
|
339
341
|
description:'Choose which charts appear on your dashboard.',
|
|
340
342
|
empty:'No dashboard items are available.',
|
|
341
343
|
heading:'Configure Dashboard',
|
|
@@ -469,9 +471,9 @@ function createSTTActivationController({
|
|
|
469
471
|
|
|
470
472
|
function visibleError(error,fallback){
|
|
471
473
|
const message=typeof error?.message==='string'
|
|
472
|
-
?error.message
|
|
474
|
+
?error.message
|
|
473
475
|
:'';
|
|
474
|
-
return
|
|
476
|
+
return message||fallback;
|
|
475
477
|
}
|
|
476
478
|
|
|
477
479
|
function cancellation(error){
|
|
@@ -541,11 +543,7 @@ function createSTTActivationController({
|
|
|
541
543
|
if(!progress){
|
|
542
544
|
return fallback;
|
|
543
545
|
}
|
|
544
|
-
|
|
545
|
-
?`${progress.completed} ${progress.unit}`
|
|
546
|
-
:`${progress.completed} of ${progress.total} ${progress.unit}`;
|
|
547
|
-
const heartbeat=progress.heartbeat?', active heartbeat':'';
|
|
548
|
-
return `${progress.phase}, ${amount}${heartbeat}`;
|
|
546
|
+
return progress.phase;
|
|
549
547
|
}
|
|
550
548
|
|
|
551
549
|
function status(){
|
|
@@ -588,14 +586,14 @@ function createSTTActivationController({
|
|
|
588
586
|
}
|
|
589
587
|
const generation=++requestGeneration;
|
|
590
588
|
requestError='';
|
|
591
|
-
const intent=
|
|
589
|
+
const intent=completeValue(
|
|
592
590
|
{
|
|
593
591
|
role:'stt',
|
|
594
592
|
action:nextAction,
|
|
595
593
|
reason:'user'
|
|
596
594
|
}
|
|
597
595
|
);
|
|
598
|
-
const activationRequest=
|
|
596
|
+
const activationRequest=completeValue({intent,state:role});
|
|
599
597
|
const operationId=
|
|
600
598
|
`${events.instanceId}:stt-activation:${(++operationSequence).toString(36)}`;
|
|
601
599
|
let requestInvoked=false;
|
|
@@ -668,7 +666,7 @@ function createSTTActivationController({
|
|
|
668
666
|
:STT_ACTIVATION_REASONS.presentationCallbackThrew;
|
|
669
667
|
const errorPublication=events.dispatch(
|
|
670
668
|
STT_ACTIVATION_EVENT_TYPES.error,
|
|
671
|
-
|
|
669
|
+
completeValue(
|
|
672
670
|
{
|
|
673
671
|
request:activationRequest,
|
|
674
672
|
error,
|
|
@@ -774,7 +772,7 @@ function createSTTActivationController({
|
|
|
774
772
|
error
|
|
775
773
|
);
|
|
776
774
|
}
|
|
777
|
-
return
|
|
775
|
+
return completeValue(
|
|
778
776
|
{
|
|
779
777
|
get action(){return action();},
|
|
780
778
|
get error(){return requestError;},
|
|
@@ -791,7 +789,7 @@ function createSTTActivationController({
|
|
|
791
789
|
);
|
|
792
790
|
}
|
|
793
791
|
|
|
794
|
-
const VOICE_LABELS=
|
|
792
|
+
const VOICE_LABELS=completeValue({
|
|
795
793
|
complete:'Complete Transcription',
|
|
796
794
|
description:'Record one or more segments. Each segment is transcribed after you press Stop.',
|
|
797
795
|
empty:'Your transcription will appear here after you stop recording.',
|
|
@@ -800,7 +798,7 @@ const VOICE_LABELS=Object.freeze({
|
|
|
800
798
|
transcription:'Voice transcription'
|
|
801
799
|
});
|
|
802
800
|
|
|
803
|
-
const VOICE_MESSAGES=
|
|
801
|
+
const VOICE_MESSAGES=completeValue({
|
|
804
802
|
cancelled:'Transcription canceled.',
|
|
805
803
|
complete:'Complete.',
|
|
806
804
|
completeError:'Unable to complete this transcription.',
|
|
@@ -893,26 +891,26 @@ function normalizeVoiceOptions(input={},previous={}){
|
|
|
893
891
|
}
|
|
894
892
|
|
|
895
893
|
function appendTranscription(current='',segment='',separator='\n\n'){
|
|
896
|
-
current=text(current,'',true)
|
|
897
|
-
segment=text(segment,'',true)
|
|
898
|
-
if(
|
|
894
|
+
current=text(current,'',true);
|
|
895
|
+
segment=text(segment,'',true);
|
|
896
|
+
if(segment.length===0){
|
|
899
897
|
return current;
|
|
900
898
|
}
|
|
901
|
-
return current?`${current}${separator}${segment}`:segment;
|
|
899
|
+
return current.length>0?`${current}${separator}${segment}`:segment;
|
|
902
900
|
}
|
|
903
901
|
|
|
904
|
-
const MARKDOWN_FORMATS=
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
902
|
+
const MARKDOWN_FORMATS=completeValue([
|
|
903
|
+
completeValue({id:'heading',label:'Heading',title:'Heading',prefix:'## ',placeholder:'Heading'}),
|
|
904
|
+
completeValue({id:'bold',label:'B',title:'Bold',before:'**',after:'**',placeholder:'bold text'}),
|
|
905
|
+
completeValue({id:'italic',label:'I',title:'Italic',before:'_',after:'_',placeholder:'italic text'}),
|
|
906
|
+
completeValue({id:'strike',label:'S',title:'Strikethrough',before:'~~',after:'~~',placeholder:'strikethrough text'}),
|
|
907
|
+
completeValue({id:'code',label:'Code',title:'Inline code',before:'`',after:'`',placeholder:'code'}),
|
|
908
|
+
completeValue({id:'link',label:'Link',title:'Link',before:'[',after:'](https://)',placeholder:'link text'}),
|
|
909
|
+
completeValue({id:'quote',label:'Quote',title:'Quote',prefix:'> ',placeholder:'Quote'}),
|
|
910
|
+
completeValue({id:'list',label:'List',title:'Bulleted list',prefix:'- ',placeholder:'List item'})
|
|
913
911
|
]);
|
|
914
912
|
|
|
915
|
-
const MARKDOWN_LABELS=
|
|
913
|
+
const MARKDOWN_LABELS=completeValue({
|
|
916
914
|
bodyPlaceholder:'Write in Markdown...',
|
|
917
915
|
emptyError:'Write content before saving.',
|
|
918
916
|
preview:'Markdown preview',
|