@songsid/agend 2.3.4-beta.5 → 2.3.5-alpha.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/README.md +2 -0
- package/README.zh-TW.md +2 -0
- package/THIRD_PARTY_NOTICES.md +53 -0
- package/dist/agent-endpoint.d.ts +5 -1
- package/dist/agent-endpoint.js +12 -2
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/backend/claude-code.d.ts +18 -12
- package/dist/backend/claude-code.js +225 -136
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/codex-package.d.ts +5 -2
- package/dist/backend/codex-package.js +1 -5
- package/dist/backend/codex-package.js.map +1 -1
- package/dist/backend/codex.d.ts +136 -113
- package/dist/backend/codex.js +1271 -1219
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/grok-model-cache.d.ts +7 -0
- package/dist/backend/grok-model-cache.js +65 -0
- package/dist/backend/grok-model-cache.js.map +1 -0
- package/dist/backend/grok.d.ts +2 -0
- package/dist/backend/grok.js +22 -0
- package/dist/backend/grok.js.map +1 -1
- package/dist/backend/native-pane.d.ts +9 -0
- package/dist/backend/native-pane.js +59 -0
- package/dist/backend/native-pane.js.map +1 -0
- package/dist/backend/types.d.ts +7 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/channel/ipc-bridge.d.ts +2 -0
- package/dist/channel/mcp-tools.js +1 -1
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/cli.js +6 -2
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +59 -0
- package/dist/config-validator.js.map +1 -1
- package/dist/config.js +16 -0
- package/dist/config.js.map +1 -1
- package/dist/daemon.d.ts +62 -5
- package/dist/daemon.js +760 -240
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-consumed-watch.d.ts +15 -3
- package/dist/delivery-consumed-watch.js +23 -1
- package/dist/delivery-consumed-watch.js.map +1 -1
- package/dist/delivery-outbox.d.ts +5 -0
- package/dist/delivery-outbox.js +32 -4
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/delivery-reconciliation.d.ts +2 -35
- package/dist/delivery-reconciliation.js +2 -156
- package/dist/delivery-reconciliation.js.map +1 -1
- package/dist/fleet-context.d.ts +2 -2
- package/dist/fleet-level-config.d.ts +1 -1
- package/dist/fleet-level-config.js +2 -0
- package/dist/fleet-level-config.js.map +1 -1
- package/dist/fleet-manager.d.ts +125 -2
- package/dist/fleet-manager.js +1157 -27
- package/dist/fleet-manager.js.map +1 -1
- package/dist/fleet-windows-runtime.d.ts +92 -0
- package/dist/fleet-windows-runtime.js +373 -0
- package/dist/fleet-windows-runtime.js.map +1 -0
- package/dist/instance-config-impact.js +4 -0
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +20 -3
- package/dist/instance-lifecycle.js +358 -156
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/local-pane-endpoint.d.ts +46 -0
- package/dist/local-pane-endpoint.js +189 -0
- package/dist/local-pane-endpoint.js.map +1 -0
- package/dist/local-pane-launcher.d.ts +2 -0
- package/dist/local-pane-launcher.js +38 -0
- package/dist/local-pane-launcher.js.map +1 -0
- package/dist/local-pane-stage.ps1 +101 -0
- package/dist/locale.js +34 -0
- package/dist/locale.js.map +1 -1
- package/dist/model-catalog-defaults.d.ts +14 -0
- package/dist/model-catalog-defaults.js +20 -0
- package/dist/model-catalog-defaults.js.map +1 -0
- package/dist/native-agent-admission.d.ts +7 -0
- package/dist/native-agent-admission.js +26 -0
- package/dist/native-agent-admission.js.map +1 -0
- package/dist/native-daemon-client.d.ts +13 -0
- package/dist/native-daemon-client.js +28 -0
- package/dist/native-daemon-client.js.map +1 -0
- package/dist/native-instance-api.d.ts +14 -0
- package/dist/native-instance-api.js +205 -0
- package/dist/native-instance-api.js.map +1 -0
- package/dist/native-instance-input.d.ts +84 -0
- package/dist/native-instance-input.js +54 -0
- package/dist/native-instance-input.js.map +1 -0
- package/dist/native-instance-registry.d.ts +32 -0
- package/dist/native-instance-registry.js +105 -0
- package/dist/native-instance-registry.js.map +1 -0
- package/dist/native-mcp.d.ts +40 -0
- package/dist/native-mcp.js +278 -0
- package/dist/native-mcp.js.map +1 -0
- package/dist/native-model-catalog.d.ts +5 -0
- package/dist/native-model-catalog.js +76 -0
- package/dist/native-model-catalog.js.map +1 -0
- package/dist/native-pane-crash-budget.d.ts +20 -0
- package/dist/native-pane-crash-budget.js +60 -0
- package/dist/native-pane-crash-budget.js.map +1 -0
- package/dist/native-pane-create.d.ts +26 -0
- package/dist/native-pane-create.js +53 -0
- package/dist/native-pane-create.js.map +1 -0
- package/dist/native-pane-lifecycle.d.ts +65 -0
- package/dist/native-pane-lifecycle.js +227 -0
- package/dist/native-pane-lifecycle.js.map +1 -0
- package/dist/native-pane-manager.d.ts +58 -0
- package/dist/native-pane-manager.js +563 -0
- package/dist/native-pane-manager.js.map +1 -0
- package/dist/native-pane-output-log.d.ts +15 -0
- package/dist/native-pane-output-log.js +108 -0
- package/dist/native-pane-output-log.js.map +1 -0
- package/dist/native-pane-reconciliation.d.ts +4 -0
- package/dist/native-pane-reconciliation.js +40 -0
- package/dist/native-pane-reconciliation.js.map +1 -0
- package/dist/native-pane-recovery.d.ts +12 -0
- package/dist/native-pane-recovery.js +10 -0
- package/dist/native-pane-recovery.js.map +1 -0
- package/dist/native-pane-tools.d.ts +2 -0
- package/dist/native-pane-tools.js +14 -0
- package/dist/native-pane-tools.js.map +1 -0
- package/dist/needs-you-hub.d.ts +2 -0
- package/dist/needs-you-hub.js +1 -0
- package/dist/needs-you-hub.js.map +1 -1
- package/dist/needs-you.d.ts +12 -1
- package/dist/needs-you.js +8 -1
- package/dist/needs-you.js.map +1 -1
- package/dist/outbound-handlers.d.ts +16 -2
- package/dist/outbound-handlers.js +67 -3
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +38 -0
- package/dist/outbound-schemas.js +12 -0
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/pane-port.d.ts +107 -0
- package/dist/pane-port.js +2 -0
- package/dist/pane-port.js.map +1 -0
- package/dist/runtime-api.d.ts +8 -0
- package/dist/runtime-api.js +96 -0
- package/dist/runtime-api.js.map +1 -0
- package/dist/runtime-assets/@xterm/addon-serialize/LICENSE +21 -0
- package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.js +2 -0
- package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.mjs +19 -0
- package/dist/runtime-assets/@xterm/addon-serialize/package.json +29 -0
- package/dist/runtime-assets/@xterm/headless/LICENSE +21 -0
- package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.js +2 -0
- package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.mjs +46 -0
- package/dist/runtime-assets/@xterm/headless/package.json +29 -0
- package/dist/runtime-assets/node-pty/CONPTY-LICENSE +21 -0
- package/dist/runtime-assets/node-pty/CONPTY-NOTICE.md +503 -0
- package/dist/runtime-assets/node-pty/LICENSE +69 -0
- package/dist/runtime-assets/node-pty/lib/conpty_console_list_agent.js +16 -0
- package/dist/runtime-assets/node-pty/lib/eventEmitter2.js +47 -0
- package/dist/runtime-assets/node-pty/lib/index.js +52 -0
- package/dist/runtime-assets/node-pty/lib/interfaces.js +7 -0
- package/dist/runtime-assets/node-pty/lib/shared/conout.js +11 -0
- package/dist/runtime-assets/node-pty/lib/terminal.js +190 -0
- package/dist/runtime-assets/node-pty/lib/types.js +7 -0
- package/dist/runtime-assets/node-pty/lib/unixTerminal.js +346 -0
- package/dist/runtime-assets/node-pty/lib/utils.js +39 -0
- package/dist/runtime-assets/node-pty/lib/windowsConoutConnection.js +125 -0
- package/dist/runtime-assets/node-pty/lib/windowsPtyAgent.js +320 -0
- package/dist/runtime-assets/node-pty/lib/windowsTerminal.js +199 -0
- package/dist/runtime-assets/node-pty/lib/worker/conoutSocketWorker.js +22 -0
- package/dist/runtime-assets/node-pty/package.json +64 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty.node +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
- package/dist/runtime-bundle.d.ts +17 -0
- package/dist/runtime-bundle.js +147 -0
- package/dist/runtime-bundle.js.map +1 -0
- package/dist/runtime-cli.d.ts +2 -0
- package/dist/runtime-cli.js +117 -0
- package/dist/runtime-cli.js.map +1 -0
- package/dist/runtime-client-store.d.ts +49 -0
- package/dist/runtime-client-store.js +292 -0
- package/dist/runtime-client-store.js.map +1 -0
- package/dist/runtime-client.d.ts +100 -0
- package/dist/runtime-client.js +700 -0
- package/dist/runtime-client.js.map +1 -0
- package/dist/runtime-coordinator.d.ts +82 -0
- package/dist/runtime-coordinator.js +864 -0
- package/dist/runtime-coordinator.js.map +1 -0
- package/dist/runtime-pane-assets.d.ts +17 -0
- package/dist/runtime-pane-assets.js +23 -0
- package/dist/runtime-pane-assets.js.map +1 -0
- package/dist/runtime-pane-boot.d.ts +2 -0
- package/dist/runtime-pane-boot.js +24 -0
- package/dist/runtime-pane-boot.js.map +1 -0
- package/dist/runtime-pane-codex-index.d.ts +1 -0
- package/dist/runtime-pane-codex-index.js +47 -0
- package/dist/runtime-pane-codex-index.js.map +1 -0
- package/dist/runtime-pane-config.d.ts +16 -0
- package/dist/runtime-pane-config.js +54 -0
- package/dist/runtime-pane-config.js.map +1 -0
- package/dist/runtime-pane-host.d.ts +43 -0
- package/dist/runtime-pane-host.js +403 -0
- package/dist/runtime-pane-host.js.map +1 -0
- package/dist/runtime-pane-job-owner.d.ts +1 -0
- package/dist/runtime-pane-job-owner.js +29 -0
- package/dist/runtime-pane-job-owner.js.map +1 -0
- package/dist/runtime-pane-job.ps1 +116 -0
- package/dist/runtime-pane-link.d.ts +40 -0
- package/dist/runtime-pane-link.js +246 -0
- package/dist/runtime-pane-link.js.map +1 -0
- package/dist/runtime-pane-mcp-protocol.d.ts +32 -0
- package/dist/runtime-pane-mcp-protocol.js +39 -0
- package/dist/runtime-pane-mcp-protocol.js.map +1 -0
- package/dist/runtime-pane-mcp-relay.d.ts +17 -0
- package/dist/runtime-pane-mcp-relay.js +70 -0
- package/dist/runtime-pane-mcp-relay.js.map +1 -0
- package/dist/runtime-pane-mcp.d.ts +43 -0
- package/dist/runtime-pane-mcp.js +137 -0
- package/dist/runtime-pane-mcp.js.map +1 -0
- package/dist/runtime-pane-native.d.ts +45 -0
- package/dist/runtime-pane-native.js +65 -0
- package/dist/runtime-pane-native.js.map +1 -0
- package/dist/runtime-pane-output.d.ts +19 -0
- package/dist/runtime-pane-output.js +53 -0
- package/dist/runtime-pane-output.js.map +1 -0
- package/dist/runtime-pane-port.d.ts +134 -0
- package/dist/runtime-pane-port.js +537 -0
- package/dist/runtime-pane-port.js.map +1 -0
- package/dist/runtime-pane-private.d.ts +14 -0
- package/dist/runtime-pane-private.js +51 -0
- package/dist/runtime-pane-private.js.map +1 -0
- package/dist/runtime-pane-private.ps1 +14 -0
- package/dist/runtime-pane-process.d.ts +4 -0
- package/dist/runtime-pane-process.js +108 -0
- package/dist/runtime-pane-process.js.map +1 -0
- package/dist/runtime-pane-protocol.d.ts +169 -0
- package/dist/runtime-pane-protocol.js +189 -0
- package/dist/runtime-pane-protocol.js.map +1 -0
- package/dist/runtime-pane-screen.d.ts +19 -0
- package/dist/runtime-pane-screen.js +76 -0
- package/dist/runtime-pane-screen.js.map +1 -0
- package/dist/runtime-pane-service.d.ts +11 -0
- package/dist/runtime-pane-service.js +221 -0
- package/dist/runtime-pane-service.js.map +1 -0
- package/dist/runtime-pane-stdio-protocol.d.ts +54 -0
- package/dist/runtime-pane-stdio-protocol.js +94 -0
- package/dist/runtime-pane-stdio-protocol.js.map +1 -0
- package/dist/runtime-pane-stdio.d.ts +3 -0
- package/dist/runtime-pane-stdio.js +123 -0
- package/dist/runtime-pane-stdio.js.map +1 -0
- package/dist/runtime-pane-store.d.ts +33 -0
- package/dist/runtime-pane-store.js +164 -0
- package/dist/runtime-pane-store.js.map +1 -0
- package/dist/runtime-pane-transcript-protocol.d.ts +43 -0
- package/dist/runtime-pane-transcript-protocol.js +58 -0
- package/dist/runtime-pane-transcript-protocol.js.map +1 -0
- package/dist/runtime-pane-transcript.d.ts +45 -0
- package/dist/runtime-pane-transcript.js +605 -0
- package/dist/runtime-pane-transcript.js.map +1 -0
- package/dist/runtime-pane-worker.d.ts +1 -0
- package/dist/runtime-pane-worker.js +154 -0
- package/dist/runtime-pane-worker.js.map +1 -0
- package/dist/runtime-protocol.d.ts +149 -0
- package/dist/runtime-protocol.js +19 -0
- package/dist/runtime-protocol.js.map +1 -0
- package/dist/runtime-switches.d.ts +79 -0
- package/dist/runtime-switches.js +90 -0
- package/dist/runtime-switches.js.map +1 -0
- package/dist/runtime-transcript-delta-reader.d.ts +23 -0
- package/dist/runtime-transcript-delta-reader.js +74 -0
- package/dist/runtime-transcript-delta-reader.js.map +1 -0
- package/dist/runtime-transcript-source.d.ts +36 -0
- package/dist/runtime-transcript-source.js +189 -0
- package/dist/runtime-transcript-source.js.map +1 -0
- package/dist/runtime-windows-bridge.d.ts +41 -0
- package/dist/runtime-windows-bridge.js +157 -0
- package/dist/runtime-windows-bridge.js.map +1 -0
- package/dist/settings-api.js +58 -0
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +28 -0
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-confirmation.d.ts +15 -1
- package/dist/settings-confirmation.js +46 -9
- package/dist/settings-confirmation.js.map +1 -1
- package/dist/settings-effect.js +23 -1
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-http-confirmation.js +11 -2
- package/dist/settings-http-confirmation.js.map +1 -1
- package/dist/tmux-control.d.ts +2 -1
- package/dist/tmux-control.js.map +1 -1
- package/dist/tmux-manager.d.ts +2 -1
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tmux-pane-host.d.ts +26 -0
- package/dist/tmux-pane-host.js +25 -0
- package/dist/tmux-pane-host.js.map +1 -0
- package/dist/topic-commands.js +3 -0
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-delta-reader.d.ts +1 -1
- package/dist/transcript-delta-reader.js +1 -1
- package/dist/transcript-delta-reader.js.map +1 -1
- package/dist/transcript-monitor.d.ts +3 -0
- package/dist/transcript-monitor.js +22 -46
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/transcript-needles.d.ts +35 -0
- package/dist/transcript-needles.js +158 -0
- package/dist/transcript-needles.js.map +1 -0
- package/dist/transcript-records.d.ts +21 -0
- package/dist/transcript-records.js +140 -0
- package/dist/transcript-records.js.map +1 -0
- package/dist/transcript-sources.d.ts +5 -0
- package/dist/transcript-sources.js +8 -79
- package/dist/transcript-sources.js.map +1 -1
- package/dist/types.d.ts +21 -0
- package/dist/ui/agent-proposals.js +90 -0
- package/dist/ui/agent-runtime.js +106 -0
- package/dist/ui/chat-store.js +13 -2
- package/dist/ui/chat-strings.js +48 -0
- package/dist/ui/cli-picker.js +42 -0
- package/dist/ui/native-instance-settings.js +47 -0
- package/dist/ui/native-pane-recovery.js +45 -0
- package/dist/ui/panel-chat.js +61 -32
- package/dist/ui/panel-details.js +2 -1
- package/dist/ui/panel-fleet.js +99 -18
- package/dist/ui/panel-needs.js +152 -3
- package/dist/ui/panel-runtimes.js +231 -0
- package/dist/ui/panel-settings.js +14 -8
- package/dist/ui/panel-windows-agent.js +86 -0
- package/dist/ui/panel-windows-cli.js +143 -0
- package/dist/ui/provider-marks.js +83 -0
- package/dist/ui/runtime-catalog.js +55 -0
- package/dist/ui/settings-catalog.js +37 -10
- package/dist/ui/settings-confirm.js +3 -1
- package/dist/ui/settings-dialogs.js +14 -5
- package/dist/ui/settings-registry.js +5 -0
- package/dist/ui/settings-strings.js +14 -0
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app-route.js +6 -2
- package/dist/ui/shared/app-shell.js +3 -2
- package/dist/ui/shared/app-store.js +1 -0
- package/dist/ui/shared/app-stream.js +3 -1
- package/dist/ui/shared/app.css +301 -0
- package/dist/ui/shared/app.js +4 -0
- package/dist/ui/shared/header-tools.js +6 -4
- package/dist/ui/shared/instance-nav.js +20 -4
- package/dist/ui/shared/instance-switch.js +4 -3
- package/dist/ui/shared/ui-menu.js +28 -8
- package/dist/ui/shared/view-strings.js +6 -0
- package/dist/ui/windows-agents-nav.js +2 -0
- package/dist/ui/windows-cli-catalog.js +79 -0
- package/dist/update-check.d.ts +8 -2
- package/dist/update-check.js +5 -2
- package/dist/update-check.js.map +1 -1
- package/dist/web-api.d.ts +25 -0
- package/dist/web-api.js +171 -6
- package/dist/web-api.js.map +1 -1
- package/dist/web-chat-history.d.ts +19 -2
- package/dist/web-chat-history.js +72 -3
- package/dist/web-chat-history.js.map +1 -1
- package/dist/web-shell-routes.d.ts +4 -1
- package/dist/web-shell-routes.js +7 -2
- package/dist/web-shell-routes.js.map +1 -1
- package/dist/windows-agents.d.ts +112 -0
- package/dist/windows-agents.js +463 -0
- package/dist/windows-agents.js.map +1 -0
- package/dist/windows-cli-api.d.ts +23 -0
- package/dist/windows-cli-api.js +158 -0
- package/dist/windows-cli-api.js.map +1 -0
- package/dist/windows-cli-providers.d.ts +115 -0
- package/dist/windows-cli-providers.js +429 -0
- package/dist/windows-cli-providers.js.map +1 -0
- package/dist/windows-cli-worker.d.ts +58 -0
- package/dist/windows-cli-worker.js +479 -0
- package/dist/windows-cli-worker.js.map +1 -0
- package/dist/windows-cli.d.ts +115 -0
- package/dist/windows-cli.js +402 -0
- package/dist/windows-cli.js.map +1 -0
- package/dist/windows-native-mcp.d.ts +19 -0
- package/dist/windows-native-mcp.js +143 -0
- package/dist/windows-native-mcp.js.map +1 -0
- package/dist/windows-pane-mcp.d.ts +26 -0
- package/dist/windows-pane-mcp.js +187 -0
- package/dist/windows-pane-mcp.js.map +1 -0
- package/package.json +9 -3
- package/templates/runtime-assets/conpty-LICENSE +21 -0
- package/templates/runtime-assets/conpty-NOTICE.md +503 -0
- package/templates/runtime-assets/local-pane-stage.ps1 +101 -0
- package/templates/runtime-assets/runtime-pane-job.ps1 +116 -0
- package/templates/runtime-assets/runtime-pane-private.ps1 +14 -0
- package/templates/runtime-assets/xterm-LICENSE +21 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "node-pty",
|
|
3
|
+
"description": "Fork pseudoterminals in Node.JS",
|
|
4
|
+
"author": {
|
|
5
|
+
"name": "Microsoft Corporation"
|
|
6
|
+
},
|
|
7
|
+
"version": "1.1.0",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"main": "./lib/index.js",
|
|
10
|
+
"types": "./typings/node-pty.d.ts",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git://github.com/microsoft/node-pty.git"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"binding.gyp",
|
|
17
|
+
"lib/",
|
|
18
|
+
"scripts/",
|
|
19
|
+
"src/",
|
|
20
|
+
"deps/",
|
|
21
|
+
"prebuilds/",
|
|
22
|
+
"third_party/",
|
|
23
|
+
"typings/"
|
|
24
|
+
],
|
|
25
|
+
"homepage": "https://github.com/microsoft/node-pty",
|
|
26
|
+
"bugs": {
|
|
27
|
+
"url": "https://github.com/microsoft/node-pty/issues"
|
|
28
|
+
},
|
|
29
|
+
"keywords": [
|
|
30
|
+
"pty",
|
|
31
|
+
"tty",
|
|
32
|
+
"terminal",
|
|
33
|
+
"pseudoterminal",
|
|
34
|
+
"forkpty",
|
|
35
|
+
"openpty"
|
|
36
|
+
],
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "tsc -b ./src/tsconfig.json",
|
|
39
|
+
"watch": "tsc -b -w ./src/tsconfig.json",
|
|
40
|
+
"lint": "eslint -c .eslintrc.js --ext .ts src/",
|
|
41
|
+
"install": "node scripts/prebuild.js || node-gyp rebuild",
|
|
42
|
+
"postinstall": "node scripts/post-install.js",
|
|
43
|
+
"compileCommands": "node scripts/gen-compile-commands.js",
|
|
44
|
+
"test": "cross-env NODE_ENV=test mocha -R spec --exit lib/*.test.js",
|
|
45
|
+
"posttest": "npm run lint",
|
|
46
|
+
"prepare": "npm run build",
|
|
47
|
+
"prepublishOnly": "npm run build"
|
|
48
|
+
},
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"node-addon-api": "^7.1.0"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@types/mocha": "^7.0.2",
|
|
54
|
+
"@types/node": "12",
|
|
55
|
+
"@typescript-eslint/eslint-plugin": "^2.27.0",
|
|
56
|
+
"@typescript-eslint/parser": "^2.27.0",
|
|
57
|
+
"cross-env": "^5.1.4",
|
|
58
|
+
"eslint": "^6.8.0",
|
|
59
|
+
"mocha": "10",
|
|
60
|
+
"node-gyp": "^11.4.2",
|
|
61
|
+
"ps-list": "^6.0.0",
|
|
62
|
+
"typescript": "^3.8.3"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const RUNTIME_BUNDLE_MODULES: readonly string[];
|
|
2
|
+
export interface RuntimeBundleOptions {
|
|
3
|
+
/** Explicit locations make packaging tests independent of the repository's generated dist folder. */
|
|
4
|
+
moduleDirectory?: string;
|
|
5
|
+
wsDirectory?: string;
|
|
6
|
+
packageVersion?: string;
|
|
7
|
+
licensePath?: string;
|
|
8
|
+
/** Fixed code assets prepared during the package build, not CLI installations or user profiles. */
|
|
9
|
+
paneAssetDirectory?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface RuntimeBundle {
|
|
12
|
+
bytes: Buffer;
|
|
13
|
+
filename: string;
|
|
14
|
+
sha256: string;
|
|
15
|
+
}
|
|
16
|
+
/** Reads only installed program assets. Runtime profiles, CLI logins and user workspaces are never enumerated. */
|
|
17
|
+
export declare function createRuntimeBundle(options?: RuntimeBundleOptions): RuntimeBundle;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/** Build the downloadable Windows runtime from this installation's fixed, code-only module set. */
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { lstatSync, readFileSync } from "node:fs";
|
|
4
|
+
import { createRequire } from "node:module";
|
|
5
|
+
import { dirname, join } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
import { RUNTIME_PANE_MODULES, RUNTIME_PANE_ASSETS, PANE_NATIVE_SHA256 } from "./runtime-pane-assets.js";
|
|
8
|
+
export const RUNTIME_BUNDLE_MODULES = Object.freeze([
|
|
9
|
+
"runtime-cli.js", "runtime-client.js", "runtime-client-store.js", "runtime-protocol.js", "windows-cli.js", "windows-cli-worker.js",
|
|
10
|
+
"windows-cli-providers.js", "child-process.js", "windows-native-mcp.js", "model-catalog-defaults.js", "atomic-write.js", "runtime-switches.js", ...RUNTIME_PANE_MODULES,
|
|
11
|
+
]);
|
|
12
|
+
const WS_FILES = Object.freeze([
|
|
13
|
+
"package.json", "index.js", "wrapper.mjs", "browser.js", "LICENSE",
|
|
14
|
+
"lib/buffer-util.js", "lib/constants.js", "lib/event-target.js", "lib/extension.js", "lib/limiter.js",
|
|
15
|
+
"lib/permessage-deflate.js", "lib/receiver.js", "lib/sender.js", "lib/stream.js", "lib/subprotocol.js",
|
|
16
|
+
"lib/validation.js", "lib/websocket-server.js", "lib/websocket.js",
|
|
17
|
+
]);
|
|
18
|
+
const MAX_FILE_BYTES = 1024 * 1024;
|
|
19
|
+
const MAX_ARCHIVE_BYTES = 8 * 1024 * 1024;
|
|
20
|
+
const ROOT = "agend-runtime/";
|
|
21
|
+
const CMD = '@echo off\r\nnode.exe "%~dp0dist\\runtime-cli.js" %*\r\n';
|
|
22
|
+
const README = `AgEnD native Windows runtime preview
|
|
23
|
+
|
|
24
|
+
Requires a supported Windows Node.js version and each coding CLI installed and signed in under this Windows user.
|
|
25
|
+
|
|
26
|
+
1. Extract this folder on the Windows computer. No npm install or Linux native packages are needed.
|
|
27
|
+
2. In a Windows terminal run:
|
|
28
|
+
.\\agend-runtime.cmd connect --server https://your-agend-host
|
|
29
|
+
3. Enter the one-time code from AgEnD Settings, compare the pairing fingerprint on both screens, then approve the pending machine there.
|
|
30
|
+
4. In Settings -> Runtime, press Refresh CLI inventory for this computer. Only this explicit detection starts the installed CLIs; connecting or opening a page does not.
|
|
31
|
+
5. Keep this terminal running. Ctrl+C stops it; .\\agend-runtime.cmd run reconnects the stored profile.
|
|
32
|
+
|
|
33
|
+
Stop the runtime before using rotate to replace its machine credential without pairing again, then use run to reconnect. A saved interrupted rotation is completed before run connects.
|
|
34
|
+
Use status to inspect local pairing and journal state. disconnect forgets a stopped local connection; revoke the machine in AgEnD Settings to invalidate its credential centrally.
|
|
35
|
+
The private profile defaults to %USERPROFILE%\\.agend-runtime. Its machine credential is stored as a private file, not encrypted by this preview. Use your Windows user profile and do not share it. CLI login credentials are never uploaded.
|
|
36
|
+
Do not install this preview as SYSTEM: it uses the logged-in user's CLI login, PATH, workspaces and devices.
|
|
37
|
+
Only loopback origins may use HTTP; remote servers require HTTPS and valid TLS.
|
|
38
|
+
`;
|
|
39
|
+
function readCodeFile(path, limit = MAX_FILE_BYTES) {
|
|
40
|
+
const stat = lstatSync(path);
|
|
41
|
+
if (!stat.isFile() || stat.isSymbolicLink() || stat.size > limit)
|
|
42
|
+
throw new Error("Runtime bundle file is missing, unsafe or too large");
|
|
43
|
+
const bytes = readFileSync(path);
|
|
44
|
+
if (bytes.length > limit)
|
|
45
|
+
throw new Error("Runtime bundle file exceeded its size limit");
|
|
46
|
+
return bytes;
|
|
47
|
+
}
|
|
48
|
+
function crc32(bytes) {
|
|
49
|
+
let crc = 0xffffffff;
|
|
50
|
+
for (const byte of bytes) {
|
|
51
|
+
crc ^= byte;
|
|
52
|
+
for (let bit = 0; bit < 8; bit++)
|
|
53
|
+
crc = (crc >>> 1) ^ (crc & 1 ? 0xedb88320 : 0);
|
|
54
|
+
}
|
|
55
|
+
return (crc ^ 0xffffffff) >>> 0;
|
|
56
|
+
}
|
|
57
|
+
/** Stored ZIP records need no platform archive program, temporary output or native package. */
|
|
58
|
+
function zip(files) {
|
|
59
|
+
const local = [], central = [];
|
|
60
|
+
let offset = 0, centralBytes = 0;
|
|
61
|
+
for (const [name, data] of files) {
|
|
62
|
+
const filename = Buffer.from(ROOT + name, "utf8"), checksum = crc32(data);
|
|
63
|
+
const header = Buffer.alloc(30);
|
|
64
|
+
header.writeUInt32LE(0x04034b50, 0);
|
|
65
|
+
header.writeUInt16LE(20, 4);
|
|
66
|
+
header.writeUInt16LE(0x0800, 6);
|
|
67
|
+
header.writeUInt16LE(0x0021, 12);
|
|
68
|
+
header.writeUInt32LE(checksum, 14);
|
|
69
|
+
header.writeUInt32LE(data.length, 18);
|
|
70
|
+
header.writeUInt32LE(data.length, 22);
|
|
71
|
+
header.writeUInt16LE(filename.length, 26);
|
|
72
|
+
local.push(header, filename, data);
|
|
73
|
+
const directory = Buffer.alloc(46);
|
|
74
|
+
directory.writeUInt32LE(0x02014b50, 0);
|
|
75
|
+
directory.writeUInt16LE(0x0314, 4);
|
|
76
|
+
directory.writeUInt16LE(20, 6);
|
|
77
|
+
directory.writeUInt16LE(0x0800, 8);
|
|
78
|
+
directory.writeUInt16LE(0x0021, 14);
|
|
79
|
+
directory.writeUInt32LE(checksum, 16);
|
|
80
|
+
directory.writeUInt32LE(data.length, 20);
|
|
81
|
+
directory.writeUInt32LE(data.length, 24);
|
|
82
|
+
directory.writeUInt16LE(filename.length, 28);
|
|
83
|
+
directory.writeUInt32LE((0o100644 << 16) >>> 0, 38);
|
|
84
|
+
directory.writeUInt32LE(offset, 42);
|
|
85
|
+
central.push(directory, filename);
|
|
86
|
+
centralBytes += directory.length + filename.length;
|
|
87
|
+
offset += header.length + filename.length + data.length;
|
|
88
|
+
if (offset + centralBytes + 22 > MAX_ARCHIVE_BYTES)
|
|
89
|
+
throw new Error("Runtime bundle exceeded its archive size limit");
|
|
90
|
+
}
|
|
91
|
+
const end = Buffer.alloc(22);
|
|
92
|
+
end.writeUInt32LE(0x06054b50, 0);
|
|
93
|
+
end.writeUInt16LE(files.length, 8);
|
|
94
|
+
end.writeUInt16LE(files.length, 10);
|
|
95
|
+
end.writeUInt32LE(centralBytes, 12);
|
|
96
|
+
end.writeUInt32LE(offset, 16);
|
|
97
|
+
return Buffer.concat([...local, ...central, end]);
|
|
98
|
+
}
|
|
99
|
+
/** Reads only installed program assets. Runtime profiles, CLI logins and user workspaces are never enumerated. */
|
|
100
|
+
export function createRuntimeBundle(options = {}) {
|
|
101
|
+
const moduleDirectory = options.moduleDirectory ?? dirname(fileURLToPath(import.meta.url));
|
|
102
|
+
const packageDirectory = dirname(moduleDirectory);
|
|
103
|
+
const version = options.packageVersion ?? JSON.parse(readCodeFile(join(packageDirectory, "package.json")).toString("utf8")).version;
|
|
104
|
+
if (typeof version !== "string" || version.length > 64 || !/^\d+\.\d+\.\d+(?:[-+][A-Za-z0-9.-]+)?$/.test(version))
|
|
105
|
+
throw new Error("Invalid runtime bundle version");
|
|
106
|
+
const wsDirectory = options.wsDirectory ?? dirname(createRequire(import.meta.url).resolve("ws/package.json"));
|
|
107
|
+
const wsPackage = readCodeFile(join(wsDirectory, "package.json"));
|
|
108
|
+
const ws = JSON.parse(wsPackage.toString("utf8"));
|
|
109
|
+
if (ws.name !== "ws" || !["8.22.0", "8.22.1"].includes(ws.version))
|
|
110
|
+
throw new Error("This installed WebSocket version has not been verified for the runtime bundle");
|
|
111
|
+
const entries = [];
|
|
112
|
+
let total = 0;
|
|
113
|
+
const add = (name, bytes) => {
|
|
114
|
+
total += bytes.length;
|
|
115
|
+
if (total > MAX_ARCHIVE_BYTES)
|
|
116
|
+
throw new Error("Runtime bundle exceeded its archive size limit");
|
|
117
|
+
entries.push([name, bytes]);
|
|
118
|
+
};
|
|
119
|
+
for (const file of RUNTIME_BUNDLE_MODULES)
|
|
120
|
+
add(`dist/${file}`, readCodeFile(join(moduleDirectory, file)));
|
|
121
|
+
for (const file of WS_FILES)
|
|
122
|
+
add(`node_modules/ws/${file}`, file === "package.json" ? wsPackage : readCodeFile(join(wsDirectory, file)));
|
|
123
|
+
const assets = options.paneAssetDirectory ?? join(moduleDirectory, "runtime-assets");
|
|
124
|
+
for (const pkg of RUNTIME_PANE_ASSETS) {
|
|
125
|
+
const directory = join(assets, pkg.name);
|
|
126
|
+
const manifest = JSON.parse(readCodeFile(join(directory, "package.json")).toString("utf8"));
|
|
127
|
+
if (manifest.name !== pkg.name || manifest.version !== pkg.version)
|
|
128
|
+
throw Error("Unverified runtime pane dependency");
|
|
129
|
+
for (const file of pkg.files) {
|
|
130
|
+
const bytes = readCodeFile(join(directory, file), 2 * 1024 * 1024);
|
|
131
|
+
if (pkg.name === "node-pty" && PANE_NATIVE_SHA256[file] && createHash("sha256").update(bytes).digest("hex") !== PANE_NATIVE_SHA256[file])
|
|
132
|
+
throw Error("Native pane prebuild checksum differs");
|
|
133
|
+
add(`node_modules/${pkg.name}/${file}`, bytes);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
add("LICENSE", readCodeFile(options.licensePath ?? join(packageDirectory, "LICENSE")));
|
|
137
|
+
add("package.json", Buffer.from(JSON.stringify({ name: "@songsid/agend-runtime", version, private: true, type: "module",
|
|
138
|
+
bin: { "agend-runtime": "./dist/runtime-cli.js" }, engines: { node: "^22.14.0 || ^23.6.0 || >=24" }, dependencies: { ws: ws.version, ...Object.fromEntries(RUNTIME_PANE_ASSETS.map(pkg => [pkg.name, pkg.version])) } }, null, 2) + "\n"));
|
|
139
|
+
add("agend-runtime.cmd", Buffer.from(CMD));
|
|
140
|
+
add("README.txt", Buffer.from(README));
|
|
141
|
+
add("bundle-manifest.json", Buffer.from(JSON.stringify({ version, modules: RUNTIME_BUNDLE_MODULES, ws: ws.version,
|
|
142
|
+
nativeDependencies: [{ name: "node-pty", version: "1.1.0", platforms: ["win32-x64", "win32-arm64"], backend: "ConPTY" }],
|
|
143
|
+
sha256: Object.fromEntries(entries.map(([name, bytes]) => [name, createHash("sha256").update(bytes).digest("hex")])) }, null, 2) + "\n"));
|
|
144
|
+
const bytes = zip(entries);
|
|
145
|
+
return { bytes, filename: `agend-runtime-windows-${version}.zip`, sha256: createHash("sha256").update(bytes).digest("hex") };
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=runtime-bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-bundle.js","sourceRoot":"","sources":["../src/runtime-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/** Minimal Windows runtime entry point; deliberately independent of the full AgEnD CLI. */
|
|
3
|
+
import { homedir, hostname } from "node:os";
|
|
4
|
+
import { join, resolve } from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { createInterface } from "node:readline/promises";
|
|
7
|
+
import { RuntimeClient, pairRuntime, rotateRuntimeCredentials } from "./runtime-client.js";
|
|
8
|
+
import { RuntimeClientStore, validateRuntimeServer } from "./runtime-client-store.js";
|
|
9
|
+
const HELP = `AgEnD native Windows runtime
|
|
10
|
+
|
|
11
|
+
agend-runtime connect --server https://agend.example.com [--name NAME] [--profile DIRECTORY]
|
|
12
|
+
agend-runtime run [--profile DIRECTORY]
|
|
13
|
+
agend-runtime status [--profile DIRECTORY]
|
|
14
|
+
agend-runtime rotate [--profile DIRECTORY]
|
|
15
|
+
agend-runtime disconnect [--profile DIRECTORY]
|
|
16
|
+
|
|
17
|
+
connect asks for a one-time pairing code, waits for approval in AgEnD, then runs in the foreground.
|
|
18
|
+
run reconnects an existing profile. Press Ctrl+C to stop. disconnect forgets a stopped local profile;
|
|
19
|
+
revoke the machine in AgEnD Settings to invalidate its credential centrally.
|
|
20
|
+
rotate replaces a stopped profile's machine credential without pairing again. Stop run/connect first.
|
|
21
|
+
HTTP is accepted only for loopback, for example an SSH-forwarded localhost endpoint.
|
|
22
|
+
CLI login, workspaces and devices stay on this computer. No CLI login data is uploaded.
|
|
23
|
+
`;
|
|
24
|
+
export async function runtimeMain(argv = process.argv.slice(2)) {
|
|
25
|
+
if (!argv.length || argv.includes("--help") || argv[0] === "help") {
|
|
26
|
+
process.stdout.write(HELP);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const [command, ...args] = argv;
|
|
30
|
+
if (!["connect", "run", "status", "disconnect", "rotate"].includes(command))
|
|
31
|
+
throw new Error("Unknown runtime command. Use agend-runtime --help.");
|
|
32
|
+
const flags = {};
|
|
33
|
+
for (let index = 0; index < args.length; index += 2) {
|
|
34
|
+
const key = args[index], value = args[index + 1];
|
|
35
|
+
if (!["--server", "--name", "--profile"].includes(key) || !value || value.startsWith("--") || flags[key] !== undefined)
|
|
36
|
+
throw new Error("Invalid runtime arguments. Pairing codes must be entered interactively, never in command arguments.");
|
|
37
|
+
flags[key] = value;
|
|
38
|
+
}
|
|
39
|
+
if (command !== "connect" && (flags["--server"] || flags["--name"]))
|
|
40
|
+
throw new Error("--server and --name are used only by connect");
|
|
41
|
+
const store = new RuntimeClientStore(resolve(flags["--profile"] || process.env.AGEND_RUNTIME_HOME || join(homedir(), ".agend-runtime")));
|
|
42
|
+
if (command === "status") {
|
|
43
|
+
const credentials = store.credentials();
|
|
44
|
+
process.stdout.write(`${JSON.stringify({ paired: !!credentials, ...(credentials ? { server: credentials.server, machineId: credentials.machineId, name: credentials.name } : {}),
|
|
45
|
+
rotationPending: !!credentials?.pendingCredential, blocked: store.blocked(), jobs: store.list().map(job => ({ id: job.task.id, seq: job.seq, status: job.task.status, uncertain: job.uncertain })) }, null, 2)}\n`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (command === "disconnect") {
|
|
49
|
+
const unlock = store.lock("disconnect");
|
|
50
|
+
try {
|
|
51
|
+
store.forgetCredentials();
|
|
52
|
+
process.stdout.write("Local connection forgotten. Revoke the machine in AgEnD Settings to invalidate its credential centrally.\n");
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
unlock();
|
|
56
|
+
}
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (command === "rotate") {
|
|
60
|
+
const unlock = store.lock("rotate");
|
|
61
|
+
try {
|
|
62
|
+
await rotateRuntimeCredentials({ store });
|
|
63
|
+
process.stdout.write("Runtime machine credential rotated. Run agend-runtime run to reconnect; no pairing is needed.\n");
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
unlock();
|
|
67
|
+
}
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (process.platform !== "win32")
|
|
71
|
+
throw new Error("This runtime preview must run with native Windows Node, under the Windows user whose CLIs it uses.");
|
|
72
|
+
if (command === "connect") {
|
|
73
|
+
if (!flags["--server"])
|
|
74
|
+
throw new Error("connect requires --server with the AgEnD HTTPS origin");
|
|
75
|
+
const server = validateRuntimeServer(flags["--server"]);
|
|
76
|
+
const current = store.credentials();
|
|
77
|
+
if (current && current.server !== server.origin)
|
|
78
|
+
throw new Error("This profile is paired with another server. Stop and disconnect it, or choose another --profile.");
|
|
79
|
+
if (!current) {
|
|
80
|
+
if (!process.stdin.isTTY || !process.stdout.isTTY)
|
|
81
|
+
throw new Error("Pairing requires an interactive terminal. The code must not be supplied in arguments or environment variables.");
|
|
82
|
+
const readline = createInterface({ input: process.stdin, output: process.stdout });
|
|
83
|
+
let code;
|
|
84
|
+
try {
|
|
85
|
+
code = await readline.question("One-time pairing code from AgEnD Settings: ");
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
readline.close();
|
|
89
|
+
}
|
|
90
|
+
const controller = new AbortController();
|
|
91
|
+
const abort = () => controller.abort();
|
|
92
|
+
process.once("SIGINT", abort);
|
|
93
|
+
try {
|
|
94
|
+
await pairRuntime({ server: server.origin, name: flags["--name"] || hostname(), code, store, signal: controller.signal, report: text => process.stdout.write(`${text}\n`) });
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
process.removeListener("SIGINT", abort);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const client = new RuntimeClient({ store, report: text => process.stdout.write(`${text}\n`) });
|
|
102
|
+
await client.start();
|
|
103
|
+
const stop = () => { void client.stop().catch(() => { process.exitCode = 1; }); };
|
|
104
|
+
process.once("SIGINT", stop);
|
|
105
|
+
process.once("SIGTERM", stop);
|
|
106
|
+
try {
|
|
107
|
+
await client.waitUntilStopped();
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
process.removeListener("SIGINT", stop);
|
|
111
|
+
process.removeListener("SIGTERM", stop);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
|
|
115
|
+
void runtimeMain().catch(error => { process.stderr.write(`${error instanceof Error ? error.message : "Runtime failed"}\n`); process.exitCode = 1; });
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=runtime-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-cli.js","sourceRoot":"","sources":["../src/runtime-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { WindowsCliTask } from "./windows-cli.js";
|
|
2
|
+
export interface RuntimeCredentials {
|
|
3
|
+
server: string;
|
|
4
|
+
machineId: string;
|
|
5
|
+
credential: string;
|
|
6
|
+
name: string;
|
|
7
|
+
pendingCredential?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface RuntimeStoredJob {
|
|
10
|
+
digest: string;
|
|
11
|
+
seq: number;
|
|
12
|
+
task: WindowsCliTask;
|
|
13
|
+
uncertain: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function runtimeJobDigest(value: unknown): string;
|
|
16
|
+
export declare function validateRuntimeServer(value: string): URL;
|
|
17
|
+
export declare class RuntimeClientStore {
|
|
18
|
+
readonly directory: string;
|
|
19
|
+
private readonly now;
|
|
20
|
+
private readonly file;
|
|
21
|
+
private data;
|
|
22
|
+
constructor(directory: string, now?: () => number);
|
|
23
|
+
/** Called only after acquiring the profile lock: reading status must not interrupt a live runtime. */
|
|
24
|
+
recoverInterrupted(): void;
|
|
25
|
+
private validate;
|
|
26
|
+
private save;
|
|
27
|
+
/**
|
|
28
|
+
* #2945 review: the byte budget, not only the id count. Before a new job is saved the ledger must fit MAX_STORE_BYTES
|
|
29
|
+
* with BYTE_HEADROOM left for that job's own updates (its output is bounded at 64 KiB characters). Room comes first
|
|
30
|
+
* from settled job snapshots (finished, confirmed — never the new one, an uncertain or an unfinished one), oldest
|
|
31
|
+
* first; then from replay ids past ID_KEEP_MS with no snapshot. False when even that does not make room.
|
|
32
|
+
*/
|
|
33
|
+
private fitBytes;
|
|
34
|
+
/** Oldest first; only past ID_KEEP_MS and with no job snapshot. An id from an older ledger (no time) counts as oldest. */
|
|
35
|
+
private evictTombstones;
|
|
36
|
+
get(id: string): RuntimeStoredJob | null;
|
|
37
|
+
list(): RuntimeStoredJob[];
|
|
38
|
+
blocked(): boolean;
|
|
39
|
+
accept(task: WindowsCliTask, digest: string): {
|
|
40
|
+
duplicate: boolean;
|
|
41
|
+
job: RuntimeStoredJob;
|
|
42
|
+
};
|
|
43
|
+
update(task: WindowsCliTask): RuntimeStoredJob;
|
|
44
|
+
recover(id: string, confirmedStopped: unknown): RuntimeStoredJob;
|
|
45
|
+
credentials(): RuntimeCredentials | null;
|
|
46
|
+
saveCredentials(value: RuntimeCredentials): void;
|
|
47
|
+
forgetCredentials(): void;
|
|
48
|
+
lock(bootId: string, systemBootId?: string): () => void;
|
|
49
|
+
}
|