@songsid/agend 2.3.2-beta.9 → 2.3.3-beta.1
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 +6 -0
- package/README.zh-TW.md +6 -0
- package/dist/agent-cli-instructions.md +2 -2
- package/dist/agent-cli.js +48 -0
- package/dist/agent-cli.js.map +1 -1
- package/dist/agent-endpoint.js +6 -0
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/agent-whats-new.d.ts +21 -0
- package/dist/agent-whats-new.js +53 -21
- package/dist/agent-whats-new.js.map +1 -1
- package/dist/auth-api.js +2 -0
- package/dist/auth-api.js.map +1 -1
- package/dist/backend/claude-code.d.ts +13 -1
- package/dist/backend/claude-code.js +43 -2
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/codex-session-lookup.d.ts +15 -0
- package/dist/backend/codex-session-lookup.js +58 -0
- package/dist/backend/codex-session-lookup.js.map +1 -1
- package/dist/backend/codex.js +15 -4
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/kiro-classic-archive.d.ts +57 -0
- package/dist/backend/kiro-classic-archive.js +622 -0
- package/dist/backend/kiro-classic-archive.js.map +1 -0
- package/dist/backend/kiro-classic-links.d.ts +24 -0
- package/dist/backend/kiro-classic-links.js +135 -0
- package/dist/backend/kiro-classic-links.js.map +1 -0
- package/dist/backend/kiro-identity.d.ts +100 -1
- package/dist/backend/kiro-identity.js +262 -31
- package/dist/backend/kiro-identity.js.map +1 -1
- package/dist/backend/kiro-migration-verify.d.ts +10 -0
- package/dist/backend/kiro-migration-verify.js +52 -0
- package/dist/backend/kiro-migration-verify.js.map +1 -0
- package/dist/backend/kiro-reconcile-store.d.ts +27 -0
- package/dist/backend/kiro-reconcile-store.js +351 -0
- package/dist/backend/kiro-reconcile-store.js.map +1 -0
- package/dist/backend/kiro-v2-store-worker.js +35 -1
- package/dist/backend/kiro-v2-store-worker.js.map +1 -1
- package/dist/backend/kiro-v2-store.d.ts +31 -1
- package/dist/backend/kiro-v2-store.js +22 -12
- package/dist/backend/kiro-v2-store.js.map +1 -1
- package/dist/backend/kiro.d.ts +124 -6
- package/dist/backend/kiro.js +553 -39
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/types.d.ts +109 -4
- package/dist/backend/types.js +9 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/cache-service.d.ts +13 -1
- package/dist/cache-service.js +45 -2
- package/dist/cache-service.js.map +1 -1
- package/dist/channel/ipc-timeouts.js +3 -0
- package/dist/channel/ipc-timeouts.js.map +1 -1
- package/dist/channel/mcp-tools.js +40 -5
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/tool-router.js +2 -1
- package/dist/channel/tool-router.js.map +1 -1
- package/dist/classic-channel-manager.d.ts +6 -0
- package/dist/classic-channel-manager.js +25 -0
- package/dist/classic-channel-manager.js.map +1 -1
- package/dist/cli.js +52 -6
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.d.ts +7 -1
- package/dist/config-validator.js +20 -9
- package/dist/config-validator.js.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/cross-instance-envelope.d.ts +10 -5
- package/dist/cross-instance-envelope.js +20 -17
- package/dist/cross-instance-envelope.js.map +1 -1
- package/dist/daemon.d.ts +125 -63
- package/dist/daemon.js +694 -330
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard-permissions.d.ts +15 -4
- package/dist/dashboard-permissions.js +49 -23
- package/dist/dashboard-permissions.js.map +1 -1
- package/dist/delivery-outbox.d.ts +27 -22
- package/dist/delivery-outbox.js +109 -161
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/delivery-outbox.test.js +10 -25
- package/dist/delivery-outbox.test.js.map +1 -1
- package/dist/doctor.js +2 -1
- package/dist/doctor.js.map +1 -1
- package/dist/fleet-control-audit.d.ts +1 -1
- package/dist/fleet-control-audit.js +3 -0
- package/dist/fleet-control-audit.js.map +1 -1
- package/dist/fleet-manager.d.ts +94 -15
- package/dist/fleet-manager.js +597 -133
- package/dist/fleet-manager.js.map +1 -1
- package/dist/forged-envelope-scan.d.ts +9 -0
- package/dist/forged-envelope-scan.js +30 -5
- package/dist/forged-envelope-scan.js.map +1 -1
- package/dist/general-instance.d.ts +24 -0
- package/dist/general-instance.js +53 -0
- package/dist/general-instance.js.map +1 -1
- package/dist/general-knowledge/skills/delegation-playbook/SKILL.md +1 -1
- package/dist/general-knowledge/skills/docker-install/SKILL.md +25 -0
- package/dist/general-knowledge/skills/fleet-config/SKILL.md +5 -3
- package/dist/general-knowledge/skills/fleet-restart/SKILL.md +1 -1
- package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +34 -0
- package/dist/general-knowledge/skills/session-management/SKILL.md +2 -2
- package/dist/general-knowledge/skills/tui-effort/SKILL.md +1 -1
- package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +32 -0
- package/dist/general-knowledge/skills/web-appearance/SKILL.md +32 -0
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +57 -17
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +57 -17
- package/dist/instance-config-impact.js +3 -2
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +4 -0
- package/dist/instance-lifecycle.js +28 -5
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/instructions.js +6 -7
- package/dist/instructions.js.map +1 -1
- package/dist/kiro-migrate.d.ts +19 -2
- package/dist/kiro-migrate.js +133 -35
- package/dist/kiro-migrate.js.map +1 -1
- package/dist/kiro-reconcile.d.ts +21 -0
- package/dist/kiro-reconcile.js +88 -0
- package/dist/kiro-reconcile.js.map +1 -0
- package/dist/kiro-session-proof.d.ts +41 -0
- package/dist/kiro-session-proof.js +89 -0
- package/dist/kiro-session-proof.js.map +1 -0
- package/dist/kiro-tui-forensic.d.ts +19 -0
- package/dist/kiro-tui-forensic.js +124 -0
- package/dist/kiro-tui-forensic.js.map +1 -0
- package/dist/locale.js +202 -16
- package/dist/locale.js.map +1 -1
- package/dist/log-service.js +3 -3
- package/dist/log-service.js.map +1 -1
- package/dist/needs-you.d.ts +3 -1
- package/dist/needs-you.js +4 -2
- package/dist/needs-you.js.map +1 -1
- package/dist/office-levels.d.ts +64 -0
- package/dist/office-levels.js +66 -0
- package/dist/office-levels.js.map +1 -0
- package/dist/office-share-page.d.ts +3 -1
- package/dist/office-share-page.js +8 -3
- package/dist/office-share-page.js.map +1 -1
- package/dist/office-share-service.d.ts +6 -3
- package/dist/office-share-service.js +12 -8
- package/dist/office-share-service.js.map +1 -1
- package/dist/office-share.d.ts +45 -8
- package/dist/office-share.js +75 -15
- package/dist/office-share.js.map +1 -1
- package/dist/outbound-handlers.js +21 -2
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +47 -2
- package/dist/outbound-schemas.js +42 -3
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/public-web-gateway.js +1 -1
- package/dist/public-web-gateway.js.map +1 -1
- package/dist/quickstart-api.d.ts +39 -1
- package/dist/quickstart-api.js +115 -17
- package/dist/quickstart-api.js.map +1 -1
- package/dist/remote-card-answer.d.ts +83 -0
- package/dist/remote-card-answer.js +208 -0
- package/dist/remote-card-answer.js.map +1 -0
- package/dist/remote-card-prompt.d.ts +38 -0
- package/dist/remote-card-prompt.js +86 -0
- package/dist/remote-card-prompt.js.map +1 -0
- package/dist/scheduler/task-board.d.ts +44 -17
- package/dist/scheduler/task-board.js +95 -36
- package/dist/scheduler/task-board.js.map +1 -1
- package/dist/sd-notify.d.ts +13 -14
- package/dist/sd-notify.js +62 -28
- package/dist/sd-notify.js.map +1 -1
- package/dist/service-installer.d.ts +13 -0
- package/dist/service-installer.js +15 -0
- package/dist/service-installer.js.map +1 -1
- package/dist/service-owner.d.ts +25 -0
- package/dist/service-owner.js +43 -2
- package/dist/service-owner.js.map +1 -1
- package/dist/settings-api.d.ts +2 -1
- package/dist/settings-api.js +19 -26
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +10 -5
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-effect.js +7 -6
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-instance-patch.js +1 -1
- package/dist/settings-instance-patch.js.map +1 -1
- package/dist/setup-form.d.ts +2 -2
- package/dist/setup-form.js +139 -93
- package/dist/setup-form.js.map +1 -1
- package/dist/setup-i18n.d.ts +25 -0
- package/dist/setup-i18n.js +226 -0
- package/dist/setup-i18n.js.map +1 -0
- package/dist/task-board-waker.d.ts +40 -1
- package/dist/task-board-waker.js +115 -9
- package/dist/task-board-waker.js.map +1 -1
- package/dist/tmux-control.d.ts +1 -1
- package/dist/tmux-control.js +3 -2
- package/dist/tmux-control.js.map +1 -1
- package/dist/tmux-manager.js +18 -16
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tmux-read.d.ts +2 -0
- package/dist/tmux-read.js +7 -1
- package/dist/tmux-read.js.map +1 -1
- package/dist/tool-permissions.js +18 -0
- package/dist/tool-permissions.js.map +1 -1
- package/dist/topic-commands.d.ts +2 -0
- package/dist/topic-commands.js +2 -1
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-sources.d.ts +1 -0
- package/dist/transcript-sources.js +20 -3
- package/dist/transcript-sources.js.map +1 -1
- package/dist/types.d.ts +11 -5
- package/dist/ui/backend-signin.js +4 -3
- package/dist/ui/chat-store.js +3 -2
- package/dist/ui/chat-strings.js +2 -2
- package/dist/ui/fleet-office-card.js +114 -0
- package/dist/ui/fleet-office-editor.js +81 -9
- package/dist/ui/fleet-office-layout.js +56 -11
- package/dist/ui/fleet-office-levels.js +105 -0
- package/dist/ui/fleet-office-model.js +9 -1
- package/dist/ui/fleet-office-pack.d.ts +15 -3
- package/dist/ui/fleet-office-pack.js +177 -23
- package/dist/ui/fleet-office-skin.js +39 -3
- package/dist/ui/fleet-office-store.js +74 -3
- package/dist/ui/fleet-office-view.js +8 -0
- package/dist/ui/fleet-office-zones.js +102 -19
- package/dist/ui/fleet-office.js +308 -44
- package/dist/ui/fleet-org.js +2 -0
- package/dist/ui/fleet-task-card.js +2 -2
- package/dist/ui/fleet-task-common.js +30 -7
- package/dist/ui/fleet-task-work.js +2 -2
- package/dist/ui/fleet-tasks.js +10 -11
- package/dist/ui/office-share-dialog.js +31 -7
- package/dist/ui/office-share-page.js +1 -0
- package/dist/ui/panel-chat.js +14 -2
- package/dist/ui/panel-log.js +6 -6
- package/dist/ui/panel-needs.js +1 -1
- package/dist/ui/panel-settings.js +16 -8
- package/dist/ui/settings-appearance.js +3 -35
- package/dist/ui/settings-discord.js +3 -2
- package/dist/ui/settings-guests.js +17 -7
- package/dist/ui/settings-model.js +17 -9
- package/dist/ui/settings-registry.js +1 -1
- package/dist/ui/settings-strings.js +18 -6
- package/dist/ui/settings-token.js +3 -2
- package/dist/ui/settings-wizard.js +25 -9
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app-stream.js +1 -1
- package/dist/ui/shared/app.css +70 -2
- package/dist/ui/shared/setup-host-text.js +107 -0
- package/dist/ui/structured-signin.js +89 -38
- package/dist/update-check.d.ts +13 -4
- package/dist/update-check.js +17 -4
- package/dist/update-check.js.map +1 -1
- package/dist/usage-rollup.d.ts +34 -3
- package/dist/usage-rollup.js +56 -3
- package/dist/usage-rollup.js.map +1 -1
- package/dist/web-api.d.ts +10 -1
- package/dist/web-api.js +207 -17
- package/dist/web-api.js.map +1 -1
- package/dist/web-auth.js +1 -1
- package/dist/web-auth.js.map +1 -1
- package/dist/web-experimental.d.ts +6 -2
- package/dist/web-experimental.js +8 -4
- package/dist/web-experimental.js.map +1 -1
- package/dist/web-office-acts.d.ts +5 -2
- package/dist/web-office-acts.js +9 -4
- package/dist/web-office-acts.js.map +1 -1
- package/dist/web-office-pack-read.d.ts +35 -0
- package/dist/web-office-pack-read.js +252 -0
- package/dist/web-office-pack-read.js.map +1 -0
- package/dist/web-office-pack-tools.d.ts +241 -0
- package/dist/web-office-pack-tools.js +785 -0
- package/dist/web-office-pack-tools.js.map +1 -0
- package/dist/web-office-skins.d.ts +68 -4
- package/dist/web-office-skins.js +324 -33
- package/dist/web-office-skins.js.map +1 -1
- package/dist/web-office-store.d.ts +47 -4
- package/dist/web-office-store.js +124 -23
- package/dist/web-office-store.js.map +1 -1
- package/dist/web-settings-patch.d.ts +3 -2
- package/dist/web-settings-patch.js +7 -5
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/workflow-templates/default.md +3 -3
- package/dist/working-recovery.d.ts +0 -2
- package/dist/working-recovery.js +2 -23
- package/dist/working-recovery.js.map +1 -1
- package/package.json +2 -2
- package/templates/windows-shortcuts.ps1 +18 -17
- package/dist/upgrade-notices.d.ts +0 -17
- package/dist/upgrade-notices.js +0 -93
- package/dist/upgrade-notices.js.map +0 -1
|
@@ -4,26 +4,27 @@
|
|
|
4
4
|
|
|
5
5
|
$WSL_COMMAND_FN = @'
|
|
6
6
|
function Invoke-BoundedWsl {
|
|
7
|
-
param([string[]]$Arguments, [int]$TimeoutSeconds
|
|
8
|
-
$sep
|
|
7
|
+
param([string[]]$Arguments, [int]$TimeoutSeconds=30)
|
|
8
|
+
$sep=[array]::IndexOf($Arguments, '--exec')
|
|
9
9
|
if ($sep -ge 0 -and $Arguments.Length -gt ($sep + 1) -and $Arguments[$sep + 1] -eq 'bash') {
|
|
10
|
-
$Arguments
|
|
11
|
-
}
|
|
12
|
-
$p
|
|
13
|
-
$p.StartInfo.FileName
|
|
14
|
-
$p.StartInfo.Arguments
|
|
15
|
-
$p.StartInfo.UseShellExecute
|
|
16
|
-
$p.StartInfo.
|
|
17
|
-
$p.StartInfo.
|
|
10
|
+
$Arguments=@($Arguments[0..$sep]) + @('timeout', '--signal=TERM', '--kill-after=2s', [string]([Math]::Max(1, $TimeoutSeconds - 5))) + @($Arguments[($sep + 1)..($Arguments.Length - 1)])
|
|
11
|
+
}
|
|
12
|
+
$p=New-Object Diagnostics.Process
|
|
13
|
+
$p.StartInfo.FileName='wsl.exe'
|
|
14
|
+
$p.StartInfo.Arguments=(@($Arguments | ForEach-Object { if ($_ -match '[\s"]') { '"' + ($_ -replace '"', '\"') + '"' } else { $_ } }) -join ' ')
|
|
15
|
+
$p.StartInfo.UseShellExecute=$false;$p.StartInfo.CreateNoWindow=$true
|
|
16
|
+
$p.StartInfo.EnvironmentVariables['WSL_UTF8']='1'
|
|
17
|
+
$p.StartInfo.StandardOutputEncoding=[Text.Encoding]::UTF8;$p.StartInfo.StandardErrorEncoding=[Text.Encoding]::UTF8
|
|
18
|
+
$p.StartInfo.RedirectStandardOutput=$true;$p.StartInfo.RedirectStandardError=$true;$p.StartInfo.RedirectStandardInput=$true
|
|
18
19
|
try {
|
|
19
|
-
$null
|
|
20
|
-
$out
|
|
20
|
+
$null=$p.Start();$p.StandardInput.Close()
|
|
21
|
+
$out=$p.StandardOutput.ReadToEndAsync();$err=$p.StandardError.ReadToEndAsync()
|
|
21
22
|
if (-not $p.WaitForExit($TimeoutSeconds * 1000)) {
|
|
22
|
-
$p.Kill()
|
|
23
|
-
return @{Code=124;Text='WSL timed out;
|
|
23
|
+
$p.Kill();$null=$p.WaitForExit(10000)
|
|
24
|
+
return @{Code=124;Text='WSL timed out;check it before retrying.'}
|
|
24
25
|
}
|
|
25
26
|
if (-not $out.Wait(1000) -or -not $err.Wait(1000)) { return @{Code=1;Text='WSL output did not close.'} }
|
|
26
|
-
$text
|
|
27
|
+
$text=$out.Result + $err.Result
|
|
27
28
|
if ($text.Length -gt 1MB) { return @{Code=1;Text='WSL output exceeded its limit.'} }
|
|
28
29
|
return @{Code=$p.ExitCode;Text=$text}
|
|
29
30
|
} catch { return @{Code=-1;Text=[string]$_} }
|
|
@@ -56,7 +57,7 @@ function Invoke-OpenDashboard([string]$distro, [string]$user = 'root', [switch]$
|
|
|
56
57
|
$prevEAP = $ErrorActionPreference
|
|
57
58
|
try {
|
|
58
59
|
$ErrorActionPreference = 'Continue'
|
|
59
|
-
$r = Invoke-BoundedWsl -Arguments @('-d', $distro, '-u', $user, '--', 'bash', '-lc', (Get-WslAgendCommand $command))
|
|
60
|
+
$r = Invoke-BoundedWsl -Arguments @('-d', $distro, '-u', $user, '--exec', 'bash', '-lc', (Get-WslAgendCommand $command))
|
|
60
61
|
$text = $r.Text; $exit = $r.Code
|
|
61
62
|
} catch {
|
|
62
63
|
$text = "$_"; $exit = 1
|
|
@@ -93,7 +94,7 @@ function Invoke-AgendInWsl([string]$distro, [string]$user, [string]$command) {
|
|
|
93
94
|
$ErrorActionPreference = 'Continue'
|
|
94
95
|
try { [Console]::OutputEncoding = [Text.Encoding]::UTF8 } catch { }
|
|
95
96
|
$limit = if ($command -match '^agend (restart|start)( |$)') { 360 } else { 30 }
|
|
96
|
-
return (Invoke-BoundedWsl -TimeoutSeconds $limit -Arguments @('-d', $distro, '-u', $user, '--', 'bash', '-lc', (Get-WslAgendCommand $command)))
|
|
97
|
+
return (Invoke-BoundedWsl -TimeoutSeconds $limit -Arguments @('-d', $distro, '-u', $user, '--exec', 'bash', '-lc', (Get-WslAgendCommand $command)))
|
|
97
98
|
} catch {
|
|
98
99
|
return @{ Code = -1; Text = "$_" }
|
|
99
100
|
} finally {
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export declare const WEB_CHAT_NOTICE = "web-chat-2.2";
|
|
2
|
-
/** Where the web chat notice points a phone user, until the public link (#1367) gives them a menu option. */
|
|
3
|
-
export declare const WEB_REMOTE_DOCS_URL = "https://github.com/songsid/AgEnD/blob/main/docs/web-dashboard.md#reaching-it-from-elsewhere";
|
|
4
|
-
export declare function upgradeNoticesPath(dataDir: string): string;
|
|
5
|
-
/**
|
|
6
|
-
* Whether this version has web chat: 2.2 or later, prereleases included. The 2.2 betas (2.2.0-beta.N) are where
|
|
7
|
-
* upgrading users first meet it, although SemVer orders them before 2.2.0. A version that does not parse (a dev
|
|
8
|
-
* checkout says 1.22.0, an unknown one says "unknown") is not.
|
|
9
|
-
*/
|
|
10
|
-
export declare function hasWebChat(version: string): boolean;
|
|
11
|
-
/**
|
|
12
|
-
* Record that `notice` is being sent to `adapterId`. True only when this call recorded it: false when it was
|
|
13
|
-
* recorded before, or when the file cannot be read or written (then the caller sends nothing).
|
|
14
|
-
*/
|
|
15
|
-
export declare function claimNotice(path: string, notice: string, adapterId: string): boolean;
|
|
16
|
-
/** Undo a claim whose send failed, so the next start tries again. Best effort: false when it could not be undone. */
|
|
17
|
-
export declare function releaseNotice(path: string, notice: string, adapterId: string): boolean;
|
package/dist/upgrade-notices.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* One-time notices for people who upgrade into a release that changed how AgEnD is used (#1366).
|
|
3
|
-
*
|
|
4
|
-
* The first is web chat (2.2): a fleet that has run 2.1 for months gives no sign that its agents can now be talked
|
|
5
|
-
* to from a browser. The first time a fleet runs 2.2 or later, each chat platform's General is told once.
|
|
6
|
-
*
|
|
7
|
-
* What was announced where is recorded in `<AGEND_HOME>/upgrade-notices.json`: `{ "<notice>": ["<adapter id>", …] }`.
|
|
8
|
-
* A notice is claimed in that file before it is sent, and the claim is released if the send fails, so the next start
|
|
9
|
-
* tries again. When the file cannot be read or written, nothing is sent: a missed notice is better than one that
|
|
10
|
-
* repeats on every restart.
|
|
11
|
-
*/
|
|
12
|
-
import { readFileSync } from "node:fs";
|
|
13
|
-
import { join } from "node:path";
|
|
14
|
-
import { writeFileAtomic } from "./backend/kiro-engine-ledger.js";
|
|
15
|
-
export const WEB_CHAT_NOTICE = "web-chat-2.2";
|
|
16
|
-
/** Where the web chat notice points a phone user, until the public link (#1367) gives them a menu option. */
|
|
17
|
-
export const WEB_REMOTE_DOCS_URL = "https://github.com/songsid/AgEnD/blob/main/docs/web-dashboard.md#reaching-it-from-elsewhere";
|
|
18
|
-
export function upgradeNoticesPath(dataDir) {
|
|
19
|
-
return join(dataDir, "upgrade-notices.json");
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Whether this version has web chat: 2.2 or later, prereleases included. The 2.2 betas (2.2.0-beta.N) are where
|
|
23
|
-
* upgrading users first meet it, although SemVer orders them before 2.2.0. A version that does not parse (a dev
|
|
24
|
-
* checkout says 1.22.0, an unknown one says "unknown") is not.
|
|
25
|
-
*/
|
|
26
|
-
export function hasWebChat(version) {
|
|
27
|
-
const m = /^(\d+)\.(\d+)\.\d+(?:[-+].*)?$/.exec(version.trim());
|
|
28
|
-
if (!m)
|
|
29
|
-
return false;
|
|
30
|
-
const major = Number(m[1]), minor = Number(m[2]);
|
|
31
|
-
return major > 2 || (major === 2 && minor >= 2);
|
|
32
|
-
}
|
|
33
|
-
/** The state, `{}` when there is no file yet, or null when it exists but cannot be read or understood. */
|
|
34
|
-
function readState(path) {
|
|
35
|
-
let text;
|
|
36
|
-
try {
|
|
37
|
-
text = readFileSync(path, "utf8");
|
|
38
|
-
}
|
|
39
|
-
catch (err) {
|
|
40
|
-
return err.code === "ENOENT" ? {} : null;
|
|
41
|
-
}
|
|
42
|
-
try {
|
|
43
|
-
const parsed = JSON.parse(text);
|
|
44
|
-
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
45
|
-
return null;
|
|
46
|
-
const state = {};
|
|
47
|
-
for (const [notice, adapters] of Object.entries(parsed)) {
|
|
48
|
-
if (!Array.isArray(adapters) || !adapters.every(a => typeof a === "string"))
|
|
49
|
-
return null;
|
|
50
|
-
state[notice] = adapters;
|
|
51
|
-
}
|
|
52
|
-
return state;
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Record that `notice` is being sent to `adapterId`. True only when this call recorded it: false when it was
|
|
60
|
-
* recorded before, or when the file cannot be read or written (then the caller sends nothing).
|
|
61
|
-
*/
|
|
62
|
-
export function claimNotice(path, notice, adapterId) {
|
|
63
|
-
const state = readState(path);
|
|
64
|
-
if (!state || state[notice]?.includes(adapterId))
|
|
65
|
-
return false;
|
|
66
|
-
state[notice] = [...(state[notice] ?? []), adapterId];
|
|
67
|
-
try {
|
|
68
|
-
writeFileAtomic(path, JSON.stringify(state, null, 2) + "\n");
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
return false;
|
|
72
|
-
}
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
/** Undo a claim whose send failed, so the next start tries again. Best effort: false when it could not be undone. */
|
|
76
|
-
export function releaseNotice(path, notice, adapterId) {
|
|
77
|
-
const state = readState(path);
|
|
78
|
-
if (!state)
|
|
79
|
-
return false;
|
|
80
|
-
const left = (state[notice] ?? []).filter(a => a !== adapterId);
|
|
81
|
-
if (left.length > 0)
|
|
82
|
-
state[notice] = left;
|
|
83
|
-
else
|
|
84
|
-
delete state[notice];
|
|
85
|
-
try {
|
|
86
|
-
writeFileAtomic(path, JSON.stringify(state, null, 2) + "\n");
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=upgrade-notices.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-notices.js","sourceRoot":"","sources":["../src/upgrade-notices.ts"],"names":[],"mappings":"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"}
|