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.
- package/CHANGELOG.md +154 -0
- package/COMMERCIAL-LICENSE.md +13 -0
- package/LICENSE +661 -0
- package/NOTICE +70 -0
- package/README.md +448 -0
- package/bin/arcane-test.mjs +741 -0
- package/bin/arcane.mjs +5 -0
- package/docs/architecture.md +234 -0
- package/docs/compatibility.md +36 -0
- package/docs/event-manager.md +166 -0
- package/docs/platform-targets.md +108 -0
- package/docs/publishing.md +203 -0
- package/docs/reference/README.md +117 -0
- package/docs/reference/arcane-ollama.md +288 -0
- package/docs/reference/availability-and-normalization.md +123 -0
- package/docs/reference/behavioral-testing.md +86 -0
- package/docs/reference/cli.md +569 -0
- package/docs/reference/core/README.md +62 -0
- package/docs/reference/core/arcane-ai-contracts.md +873 -0
- package/docs/reference/core/arcane-api.md +601 -0
- package/docs/reference/core/arcane-entities.md +65 -0
- package/docs/reference/core/arcane-events.md +134 -0
- package/docs/reference/core/ollama-module.md +181 -0
- package/docs/reference/core/reference/arcane-api/ai-and-ollama.md +1909 -0
- package/docs/reference/core/reference/arcane-api/applications-terminal-capabilities.md +1057 -0
- package/docs/reference/core/reference/arcane-api/core-and-events.md +320 -0
- package/docs/reference/core/reference/arcane-api/filesystem-storage-preferences-appearance.md +610 -0
- package/docs/reference/core/reference/arcane-api/namespaces.md +1157 -0
- package/docs/reference/core/reference/arcane-api/platform-installation-users-system.md +1423 -0
- package/docs/reference/core/reference/arcane-api/session-provisioning-diagnostics-development.md +315 -0
- package/docs/reference/event-manager.md +957 -0
- package/docs/reference/inventory/package-api.json +2632 -0
- package/docs/reference/inventory/runtime-components.json +934 -0
- package/docs/reference/inventory/runtime-entities.json +26 -0
- package/docs/reference/inventory/runtime-modules.json +1249 -0
- package/docs/reference/protocols.md +242 -0
- package/docs/reference/runtime-components.md +1098 -0
- package/docs/reference/runtime-entities.md +303 -0
- package/docs/reference/runtime-modules.md +2010 -0
- package/docs/reference/sdk-api.md +4901 -0
- package/docs/roadmap.md +79 -0
- package/docs/work-amplification.md +124 -0
- package/node_modules/event-pubsub/CHANGELOG.md +55 -0
- package/node_modules/event-pubsub/MIGRATION.md +70 -0
- package/node_modules/event-pubsub/README.md +363 -0
- package/node_modules/event-pubsub/SECURITY.md +37 -0
- package/node_modules/event-pubsub/index.js +141 -0
- package/node_modules/event-pubsub/licence +21 -0
- package/node_modules/event-pubsub/package.json +59 -0
- package/node_modules/strong-type/README.md +408 -0
- package/node_modules/strong-type/assets/strong-type-header.png +0 -0
- package/node_modules/strong-type/index.js +1151 -0
- package/node_modules/strong-type/licence +21 -0
- package/node_modules/strong-type/node.js +125 -0
- package/node_modules/strong-type/package.json +61 -0
- package/package.json +95 -0
- package/runtime/ARCANE_RUNTIME_RELEASE.json +791 -0
- package/runtime/arcane/components/app-bar.html +468 -0
- package/runtime/arcane/components/assistant-panel.html +715 -0
- package/runtime/arcane/components/calculator.html +8 -0
- package/runtime/arcane/components/chart.html +655 -0
- package/runtime/arcane/components/chat.html +1225 -0
- package/runtime/arcane/components/conversation-view.html +13 -0
- package/runtime/arcane/components/dashboard-config.html +341 -0
- package/runtime/arcane/components/data-maintenance.html +112 -0
- package/runtime/arcane/components/data-view.html +92 -0
- package/runtime/arcane/components/directory-picker.html +197 -0
- package/runtime/arcane/components/document-inspector.html +252 -0
- package/runtime/arcane/components/file-drop.html +264 -0
- package/runtime/arcane/components/file-inspector.html +293 -0
- package/runtime/arcane/components/file-manager.html +1715 -0
- package/runtime/arcane/components/header.html +142 -0
- package/runtime/arcane/components/integration-settings.html +14 -0
- package/runtime/arcane/components/local-ai-status.html +360 -0
- package/runtime/arcane/components/markdown-document.html +1048 -0
- package/runtime/arcane/components/markdown-editor.html +360 -0
- package/runtime/arcane/components/media-embed.html +8 -0
- package/runtime/arcane/components/modal.html +402 -0
- package/runtime/arcane/components/output-panel.html +259 -0
- package/runtime/arcane/components/preferences-form.html +135 -0
- package/runtime/arcane/components/record-timeline.html +105 -0
- package/runtime/arcane/components/relationship-board.html +116 -0
- package/runtime/arcane/components/screen-capture.html +8 -0
- package/runtime/arcane/components/source-code-viewer.html +441 -0
- package/runtime/arcane/components/source-explanation.html +124 -0
- package/runtime/arcane/components/speech.html +365 -0
- package/runtime/arcane/components/summary-strip.html +177 -0
- package/runtime/arcane/components/table.html +77 -0
- package/runtime/arcane/components/task-progress.html +282 -0
- package/runtime/arcane/components/terminal-workspace.html +65 -0
- package/runtime/arcane/components/theme-editor.html +41 -0
- package/runtime/arcane/components/theme-switcher.html +46 -0
- package/runtime/arcane/components/unified-inbox.html +20 -0
- package/runtime/arcane/components/voice-transcription.html +476 -0
- package/runtime/arcane/components/weather-widget.html +8 -0
- package/runtime/arcane/components/web-navigator.html +239 -0
- package/runtime/arcane/css/communications.css +1 -0
- package/runtime/arcane/css/dashboard-config.css +45 -0
- package/runtime/arcane/css/document-site.css +981 -0
- package/runtime/arcane/css/layout.css +438 -0
- package/runtime/arcane/css/primitives.css +321 -0
- package/runtime/arcane/css/theme.css +112 -0
- package/runtime/arcane/css/utility-workspace.css +1 -0
- package/runtime/arcane/entities/ApiModelRecord.js +20 -0
- package/runtime/arcane/entities/Calculation.js +13 -0
- package/runtime/arcane/entities/Chat.js +581 -0
- package/runtime/arcane/entities/CommunicationMessage.js +29 -0
- package/runtime/arcane/entities/CommunicationThread.js +21 -0
- package/runtime/arcane/entities/Document.js +10 -0
- package/runtime/arcane/entities/File.js +143 -0
- package/runtime/arcane/entities/Image.js +135 -0
- package/runtime/arcane/entities/IntentEnvelope.js +834 -0
- package/runtime/arcane/entities/Preference.js +83 -0
- package/runtime/arcane/entities/TWiNPolicyDecision.js +1092 -0
- package/runtime/arcane/entities/TerminalSession.js +46 -0
- package/runtime/arcane/entities/Theme.js +107 -0
- package/runtime/arcane/entities/User.js +1046 -0
- package/runtime/arcane/entities/Weather.js +23 -0
- package/runtime/arcane/img/arcane-os-everywhere.png +0 -0
- package/runtime/arcane/img/arrow-left.png +0 -0
- package/runtime/arcane/img/arrow-right.png +0 -0
- package/runtime/arcane/img/doc.svg +5 -0
- package/runtime/arcane/img/folder.svg +4 -0
- package/runtime/arcane/img/image.svg +5 -0
- package/runtime/arcane/img/refresh.png +0 -0
- package/runtime/arcane/img/send.svg +9 -0
- package/runtime/arcane/img/trash.svg +5 -0
- package/runtime/arcane/img/upload.svg +5 -0
- package/runtime/arcane/modules/AI.js +2048 -0
- package/runtime/arcane/modules/AIPreferenceRuntime.js +32 -0
- package/runtime/arcane/modules/AIPreferenceTuple.js +92 -0
- package/runtime/arcane/modules/AIResponseLength.js +42 -0
- package/runtime/arcane/modules/AIResponseURLPolicy.js +626 -0
- package/runtime/arcane/modules/AnsiText.js +53 -0
- package/runtime/arcane/modules/ApiModelDatabase.js +25 -0
- package/runtime/arcane/modules/AppDataScope.js +245 -0
- package/runtime/arcane/modules/AppearancePreferences.js +28 -0
- package/runtime/arcane/modules/ArcaneCommunicationBridge.js +22 -0
- package/runtime/arcane/modules/ArcaneNavigationPolicy.js +135 -0
- package/runtime/arcane/modules/ArcaneNetworkPolicy.js +255 -0
- package/runtime/arcane/modules/AsyncBoundary.js +161 -0
- package/runtime/arcane/modules/BrowserTestSuite.js +326 -0
- package/runtime/arcane/modules/CalculatorEngine.js +20 -0
- package/runtime/arcane/modules/CaseEvidenceIndexer.js +134 -0
- package/runtime/arcane/modules/ChartLibrary.js +35 -0
- package/runtime/arcane/modules/ChatRecords.js +13 -0
- package/runtime/arcane/modules/CommunicationAppController.js +43 -0
- package/runtime/arcane/modules/CommunicationHub.js +16 -0
- package/runtime/arcane/modules/CommunicationPreferences.js +13 -0
- package/runtime/arcane/modules/CommunicationProviderRegistry.js +16 -0
- package/runtime/arcane/modules/ComponentContracts.js +586 -0
- package/runtime/arcane/modules/ConfiguredAIChatSession.js +288 -0
- package/runtime/arcane/modules/ConversationActionItems.js +488 -0
- package/runtime/arcane/modules/ConversationClosingReport.js +274 -0
- package/runtime/arcane/modules/ConversationTimebox.js +527 -0
- package/runtime/arcane/modules/CoreLocalModelCatalog.js +255 -0
- package/runtime/arcane/modules/DBLS.js +171 -0
- package/runtime/arcane/modules/DBOPFS.js +1154 -0
- package/runtime/arcane/modules/DBOPFSWorker.js +116 -0
- package/runtime/arcane/modules/DataMaintenance.js +91 -0
- package/runtime/arcane/modules/DevelopmentWorkspace.js +74 -0
- package/runtime/arcane/modules/DirectoryPicker.js +109 -0
- package/runtime/arcane/modules/DocumentNavigation.js +223 -0
- package/runtime/arcane/modules/Errors.js +1025 -0
- package/runtime/arcane/modules/GifEncoder.js +29 -0
- package/runtime/arcane/modules/HTMLImport.js +114 -0
- package/runtime/arcane/modules/InMemoryCommunicationProvider.js +14 -0
- package/runtime/arcane/modules/IsolatedModelQuestionRunner.js +275 -0
- package/runtime/arcane/modules/LocalAIReadiness.js +870 -0
- package/runtime/arcane/modules/LocalAIReadinessController.js +156 -0
- package/runtime/arcane/modules/MD.js +111 -0
- package/runtime/arcane/modules/Mail.js +352 -0
- package/runtime/arcane/modules/MailTransport.mjs +180 -0
- package/runtime/arcane/modules/Marked.min.js +71 -0
- package/runtime/arcane/modules/MemoryRecords.js +44 -0
- package/runtime/arcane/modules/MessageAdvisory.js +38 -0
- package/runtime/arcane/modules/ModelDefinition.js +189 -0
- package/runtime/arcane/modules/Ollama.js +74 -0
- package/runtime/arcane/modules/OllamaModelIdentifier.js +21 -0
- package/runtime/arcane/modules/OllamaSettings.js +24 -0
- package/runtime/arcane/modules/OpenMeteoWeatherProvider.js +14 -0
- package/runtime/arcane/modules/PreferenceStore.js +109 -0
- package/runtime/arcane/modules/QRCode.min.js +1 -0
- package/runtime/arcane/modules/Questionnaire.js +61 -0
- package/runtime/arcane/modules/RecordLinkIndex.js +24 -0
- package/runtime/arcane/modules/RecordPassageIndex.js +222 -0
- package/runtime/arcane/modules/RecordReviewStore.js +94 -0
- package/runtime/arcane/modules/RevocableProjectionLedger.js +1623 -0
- package/runtime/arcane/modules/RiskSignalAnalyzer.js +37 -0
- package/runtime/arcane/modules/ScamRiskPolicy.js +62 -0
- package/runtime/arcane/modules/ScopedOPFSCache.js +183 -0
- package/runtime/arcane/modules/ScreenCapture.js +20 -0
- package/runtime/arcane/modules/SpeechPlayback.js +581 -0
- package/runtime/arcane/modules/StaticDocumentCatalog.js +1248 -0
- package/runtime/arcane/modules/SystemAppearance.js +20 -0
- package/runtime/arcane/modules/SystemPlatformPresentation.js +51 -0
- package/runtime/arcane/modules/SystemToolRegistry.js +28 -0
- package/runtime/arcane/modules/TerminalClient.js +52 -0
- package/runtime/arcane/modules/TerminalCommandRegistry.js +50 -0
- package/runtime/arcane/modules/ThemeBootstrap.js +26 -0
- package/runtime/arcane/modules/ThemeManager.js +131 -0
- package/runtime/arcane/modules/TimeGuard.js +149 -0
- package/runtime/arcane/modules/ToolCallRouter.js +83 -0
- package/runtime/arcane/modules/WaitForComponent.js +102 -0
- package/runtime/arcane/modules/YouTubeMedia.js +16 -0
- package/runtime/arcane/modules/uPlot.LICENSE.txt +21 -0
- package/runtime/arcane/modules/uPlot.iife.min.js +2 -0
- package/runtime/arcane/modules/uPlot.min.css +1 -0
- package/runtime/arcane/security/arcane-network-policy.json +6 -0
- package/runtime/strong-type/index.js +352 -0
- package/runtime/strong-type/licence +21 -0
- package/runtime/strong-type/package.json +45 -0
- package/schemas/arcane-app-bundle.schema.json +125 -0
- package/schemas/arcane-app.schema.json +329 -0
- package/schemas/arcane-lock.schema.json +86 -0
- package/schemas/arcane-package.schema.json +224 -0
- package/schemas/cli-event.schema.json +122 -0
- package/schemas/event-stack.schema.json +152 -0
- package/schemas/native-build-plan.schema.json +176 -0
- package/schemas/target-adapter.schema.json +117 -0
- package/src/app-descriptor.mjs +500 -0
- package/src/cli/main.mjs +561 -0
- package/src/constants.mjs +31 -0
- package/src/dev-server.mjs +718 -0
- package/src/doctor.mjs +315 -0
- package/src/dom-event-instrumentation.mjs +594 -0
- package/src/errors.mjs +75 -0
- package/src/event-manager.mjs +1342 -0
- package/src/event-queue.mjs +138 -0
- package/src/events.mjs +219 -0
- package/src/index.mjs +177 -0
- package/src/integrated-provider-loader.mjs +432 -0
- package/src/native-plan.mjs +698 -0
- package/src/native-provider-loader.mjs +1126 -0
- package/src/packager/core.mjs +2691 -0
- package/src/process.mjs +353 -0
- package/src/release-bundle.mjs +2523 -0
- package/src/repository.mjs +90 -0
- package/src/runtime.mjs +452 -0
- package/src/scaffold.mjs +380 -0
- package/src/targets/index.mjs +436 -0
- package/src/templates/assets/app-icon.png +0 -0
- package/src/templates/workspace-template.mjs +388 -0
- package/src/testing-loader.mjs +9 -0
- package/src/testing.mjs +427 -0
- package/src/toolchain.mjs +1335 -0
- package/src/update-check.mjs +307 -0
- package/src/workspace.mjs +449 -0
package/docs/reference/core/reference/arcane-api/session-provisioning-diagnostics-development.md
ADDED
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
# Arcane API session, provisioning, diagnostics, and development guides
|
|
2
|
+
|
|
3
|
+
These guides cover host-session control, read-only provisioning plans, local
|
|
4
|
+
diagnostics, and the bounded Developer application surface. They supplement the
|
|
5
|
+
canonical method inventory in [`docs/arcane-api.md`](../../arcane-api.md).
|
|
6
|
+
|
|
7
|
+
## Arcane.session.logout()
|
|
8
|
+
|
|
9
|
+
### Overview
|
|
10
|
+
|
|
11
|
+
Requests logout of the current operating-system session. It does not merely
|
|
12
|
+
close the Arcane window: other applications in the same desktop session may be
|
|
13
|
+
closed and unsaved work may be lost.
|
|
14
|
+
|
|
15
|
+
This method is restricted to a Shell application with `session.control` and is
|
|
16
|
+
an exclusive host mutation. Present an explicit confirmation immediately before
|
|
17
|
+
calling it.
|
|
18
|
+
|
|
19
|
+
### Return value and completion
|
|
20
|
+
|
|
21
|
+
On a real host the promise resolves after the operating system accepted process
|
|
22
|
+
creation, with `{requested:true,accepted:true,simulated:false,command,pid}`.
|
|
23
|
+
Simulation has a distinct shape:
|
|
24
|
+
`{requested:true,accepted:true,simulated:true,command,args}`. It starts no
|
|
25
|
+
process and therefore has no `pid`. Acceptance is not proof that a real logout
|
|
26
|
+
completed; the renderer may lose its connection as the session ends.
|
|
27
|
+
|
|
28
|
+
Unsupported session controllers, process-dispatch failure, and a ten-second
|
|
29
|
+
dispatch timeout reject with a structured `Arcane.Error`.
|
|
30
|
+
|
|
31
|
+
### Example
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
async function requestOperatingSystemLogout() {
|
|
35
|
+
const access = await Arcane.capabilities.list();
|
|
36
|
+
if (!access.methods.includes('session.logout')) {
|
|
37
|
+
throw new Error('Logout is unavailable in this application');
|
|
38
|
+
}
|
|
39
|
+
return Arcane.session.logout();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
document.querySelector('#confirm-logout')?.addEventListener(
|
|
43
|
+
'click',
|
|
44
|
+
async function handleConfirmedLogout() {
|
|
45
|
+
await requestOperatingSystemLogout();
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
```
|
|
49
|
+
## Arcane.provisioning.plan()
|
|
50
|
+
|
|
51
|
+
### Overview
|
|
52
|
+
|
|
53
|
+
Builds a read-only plan for provisioning one or more local Arcane users. It
|
|
54
|
+
validates host-specific username policy, inspects current installation and
|
|
55
|
+
requirements, and describes the work that a later privileged operation would
|
|
56
|
+
perform. It does not create users, change passwords, assign shells, or install
|
|
57
|
+
Arcane.
|
|
58
|
+
|
|
59
|
+
### Input and result
|
|
60
|
+
|
|
61
|
+
Pass one username or an array. The frontend normalizes a single value to an
|
|
62
|
+
array; Core applies the native username policy and rejects the whole request
|
|
63
|
+
when validation fails.
|
|
64
|
+
|
|
65
|
+
The Provisioner-only method requires `provisioning.manage` and resolves to:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
{
|
|
69
|
+
ok, version, installation, requirements,
|
|
70
|
+
users: [{username, exists, action}],
|
|
71
|
+
usernamePolicy, elevated, simulation, blocked, steps
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Treat the returned plan as a current snapshot. Re-read it before presenting a
|
|
76
|
+
later mutation because accounts, elevation, requirements, or installation state
|
|
77
|
+
may have changed.
|
|
78
|
+
|
|
79
|
+
### Example
|
|
80
|
+
|
|
81
|
+
```js
|
|
82
|
+
async function previewProvisioning(usernames) {
|
|
83
|
+
const plan = await Arcane.provisioning.plan(usernames);
|
|
84
|
+
for (const user of plan.users) {
|
|
85
|
+
console.log(`${user.username}: ${user.action}`);
|
|
86
|
+
}
|
|
87
|
+
return plan;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
await previewProvisioning(['arcane-demo-user']);
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Arcane.diagnostics.recentErrors()
|
|
94
|
+
|
|
95
|
+
### Overview
|
|
96
|
+
|
|
97
|
+
Returns up to 60 recent structured Core errors, newest first, for an application
|
|
98
|
+
granted `diagnostics.read`. Use it to populate a local diagnostics view after a
|
|
99
|
+
failure; do not upload complete records automatically because technical fields
|
|
100
|
+
can contain local paths, command output, usernames, or other machine context.
|
|
101
|
+
|
|
102
|
+
### Diagnostic records
|
|
103
|
+
|
|
104
|
+
Each record includes an opaque `id`, `time`, `scope`, stable `code`, user-facing
|
|
105
|
+
`message` and `resolution`, status and retry metadata, plus bounded technical
|
|
106
|
+
fields when the originating error supplied them. The in-memory list is not a
|
|
107
|
+
durable audit log and is replaced as newer failures arrive.
|
|
108
|
+
|
|
109
|
+
### Example
|
|
110
|
+
|
|
111
|
+
```js
|
|
112
|
+
async function showRecentDiagnosticSummaries() {
|
|
113
|
+
const diagnostics = await Arcane.diagnostics.recentErrors();
|
|
114
|
+
for (const item of diagnostics) {
|
|
115
|
+
console.log(`${item.time} ${item.code}: ${item.message}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
await showRecentDiagnosticSummaries();
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Arcane.diagnostics.get()
|
|
123
|
+
|
|
124
|
+
### Overview
|
|
125
|
+
|
|
126
|
+
Retrieves one complete in-memory diagnostic by the opaque ID returned through
|
|
127
|
+
`Arcane.diagnostics.recentErrors()`, a rejected `Arcane.Error.diagnosticId`, or a
|
|
128
|
+
`core.error` event. Use this only when the user asks to inspect the corresponding
|
|
129
|
+
failure in detail.
|
|
130
|
+
|
|
131
|
+
### Return value and errors
|
|
132
|
+
|
|
133
|
+
Requires `diagnostics.read` and resolves to the matching diagnostic record. It
|
|
134
|
+
rejects with `DIAGNOSTIC_NOT_FOUND` after the record is evicted or Core restarts.
|
|
135
|
+
Do not assume an ID is portable between host sessions.
|
|
136
|
+
|
|
137
|
+
### Example
|
|
138
|
+
|
|
139
|
+
```js
|
|
140
|
+
async function loadNewestDiagnostic() {
|
|
141
|
+
const recent = await Arcane.diagnostics.recentErrors();
|
|
142
|
+
if (recent.length === 0) return null;
|
|
143
|
+
return Arcane.diagnostics.get(recent[0].id);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
const diagnostic = await loadNewestDiagnostic();
|
|
147
|
+
if (diagnostic) console.log(diagnostic.code, diagnostic.resolution);
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Arcane.development.inspect()
|
|
151
|
+
|
|
152
|
+
### Overview
|
|
153
|
+
|
|
154
|
+
Inspects one explicit canonical Arcane OS checkout and reports developer
|
|
155
|
+
readiness without changing it. The Developer application uses this snapshot to
|
|
156
|
+
show repository identity, Git state, external tools, signing readiness, and the
|
|
157
|
+
allowlisted setup tasks that are ready or need work.
|
|
158
|
+
|
|
159
|
+
### Root and result
|
|
160
|
+
|
|
161
|
+
Requires `development.read` and the `developer` app ID. `root` must be an
|
|
162
|
+
existing absolute, non-link directory containing the expected `.git`, root
|
|
163
|
+
package, app-building SOP, theme, and canonical machine-bundle markers. Core
|
|
164
|
+
rejects a different or unsafe layout rather than treating any directory as a
|
|
165
|
+
development workspace. Git must be installed and the checkout must pass the
|
|
166
|
+
repository-lineage check; otherwise the call rejects with
|
|
167
|
+
`DEVELOPMENT_GIT_REQUIRED` or a more specific repository error.
|
|
168
|
+
|
|
169
|
+
The result contains `{root,runtimeVersion,repository,git,tools,signing,readiness}`.
|
|
170
|
+
`readiness.tasks` is the authoritative list to display; do not invent setup task
|
|
171
|
+
IDs or infer readiness from path names alone.
|
|
172
|
+
|
|
173
|
+
### Example
|
|
174
|
+
|
|
175
|
+
```js
|
|
176
|
+
async function inspectSelectedCheckout(root) {
|
|
177
|
+
const inspection = await Arcane.development.inspect(root);
|
|
178
|
+
for (const task of inspection.readiness.tasks) {
|
|
179
|
+
console.log(`${task.label}: ${task.ready ? 'ready' : task.message}`);
|
|
180
|
+
}
|
|
181
|
+
return inspection;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const inspection = await inspectSelectedCheckout('C:\\ArcaneOS');
|
|
185
|
+
console.log(inspection.repository.bundleVersion);
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Arcane.development.context()
|
|
189
|
+
|
|
190
|
+
### Overview
|
|
191
|
+
|
|
192
|
+
Returns bounded, redacted source excerpts from tracked text files in an approved
|
|
193
|
+
Arcane checkout. It is intended for local developer assistance, not arbitrary
|
|
194
|
+
filesystem search. Core excludes Git metadata, dependencies, generated output,
|
|
195
|
+
credential-like paths, secret file names, binary extensions, links, and files
|
|
196
|
+
outside the checkout.
|
|
197
|
+
|
|
198
|
+
### Query and result bounds
|
|
199
|
+
|
|
200
|
+
Requires `development.read` and the `developer` app ID. `query` must contain
|
|
201
|
+
1–4,096 text characters. Core derives at most six search terms, ranks tracked
|
|
202
|
+
files, and returns at most ten files, 6,144 characters of excerpt per file, and
|
|
203
|
+
49,152 characters of excerpt text overall. Individual candidates over 512 KiB
|
|
204
|
+
are excluded. Git and valid repository lineage are prerequisites; a missing Git
|
|
205
|
+
installation rejects with `DEVELOPMENT_GIT_REQUIRED` before source collection.
|
|
206
|
+
|
|
207
|
+
The promise resolves to `{root,query,files,totals}`. Each file record contains
|
|
208
|
+
`{path,bytes,sha256,truncated,redacted,content}`. A digest identifies the read
|
|
209
|
+
bytes for correlation only; it is not publisher authentication. Review returned
|
|
210
|
+
content before sending it to any external service even when `redacted` is true.
|
|
211
|
+
|
|
212
|
+
### Example
|
|
213
|
+
|
|
214
|
+
```js
|
|
215
|
+
async function findStorageImplementation(root) {
|
|
216
|
+
const result = await Arcane.development.context(
|
|
217
|
+
root,
|
|
218
|
+
'Where is app-scoped storage validated and persisted?'
|
|
219
|
+
);
|
|
220
|
+
return result.files.map(function selectContextFile(file) {
|
|
221
|
+
return { path: file.path, content: file.content, redacted: file.redacted };
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
console.log(await findStorageImplementation('C:\\ArcaneOS'));
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Arcane.development.setup()
|
|
229
|
+
|
|
230
|
+
### Overview
|
|
231
|
+
|
|
232
|
+
Runs one setup task previously reported by `Arcane.development.inspect()`. This
|
|
233
|
+
is a Developer-only, exclusive mutation requiring `development.manage`. It can
|
|
234
|
+
install dependency trees, configure Git hooks, or initialize local Microsoft NT
|
|
235
|
+
development signing, so show the exact task and obtain confirmation before
|
|
236
|
+
dispatch.
|
|
237
|
+
|
|
238
|
+
### Task IDs and operation result
|
|
239
|
+
|
|
240
|
+
Pass the approved checkout `root` and one exact `taskId`:
|
|
241
|
+
|
|
242
|
+
- `root-dependencies`
|
|
243
|
+
- `machine-dependencies`
|
|
244
|
+
- `git-hooks`
|
|
245
|
+
- `windows-signing` (Microsoft NT only)
|
|
246
|
+
|
|
247
|
+
Core rejects every other value. Node.js 22+ with npm and Git are required for
|
|
248
|
+
all four tasks because Core validates repository lineage before dispatching any
|
|
249
|
+
setup operation. Missing Git rejects with `DEVELOPMENT_GIT_REQUIRED`. The
|
|
250
|
+
promise resolves to
|
|
251
|
+
`{root,taskId,completed:true,exitCode,operation}` after the owned task completes.
|
|
252
|
+
Follow `operation.started`, `operation.log`, `operation.progress`,
|
|
253
|
+
`operation.completed`, and `operation.failed` for visible long-work status.
|
|
254
|
+
|
|
255
|
+
### Example
|
|
256
|
+
|
|
257
|
+
```js
|
|
258
|
+
async function runConfirmedSetupTask(root, taskId) {
|
|
259
|
+
const inspection = await Arcane.development.inspect(root);
|
|
260
|
+
const task = inspection.readiness.tasks.find(function findSetupTask(item) {
|
|
261
|
+
return item.id === taskId;
|
|
262
|
+
});
|
|
263
|
+
if (!task || !task.available) throw new Error('Setup task is unavailable');
|
|
264
|
+
return Arcane.development.setup(root, taskId);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
document.querySelector('#install-root-dependencies')?.addEventListener(
|
|
268
|
+
'click',
|
|
269
|
+
async function handleDependencySetup() {
|
|
270
|
+
const result = await runConfirmedSetupTask('C:\\ArcaneOS', 'root-dependencies');
|
|
271
|
+
console.log(result.completed, result.exitCode);
|
|
272
|
+
}
|
|
273
|
+
);
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## Arcane.development.installNode()
|
|
277
|
+
|
|
278
|
+
### Overview
|
|
279
|
+
|
|
280
|
+
Installs the supported external Node.js development runtime through Arcane's
|
|
281
|
+
owned Developer workflow. This is a privileged, exclusive mutation available
|
|
282
|
+
only to the Developer application with `development.manage`, and only on
|
|
283
|
+
Microsoft NT. Linux callers receive guidance to use the operating system's
|
|
284
|
+
trusted package channel instead.
|
|
285
|
+
|
|
286
|
+
### Result and operation lifecycle
|
|
287
|
+
|
|
288
|
+
The method takes no arguments and resolves to
|
|
289
|
+
`{installed,simulated,node,operation}`. On a real host, Core verifies that a
|
|
290
|
+
supported Node.js 22-or-newer runtime is usable after installation and rejects
|
|
291
|
+
when the installation command finishes without producing that state.
|
|
292
|
+
|
|
293
|
+
This can start external package-management work. Require confirmation and keep
|
|
294
|
+
the operation events visible rather than blocking the UI or promising a fixed
|
|
295
|
+
completion time.
|
|
296
|
+
|
|
297
|
+
### Example
|
|
298
|
+
|
|
299
|
+
```js
|
|
300
|
+
async function installNodeAfterConfirmation() {
|
|
301
|
+
const access = await Arcane.capabilities.list();
|
|
302
|
+
if (!access.methods.includes('development.node.install')) {
|
|
303
|
+
throw new Error('Managed Node.js installation is unavailable');
|
|
304
|
+
}
|
|
305
|
+
return Arcane.development.installNode();
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
document.querySelector('#install-node')?.addEventListener(
|
|
309
|
+
'click',
|
|
310
|
+
async function handleNodeInstallation() {
|
|
311
|
+
const result = await installNodeAfterConfirmation();
|
|
312
|
+
console.log(result.node.version);
|
|
313
|
+
}
|
|
314
|
+
);
|
|
315
|
+
```
|