sensorium-mcp 3.1.3 → 3.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/Install-Sensorium.ps1 +251 -39
  2. package/dist/config/agent-settings.d.ts +11 -0
  3. package/dist/config/agent-settings.d.ts.map +1 -1
  4. package/dist/config/agent-settings.js +79 -0
  5. package/dist/config/agent-settings.js.map +1 -1
  6. package/dist/config/index.d.ts +1 -0
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/index.js +12 -0
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/config/misc-settings.d.ts +6 -0
  11. package/dist/config/misc-settings.d.ts.map +1 -1
  12. package/dist/config/misc-settings.js +31 -0
  13. package/dist/config/misc-settings.js.map +1 -1
  14. package/dist/dashboard/routes/codex.d.ts +14 -0
  15. package/dist/dashboard/routes/codex.d.ts.map +1 -0
  16. package/dist/dashboard/routes/codex.js +92 -0
  17. package/dist/dashboard/routes/codex.js.map +1 -0
  18. package/dist/dashboard/routes/threads-read.d.ts +10 -7
  19. package/dist/dashboard/routes/threads-read.d.ts.map +1 -1
  20. package/dist/dashboard/routes/threads-read.js +21 -16
  21. package/dist/dashboard/routes/threads-read.js.map +1 -1
  22. package/dist/dashboard/routes.d.ts.map +1 -1
  23. package/dist/dashboard/routes.js +3 -0
  24. package/dist/dashboard/routes.js.map +1 -1
  25. package/dist/dashboard/spa.html +11 -11
  26. package/dist/data/memory/bootstrap.d.ts +1 -1
  27. package/dist/data/memory/bootstrap.d.ts.map +1 -1
  28. package/dist/data/memory/bootstrap.js +23 -14
  29. package/dist/data/memory/bootstrap.js.map +1 -1
  30. package/dist/data/memory/consolidation.d.ts +20 -1
  31. package/dist/data/memory/consolidation.d.ts.map +1 -1
  32. package/dist/data/memory/consolidation.js +53 -3
  33. package/dist/data/memory/consolidation.js.map +1 -1
  34. package/dist/data/memory/key-knowledge.d.ts +38 -0
  35. package/dist/data/memory/key-knowledge.d.ts.map +1 -0
  36. package/dist/data/memory/key-knowledge.js +118 -0
  37. package/dist/data/memory/key-knowledge.js.map +1 -0
  38. package/dist/data/memory/migration-runner.d.ts +1 -1
  39. package/dist/data/memory/migration-runner.d.ts.map +1 -1
  40. package/dist/data/memory/migration-runner.js +23 -1
  41. package/dist/data/memory/migration-runner.js.map +1 -1
  42. package/dist/data/memory/narrative-lint.d.ts +2 -2
  43. package/dist/data/memory/narrative-lint.d.ts.map +1 -1
  44. package/dist/data/memory/narrative-lint.js +23 -13
  45. package/dist/data/memory/narrative-lint.js.map +1 -1
  46. package/dist/data/memory/narrative-resolutions.d.ts +8 -1
  47. package/dist/data/memory/narrative-resolutions.d.ts.map +1 -1
  48. package/dist/data/memory/narrative-resolutions.js +12 -5
  49. package/dist/data/memory/narrative-resolutions.js.map +1 -1
  50. package/dist/data/memory/narrative-sources.d.ts +1 -1
  51. package/dist/data/memory/narrative-sources.d.ts.map +1 -1
  52. package/dist/data/memory/narrative-sources.js +8 -3
  53. package/dist/data/memory/narrative-sources.js.map +1 -1
  54. package/dist/data/memory/narrative-store.d.ts +14 -0
  55. package/dist/data/memory/narrative-store.d.ts.map +1 -1
  56. package/dist/data/memory/narrative-store.js +36 -0
  57. package/dist/data/memory/narrative-store.js.map +1 -1
  58. package/dist/data/memory/narrative.d.ts.map +1 -1
  59. package/dist/data/memory/narrative.js +45 -25
  60. package/dist/data/memory/narrative.js.map +1 -1
  61. package/dist/data/memory/note-archival.d.ts +1 -1
  62. package/dist/data/memory/note-archival.d.ts.map +1 -1
  63. package/dist/data/memory/note-archival.js +7 -3
  64. package/dist/data/memory/note-archival.js.map +1 -1
  65. package/dist/data/memory/schema-ddl.d.ts +1 -1
  66. package/dist/data/memory/schema-ddl.d.ts.map +1 -1
  67. package/dist/data/memory/schema-ddl.js +3 -1
  68. package/dist/data/memory/schema-ddl.js.map +1 -1
  69. package/dist/data/memory/semantic-notes.d.ts +9 -1
  70. package/dist/data/memory/semantic-notes.d.ts.map +1 -1
  71. package/dist/data/memory/semantic-notes.js +4 -2
  72. package/dist/data/memory/semantic-notes.js.map +1 -1
  73. package/dist/data/memory/thread-registry.d.ts +7 -1
  74. package/dist/data/memory/thread-registry.d.ts.map +1 -1
  75. package/dist/data/memory/thread-registry.js +14 -5
  76. package/dist/data/memory/thread-registry.js.map +1 -1
  77. package/dist/data/memory/utils.d.ts +6 -0
  78. package/dist/data/memory/utils.d.ts.map +1 -1
  79. package/dist/data/memory/utils.js +13 -0
  80. package/dist/data/memory/utils.js.map +1 -1
  81. package/dist/integrations/openai/speech.js +4 -4
  82. package/dist/integrations/openai/speech.js.map +1 -1
  83. package/dist/lib/http-retry.d.ts +91 -0
  84. package/dist/lib/http-retry.d.ts.map +1 -0
  85. package/dist/lib/http-retry.js +177 -0
  86. package/dist/lib/http-retry.js.map +1 -0
  87. package/dist/lib/usage-metering/pricing.js +1 -1
  88. package/dist/lib/usage-metering/pricing.js.map +1 -1
  89. package/dist/llm/prompts/narrative.d.ts.map +1 -1
  90. package/dist/llm/prompts/narrative.js +27 -86
  91. package/dist/llm/prompts/narrative.js.map +1 -1
  92. package/dist/services/claude-spawn.service.d.ts.map +1 -1
  93. package/dist/services/claude-spawn.service.js +6 -1
  94. package/dist/services/claude-spawn.service.js.map +1 -1
  95. package/dist/services/codex-spawn.service.d.ts +2 -2
  96. package/dist/services/codex-spawn.service.d.ts.map +1 -1
  97. package/dist/services/codex-spawn.service.js +64 -58
  98. package/dist/services/codex-spawn.service.js.map +1 -1
  99. package/dist/services/consolidation.service.d.ts.map +1 -1
  100. package/dist/services/consolidation.service.js +10 -1
  101. package/dist/services/consolidation.service.js.map +1 -1
  102. package/dist/services/copilot-spawn.service.d.ts.map +1 -1
  103. package/dist/services/copilot-spawn.service.js +6 -1
  104. package/dist/services/copilot-spawn.service.js.map +1 -1
  105. package/dist/services/daily-session.d.ts +21 -10
  106. package/dist/services/daily-session.d.ts.map +1 -1
  107. package/dist/services/daily-session.js +60 -15
  108. package/dist/services/daily-session.js.map +1 -1
  109. package/dist/services/http-retry.d.ts +1 -90
  110. package/dist/services/http-retry.d.ts.map +1 -1
  111. package/dist/services/http-retry.js +1 -176
  112. package/dist/services/http-retry.js.map +1 -1
  113. package/dist/services/mcp-config.service.d.ts.map +1 -1
  114. package/dist/services/mcp-config.service.js +14 -1
  115. package/dist/services/mcp-config.service.js.map +1 -1
  116. package/dist/services/memory-briefing.service.d.ts +1 -1
  117. package/dist/services/memory-briefing.service.d.ts.map +1 -1
  118. package/dist/services/memory-briefing.service.js +33 -30
  119. package/dist/services/memory-briefing.service.js.map +1 -1
  120. package/dist/services/memory-pruning.service.d.ts.map +1 -1
  121. package/dist/services/memory-pruning.service.js +22 -4
  122. package/dist/services/memory-pruning.service.js.map +1 -1
  123. package/dist/services/spawn-common.d.ts +10 -2
  124. package/dist/services/spawn-common.d.ts.map +1 -1
  125. package/dist/services/spawn-common.js +25 -4
  126. package/dist/services/spawn-common.js.map +1 -1
  127. package/dist/services/telegram.d.ts +7 -5
  128. package/dist/services/telegram.d.ts.map +1 -1
  129. package/dist/services/telegram.js +18 -13
  130. package/dist/services/telegram.js.map +1 -1
  131. package/dist/sessions/mcp-registry.d.ts +7 -2
  132. package/dist/sessions/mcp-registry.d.ts.map +1 -1
  133. package/dist/sessions/mcp-registry.js +52 -30
  134. package/dist/sessions/mcp-registry.js.map +1 -1
  135. package/dist/tools/defs/memory-defs.d.ts.map +1 -1
  136. package/dist/tools/defs/memory-defs.js +4 -0
  137. package/dist/tools/defs/memory-defs.js.map +1 -1
  138. package/dist/tools/delegate-tool.js +2 -2
  139. package/dist/tools/delegate-tool.js.map +1 -1
  140. package/dist/tools/memory-tools.d.ts.map +1 -1
  141. package/dist/tools/memory-tools.js +9 -1
  142. package/dist/tools/memory-tools.js.map +1 -1
  143. package/dist/tools/start-session-tool.js +1 -1
  144. package/dist/tools/start-session-tool.js.map +1 -1
  145. package/dist/tools/wait/consolidation-strategy.d.ts +42 -0
  146. package/dist/tools/wait/consolidation-strategy.d.ts.map +1 -0
  147. package/dist/tools/wait/consolidation-strategy.js +50 -0
  148. package/dist/tools/wait/consolidation-strategy.js.map +1 -0
  149. package/dist/tools/wait/drive-handler.d.ts +5 -7
  150. package/dist/tools/wait/drive-handler.d.ts.map +1 -1
  151. package/dist/tools/wait/drive-handler.js +44 -48
  152. package/dist/tools/wait/drive-handler.js.map +1 -1
  153. package/dist/tools/wait/message-processing.d.ts.map +1 -1
  154. package/dist/tools/wait/message-processing.js +2 -1
  155. package/dist/tools/wait/message-processing.js.map +1 -1
  156. package/dist/tools/wait/poll-loop.d.ts.map +1 -1
  157. package/dist/tools/wait/poll-loop.js +2 -8
  158. package/dist/tools/wait/poll-loop.js.map +1 -1
  159. package/package.json +1 -1
@@ -41,11 +41,25 @@ $ConfigFile = Join-Path $DataDir "install.config.json"
41
41
  $StartupDir = [Environment]::GetFolderPath("Startup")
42
42
  $StartupLauncher = Join-Path $StartupDir "SensoriumSupervisor.cmd"
43
43
 
44
+ # Isolated MCP runtime: a PRIVATE npm cache + a repo-independent cwd for the MCP,
45
+ # both living under $DataDir (never a dev checkout). This severs the shared-cache /
46
+ # shared-cwd coupling that lets a worker's `npm ci`/build in a dev repo interfere
47
+ # with (and kill) the live MCP — WITHOUT pinning the version, so `npx ...@latest`
48
+ # still auto-updates the MCP on each restart. npx also stages its packages in
49
+ # <cache>/_npx, so a private npm cache isolates npx resolution too.
50
+ $McpRuntimeRoot = Join-Path $DataDir "mcp-runtime"
51
+ $McpRuntimeCache = Join-Path $McpRuntimeRoot "npm-cache"
52
+
44
53
  # ── Config File ──────────────────────────────────────────────────────────────
45
54
  $Defaults = @{
46
55
  SecureVaultProfile = "SENSORIUM"
47
56
  UpdateMode = "production"
48
57
  MCPStartCommand = "npx -y sensorium-mcp@latest"
58
+ # Opt-in runtime isolation. When "true", the MCP keeps its `npx ...@latest`
59
+ # start command (so auto-update still works) but is given its OWN npm cache
60
+ # ($McpRuntimeCache) and a repo-independent cwd ($McpRuntimeRoot), decoupled
61
+ # from any dev checkout's shared npm cache / cwd. "false" = legacy behaviour.
62
+ IsolateMcpRuntime = "false"
49
63
  }
50
64
 
51
65
  function Load-Config {
@@ -78,6 +92,7 @@ $Config = Load-Config
78
92
  $SecureVaultProfile = $Config["SecureVaultProfile"]
79
93
  $UpdateMode = $Config["UpdateMode"]
80
94
  $EffectiveMCPStartCommand = $Config["MCPStartCommand"]
95
+ $IsolateMcpRuntime = $Config["IsolateMcpRuntime"] -eq "true"
81
96
 
82
97
  # Resolve the supervisor release channel from the same tag the node server
83
98
  # follows: the "@<tag>" in MCPStartCommand. Only @refactor uses the branch
@@ -102,8 +117,27 @@ Save-Config $Config
102
117
  function Stop-SupervisorProcess {
103
118
  $procs = Get-Process -Name "sensorium-supervisor" -ErrorAction SilentlyContinue
104
119
  if ($procs) {
120
+ # Keep the original PID set. A name-only lookup after stopping can confuse a
121
+ # newly launched process with the instance we were asked to stop.
122
+ $targetPids = @($procs | Select-Object -ExpandProperty Id)
105
123
  Write-Host "Stopping background sensorium-supervisor process(es)..."
106
- $procs | Stop-Process -Force
124
+ $procs | Stop-Process -Force -ErrorAction Stop
125
+
126
+ # Stop-Process returns once a signal has been sent, not once all image/file
127
+ # handles are released. Do not attempt an in-place replacement until every
128
+ # PID we targeted is gone; a continuing process makes the update unsafe.
129
+ $deadline = (Get-Date).AddSeconds(10)
130
+ do {
131
+ $remainingPids = @($targetPids | Where-Object {
132
+ Get-Process -Id $_ -ErrorAction SilentlyContinue
133
+ })
134
+ if ($remainingPids.Count -eq 0) { break }
135
+ Start-Sleep -Milliseconds 250
136
+ } while ((Get-Date) -lt $deadline)
137
+
138
+ if ($remainingPids.Count -gt 0) {
139
+ throw "Refusing to update: sensorium-supervisor PID(s) $($remainingPids -join ', ') did not stop within 10 seconds."
140
+ }
107
141
  Write-Host "Process(es) stopped." -ForegroundColor Yellow
108
142
  }
109
143
  }
@@ -212,7 +246,45 @@ function Save-BinaryMetadata {
212
246
  InstalledAt = (Get-Date).ToString("o")
213
247
  }
214
248
 
215
- $metadata | ConvertTo-Json | Set-Content -LiteralPath $MetadataPath -Encoding ASCII
249
+ # Do not write metadata in place: a failure halfway through a write would make a
250
+ # good binary look stale on the next run. The temp name is unique so concurrent
251
+ # or previously interrupted installs cannot collide with it.
252
+ $metadataTempPath = "$MetadataPath.tmp.$PID.$([guid]::NewGuid().ToString('N'))"
253
+ try {
254
+ $metadata | ConvertTo-Json | Set-Content -LiteralPath $metadataTempPath -Encoding ASCII
255
+ Move-FileWithRetry -Source $metadataTempPath -Destination $MetadataPath -Operation "update release metadata"
256
+ }
257
+ finally {
258
+ if (Test-Path -LiteralPath $metadataTempPath) {
259
+ Remove-Item -LiteralPath $metadataTempPath -Force -ErrorAction SilentlyContinue
260
+ }
261
+ }
262
+ }
263
+
264
+ function Move-FileWithRetry {
265
+ param(
266
+ [string]$Source,
267
+ [string]$Destination,
268
+ [string]$Operation = "replace file",
269
+ [int]$MaxAttempts = 20,
270
+ [int]$RetryDelayMs = 1500
271
+ )
272
+
273
+ for ($attempt = 1; $attempt -le $MaxAttempts; $attempt++) {
274
+ try {
275
+ Move-Item -LiteralPath $Source -Destination $Destination -Force -ErrorAction Stop
276
+ return
277
+ }
278
+ catch {
279
+ if ($attempt -eq $MaxAttempts) {
280
+ throw "Failed to $Operation at $Destination after $MaxAttempts attempts (~$([math]::Round($MaxAttempts * $RetryDelayMs / 1000))s). Original error: $_"
281
+ }
282
+ if ($attempt % 4 -eq 0) {
283
+ Write-Host " ... waiting to $Operation (attempt $attempt/$MaxAttempts)..." -ForegroundColor Yellow
284
+ }
285
+ Start-Sleep -Milliseconds $RetryDelayMs
286
+ }
287
+ }
216
288
  }
217
289
 
218
290
  function Get-BinaryAsset {
@@ -229,7 +301,13 @@ function Get-BinaryAsset {
229
301
  $headers = Get-GithubAuthHeaders -Accept "application/octet-stream"
230
302
  Write-Host "Downloading $($AssetInfo.AssetName) ..."
231
303
 
232
- $tmpFile = "$Destination.tmp"
304
+ $operationId = "$PID.$([guid]::NewGuid().ToString('N'))"
305
+ $tmpFile = "$Destination.tmp.$operationId"
306
+ $backupPath = "$Destination.bak.$operationId"
307
+ $metadataBackupPath = "$MetadataPath.bak.$operationId"
308
+ $hadBinary = Test-Path -LiteralPath $Destination
309
+ $hadMetadata = Test-Path -LiteralPath $MetadataPath
310
+ $swapped = $false
233
311
  try {
234
312
  Invoke-WebRequest -Uri $downloadUrl -Headers $headers -OutFile $tmpFile -UseBasicParsing -ErrorAction Stop
235
313
  }
@@ -241,15 +319,74 @@ function Get-BinaryAsset {
241
319
  throw "Download failed: $_"
242
320
  }
243
321
 
244
- # Atomic replace
245
- if (Test-Path $Destination) {
246
- $backupPath = "$Destination.bak"
247
- Copy-Item $Destination $backupPath -Force
322
+ try {
323
+ # Preserve both halves of the installed state. If anything after the
324
+ # executable swap fails (notably metadata persistence), restore the pair.
325
+ if ($hadBinary) { Copy-Item -LiteralPath $Destination -Destination $backupPath -Force -ErrorAction Stop }
326
+ if ($hadMetadata) { Copy-Item -LiteralPath $MetadataPath -Destination $metadataBackupPath -Force -ErrorAction Stop }
327
+
328
+ # The old exe can still be locked for a while after Stop-Process — AV/EDR
329
+ # may retain its image-section handle during a post-exit scan.
330
+ Move-FileWithRetry -Source $tmpFile -Destination $Destination -Operation "replace supervisor binary"
331
+ $swapped = $true
332
+
333
+ try {
334
+ Unblock-File -Path $Destination -ErrorAction Stop
335
+ }
336
+ catch {
337
+ Write-Host "[WARN] Could not unblock ${Destination}: $($_.Exception.Message)" -ForegroundColor Yellow
338
+ }
339
+
340
+ Save-BinaryMetadata -MetadataPath $MetadataPath -AssetInfo $AssetInfo
341
+ Write-Host "Binary placed at: $Destination" -ForegroundColor Green
342
+ }
343
+ catch {
344
+ $updateError = $_
345
+ if ($swapped) {
346
+ Write-Host "[WARN] Update failed after binary replacement; restoring the previous binary and metadata..." -ForegroundColor Yellow
347
+ $restoreErrors = @()
348
+ try {
349
+ if ($hadBinary) {
350
+ $restoreFile = "$Destination.restore.$operationId"
351
+ Copy-Item -LiteralPath $backupPath -Destination $restoreFile -Force -ErrorAction Stop
352
+ Move-FileWithRetry -Source $restoreFile -Destination $Destination -Operation "restore previous supervisor binary"
353
+ }
354
+ elseif (Test-Path -LiteralPath $Destination) {
355
+ Remove-Item -LiteralPath $Destination -Force -ErrorAction Stop
356
+ }
357
+ }
358
+ catch { $restoreErrors += "binary: $($_.Exception.Message)" }
359
+
360
+ try {
361
+ if ($hadMetadata) {
362
+ # Stage the backup under a unique name, then use the same
363
+ # retrying replacement path as the binary. Copy-Item directly
364
+ # to $MetadataPath could leave metadata restoration vulnerable
365
+ # to a locked destination and bypass the retry policy.
366
+ $metadataRestoreFile = "$MetadataPath.restore.$operationId"
367
+ Copy-Item -LiteralPath $metadataBackupPath -Destination $metadataRestoreFile -Force -ErrorAction Stop
368
+ Move-FileWithRetry -Source $metadataRestoreFile -Destination $MetadataPath -Operation "restore previous release metadata"
369
+ }
370
+ elseif (Test-Path -LiteralPath $MetadataPath) {
371
+ Remove-Item -LiteralPath $MetadataPath -Force -ErrorAction Stop
372
+ }
373
+ }
374
+ catch { $restoreErrors += "metadata: $($_.Exception.Message)" }
375
+
376
+ if ($restoreErrors.Count -gt 0) {
377
+ throw "Update failed and recovery was incomplete ($($restoreErrors -join '; ')). Original error: $($updateError.Exception.Message)"
378
+ }
379
+ throw "Update failed after replacement; the previous binary and metadata were restored. Original error: $($updateError.Exception.Message)"
380
+ }
381
+ throw
382
+ }
383
+ finally {
384
+ foreach ($path in @($tmpFile, $backupPath, $metadataBackupPath, "$Destination.restore.$operationId", "$MetadataPath.restore.$operationId")) {
385
+ if (Test-Path -LiteralPath $path) {
386
+ Remove-Item -LiteralPath $path -Force -ErrorAction SilentlyContinue
387
+ }
388
+ }
248
389
  }
249
- Move-Item $tmpFile $Destination -Force
250
- Unblock-File -Path $Destination -ErrorAction SilentlyContinue
251
- Save-BinaryMetadata -MetadataPath $MetadataPath -AssetInfo $AssetInfo
252
- Write-Host "Binary placed at: $Destination" -ForegroundColor Green
253
390
  }
254
391
 
255
392
  function Install-StartupLauncher {
@@ -306,10 +443,44 @@ function Test-SecureVaultAvailable {
306
443
  catch { return $false }
307
444
  }
308
445
 
446
+ function Initialize-IsolatedMcpRuntime {
447
+ <#
448
+ Prepares the PRIVATE MCP runtime area: a dedicated npm cache and a
449
+ repo-independent cwd, both under $McpRuntimeRoot. It does NOT install or pin
450
+ any package — the MCP keeps its `npx ...@latest` start command so auto-update
451
+ still works; isolation comes purely from the private cache + cwd handed to the
452
+ supervisor (and thus to npx) via Start-Supervisor. Idempotent; only creates dirs.
453
+ #>
454
+ Write-Host "Isolated MCP runtime enabled — preparing private cache + cwd..." -ForegroundColor Cyan
455
+ Write-Host " Runtime cwd : $McpRuntimeRoot"
456
+ Write-Host " npm cache : $McpRuntimeCache (npx stages under $McpRuntimeCache\_npx)"
457
+
458
+ try {
459
+ New-Item -ItemType Directory -Path $McpRuntimeRoot -Force | Out-Null
460
+ New-Item -ItemType Directory -Path $McpRuntimeCache -Force | Out-Null
461
+ }
462
+ catch {
463
+ Write-Host "[WARN] Could not create isolated runtime dirs: $($_.Exception.Message) — keeping legacy behaviour." -ForegroundColor Yellow
464
+ return $false
465
+ }
466
+ return $true
467
+ }
468
+
309
469
  function Start-Supervisor {
310
470
  $env:SUPERVISOR_UPDATE_MODE = $UpdateMode
311
471
  $env:MCP_START_COMMAND = $EffectiveMCPStartCommand
312
472
 
473
+ # In isolated mode, hand the supervisor a private npm cache and a repo-independent
474
+ # cwd. The supervisor inherits its whole environment and passes it to the MCP, so
475
+ # NPM_CONFIG_CACHE reaches the `npx ...@latest` child automatically (isolating both
476
+ # the npm cache and npx's <cache>\_npx staging); MCP_WORKING_DIR is consumed by the
477
+ # supervisor to set the MCP's spawn cwd. The `@latest` command is unchanged, so
478
+ # auto-update keeps working — only WHERE npx resolves/caches changes.
479
+ if ($IsolateMcpRuntime) {
480
+ $env:NPM_CONFIG_CACHE = $McpRuntimeCache
481
+ $env:MCP_WORKING_DIR = $McpRuntimeRoot
482
+ }
483
+
313
484
  $useSecureVault = (-not [string]::IsNullOrWhiteSpace($SecureVaultProfile)) -and (Test-SecureVaultAvailable)
314
485
 
315
486
  if ($useSecureVault) {
@@ -390,7 +561,7 @@ function Sync-ReleaseBinary {
390
561
  Write-Host "Fetching release via SecureVault (profile: $SecureVaultProfile)..."
391
562
  securevault run pwsh -NoProfile -File "`"$PSCommandPath`"" -SyncReleaseOnly --profile $SecureVaultProfile
392
563
  if ($LASTEXITCODE -ne 0) {
393
- throw "SecureVault-driven release sync failed (exit $LASTEXITCODE). Ensure profile '$SecureVaultProfile' maps a GitHub PAT to env var SENSORIUM_GH_TOKEN."
564
+ throw "SecureVault-driven release sync failed (exit $LASTEXITCODE). See the error above for the actual cause (e.g. a locked binary, network failure, or a missing GitHub PAT for profile '$SecureVaultProfile' -> `$env:SENSORIUM_GH_TOKEN)."
394
565
  }
395
566
  }
396
567
 
@@ -402,35 +573,76 @@ if ($SyncReleaseOnly) {
402
573
  }
403
574
 
404
575
  # ── Main ─────────────────────────────────────────────────────────────────────
405
- $alreadyExists = Test-Path $Binary
576
+ # Serialize only full installer invocations for this Windows user. The
577
+ # SecureVault child above deliberately returns before this point, so it can do
578
+ # the authenticated release sync without waiting on (and deadlocking with) its
579
+ # parent installer process.
580
+ $currentUserSid = [Security.Principal.WindowsIdentity]::GetCurrent().User.Value
581
+ $installMutexName = "Local\SensoriumSupervisor.Install.$($currentUserSid -replace '[^A-Za-z0-9_.-]', '_')"
582
+ $installMutex = [System.Threading.Mutex]::new($false, $installMutexName)
583
+ $mutexHeld = $false
584
+
585
+ try {
586
+ try {
587
+ $mutexHeld = $installMutex.WaitOne([TimeSpan]::FromMinutes(5))
588
+ }
589
+ catch [System.Threading.AbandonedMutexException] {
590
+ # The prior installer died without releasing the mutex; Windows has given
591
+ # us ownership, so continue while making that state visible to the user.
592
+ $mutexHeld = $true
593
+ Write-Host "[WARN] Recovered an abandoned installer mutex; continuing." -ForegroundColor Yellow
594
+ }
406
595
 
407
- Write-Host ""
408
- if ($alreadyExists) {
409
- Write-Host "=== Sensorium Supervisor UPDATE ===" -ForegroundColor Cyan
410
- }
411
- else {
412
- Write-Host "=== Sensorium Supervisor INSTALL ===" -ForegroundColor Cyan
413
- }
414
- Write-Host "SecureVault profile: $(if ([string]::IsNullOrWhiteSpace($SecureVaultProfile)) { '<disabled>' } else { $SecureVaultProfile })"
415
- Write-Host "Watcher mode: $UpdateMode"
416
- Write-Host "MCP start command: $EffectiveMCPStartCommand"
417
- Write-Host "Binary : $Binary"
418
- Write-Host ""
419
-
420
- # Step 1 — stop existing instance
421
- if ($alreadyExists) {
422
- Stop-SupervisorProcess
423
- }
596
+ if (-not $mutexHeld) {
597
+ throw "Another Sensorium install/update is still running for this user. Timed out waiting for it to finish."
598
+ }
424
599
 
425
- # Step 2 — ensure bin dir exists
426
- New-Item -ItemType Directory -Path $BinDir -Force | Out-Null
600
+ $alreadyExists = Test-Path $Binary
427
601
 
428
- # Step 3 — fetch release metadata and download only when needed
429
- Sync-ReleaseBinary
602
+ Write-Host ""
603
+ if ($alreadyExists) {
604
+ Write-Host "=== Sensorium Supervisor UPDATE ===" -ForegroundColor Cyan
605
+ }
606
+ else {
607
+ Write-Host "=== Sensorium Supervisor INSTALL ===" -ForegroundColor Cyan
608
+ }
609
+ Write-Host "SecureVault profile: $(if ([string]::IsNullOrWhiteSpace($SecureVaultProfile)) { '<disabled>' } else { $SecureVaultProfile })"
610
+ Write-Host "Watcher mode: $UpdateMode"
611
+ Write-Host "MCP start command: $EffectiveMCPStartCommand"
612
+ Write-Host "MCP runtime isolation: $(if ($IsolateMcpRuntime) { 'ENABLED' } else { 'disabled (legacy npx)' })"
613
+ Write-Host "Binary : $Binary"
614
+ Write-Host ""
615
+
616
+ # Step 1 — stop existing instance
617
+ if ($alreadyExists) {
618
+ Stop-SupervisorProcess
619
+ }
620
+
621
+ # Step 2 — ensure bin dir exists
622
+ New-Item -ItemType Directory -Path $BinDir -Force | Out-Null
623
+
624
+ # Step 3 — fetch release metadata and download only when needed
625
+ Sync-ReleaseBinary
626
+
627
+ # Step 3b — prepare the isolated MCP runtime area (opt-in): a private npm cache +
628
+ # repo-independent cwd. The `npx ...@latest` command is unchanged (auto-update
629
+ # preserved). On any failure this disables the isolation env in Start-Supervisor,
630
+ # so the install degrades safely to legacy behaviour.
631
+ if ($IsolateMcpRuntime) {
632
+ if (-not (Initialize-IsolatedMcpRuntime)) {
633
+ $IsolateMcpRuntime = $false
634
+ Write-Host "[WARN] Isolation disabled for this run — using the shared npm cache / inherited cwd." -ForegroundColor Yellow
635
+ }
636
+ }
430
637
 
431
- # Step 4 — install launcher and start
432
- Install-StartupLauncher
433
- Start-Supervisor
638
+ # Step 4 — install launcher and start
639
+ Install-StartupLauncher
640
+ Start-Supervisor
434
641
 
435
- # Step 5 — verify
436
- Show-Status
642
+ # Step 5 — verify
643
+ Show-Status
644
+ }
645
+ finally {
646
+ if ($mutexHeld) { $installMutex.ReleaseMutex() }
647
+ if ($installMutex) { $installMutex.Dispose() }
648
+ }
@@ -79,4 +79,15 @@ export declare function setMaxConcurrentThreads(count: number): void;
79
79
  */
80
80
  export declare function getClaudeAutoMemoryEnabled(): boolean;
81
81
  export declare function setClaudeAutoMemoryEnabled(enabled: boolean): void;
82
+ export declare function getCodexToolTimeoutSec(): number;
83
+ export declare function setCodexToolTimeoutSec(sec: number): void;
84
+ export type CodexModelVerbosity = "default" | "low" | "medium" | "high";
85
+ export declare const CODEX_MODEL_VERBOSITY_VALUES: readonly CodexModelVerbosity[];
86
+ export declare function isCodexModelVerbosity(v: unknown): v is CodexModelVerbosity;
87
+ export declare function getCodexModelVerbosity(): CodexModelVerbosity;
88
+ export declare function setCodexModelVerbosity(v: CodexModelVerbosity): void;
89
+ export declare function getCodexRootModel(): string;
90
+ export declare function setCodexRootModel(model: string): void;
91
+ export declare function getCodexWorkerModel(): string;
92
+ export declare function setCodexWorkerModel(model: string): void;
82
93
  //# sourceMappingURL=agent-settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-settings.d.ts","sourceRoot":"","sources":["../../src/config/agent-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-settings.d.ts","sourceRoot":"","sources":["../../src/config/agent-settings.ts"],"names":[],"mappings":"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"}
@@ -258,4 +258,83 @@ export function setClaudeAutoMemoryEnabled(enabled) {
258
258
  s.claudeAutoMemoryEnabled = enabled;
259
259
  });
260
260
  }
261
+ // ─── Codex spawn settings ───────────────────────────────────────────────────
262
+ //
263
+ // Codex cancels an MCP tool call once it exceeds `tool_timeout_sec` (Codex's own
264
+ // default is 300s). Sensorium's `wait_for_instructions` long-polls for the next
265
+ // instruction, so a low timeout severs the call mid-wait and force-exits the
266
+ // tool. This value is injected into the Codex MCP server config at spawn (see
267
+ // buildCodexMcpArgs). Default is 25h so a thread can park through a full 24h
268
+ // wait; configurable from the dashboard.
269
+ const DEFAULT_CODEX_TOOL_TIMEOUT_SEC = 90_000;
270
+ export function getCodexToolTimeoutSec() {
271
+ const v = readSettings().codexToolTimeoutSec;
272
+ if (typeof v === "number" && Number.isFinite(v) && v >= 1)
273
+ return Math.round(v);
274
+ return DEFAULT_CODEX_TOOL_TIMEOUT_SEC;
275
+ }
276
+ export function setCodexToolTimeoutSec(sec) {
277
+ const clamped = Math.max(1, Math.round(sec));
278
+ if (!Number.isFinite(clamped))
279
+ return;
280
+ updateSettings((s) => {
281
+ s.codexToolTimeoutSec = clamped;
282
+ });
283
+ }
284
+ export const CODEX_MODEL_VERBOSITY_VALUES = [
285
+ "default",
286
+ "low",
287
+ "medium",
288
+ "high",
289
+ ];
290
+ export function isCodexModelVerbosity(v) {
291
+ return typeof v === "string" && CODEX_MODEL_VERBOSITY_VALUES.includes(v);
292
+ }
293
+ export function getCodexModelVerbosity() {
294
+ const v = readSettings().codexModelVerbosity;
295
+ return isCodexModelVerbosity(v) ? v : "default";
296
+ }
297
+ export function setCodexModelVerbosity(v) {
298
+ if (!isCodexModelVerbosity(v))
299
+ return;
300
+ updateSettings((s) => {
301
+ // "default" means no override — drop the key so settings.json stays clean
302
+ // and the getter's unset path is exercised.
303
+ if (v === "default")
304
+ delete s.codexModelVerbosity;
305
+ else
306
+ s.codexModelVerbosity = v;
307
+ });
308
+ }
309
+ // Codex model selection by thread role. Mirrors Claude's root-vs-worker split
310
+ // (getDefaultThreadModel / getDefaultWorkerModel): a root/orchestrator Codex
311
+ // thread and a worker Codex thread can run different models. Empty string means
312
+ // "use Codex's own default" — spawnCodexProcess then emits no `-m`, so behavior
313
+ // is unchanged until the operator picks a model. Branch threads follow the root
314
+ // model, matching claude-spawn's convention (only threadType === "worker" takes
315
+ // the worker model).
316
+ export function getCodexRootModel() {
317
+ const v = readSettings().codexRootModel;
318
+ return typeof v === "string" ? v : "";
319
+ }
320
+ export function setCodexRootModel(model) {
321
+ updateSettings((s) => {
322
+ if (model)
323
+ s.codexRootModel = model;
324
+ else
325
+ delete s.codexRootModel;
326
+ });
327
+ }
328
+ export function getCodexWorkerModel() {
329
+ const v = readSettings().codexWorkerModel;
330
+ return typeof v === "string" ? v : "";
331
+ }
332
+ export function setCodexWorkerModel(model) {
333
+ updateSettings((s) => {
334
+ if (model)
335
+ s.codexWorkerModel = model;
336
+ else
337
+ delete s.codexWorkerModel;
338
+ });
339
+ }
261
340
  //# sourceMappingURL=agent-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-settings.js","sourceRoot":"","sources":["../../src/config/agent-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-settings.js","sourceRoot":"","sources":["../../src/config/agent-settings.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export * from "./keep-alive-settings.js";
12
12
  export * from "./misc-settings.js";
13
13
  export * from "./detail-grant.js";
14
14
  export declare const TELEGRAM_API_BASE_URL: string;
15
+ export declare const TELEGRAM_SEND_TIMEOUT_MS: number;
15
16
  export declare const AUTONOMOUS_MODE: boolean;
16
17
  export declare const TEMPLATES_DIR: string;
17
18
  export declare const config: AppConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AASlC,eAAO,MAAM,qBAAqB,QAC+B,CAAC;AAGlE,eAAO,MAAM,eAAe,SAAyC,CAAC;AAiCtE,eAAO,MAAM,aAAa,QAAwB,CAAC;AAKnD,eAAO,MAAM,MAAM,EAAE,SAWpB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AASlC,eAAO,MAAM,qBAAqB,QAC+B,CAAC;AAWlE,eAAO,MAAM,wBAAwB,QAGzB,CAAC;AAGb,eAAO,MAAM,eAAe,SAAyC,CAAC;AAiCtE,eAAO,MAAM,aAAa,QAAwB,CAAC;AAKnD,eAAO,MAAM,MAAM,EAAE,SAWpB,CAAC"}
@@ -21,6 +21,18 @@ const { version: PKG_VERSION } = esmRequire("../../package.json");
21
21
  const TELEGRAM_TOKEN = process.env.TELEGRAM_TOKEN ?? "";
22
22
  const TELEGRAM_CHAT_ID = process.env.TELEGRAM_CHAT_ID ?? "";
23
23
  export const TELEGRAM_API_BASE_URL = process.env.TELEGRAM_API_BASE_URL ?? "https://api.telegram.org";
24
+ /**
25
+ * Total time budget (ms) bounding a Telegram *send* — the WHOLE retry sequence
26
+ * (all attempts plus their backoff), not each attempt. Defaults to 30s to match
27
+ * the TelegramClient class-method budget and to survive a scale-to-zero proxy
28
+ * cold-start (e.g. an Azure Container Apps gateway behind TELEGRAM_API_BASE_URL),
29
+ * which can take several seconds to warm up. Configurable via
30
+ * TELEGRAM_SEND_TIMEOUT_MS; invalid/non-positive values fall back to 30000.
31
+ */
32
+ const rawTelegramSendTimeoutMs = Number(process.env.TELEGRAM_SEND_TIMEOUT_MS ?? "");
33
+ export const TELEGRAM_SEND_TIMEOUT_MS = Number.isFinite(rawTelegramSendTimeoutMs) && rawTelegramSendTimeoutMs > 0
34
+ ? rawTelegramSendTimeoutMs
35
+ : 30_000;
24
36
  const OPENAI_API_KEY = process.env.OPENAI_API_KEY ?? "";
25
37
  const VOICE_ANALYSIS_URL = process.env.VOICE_ANALYSIS_URL ?? "";
26
38
  export const AUTONOMOUS_MODE = process.env.AUTONOMOUS_MODE === "true";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAElC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,oBAAoB,CAAwB,CAAC;AAEzF,+EAA+E;AAE/E,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;AACxD,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;AAC5D,MAAM,CAAC,MAAM,qBAAqB,GAChC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,0BAA0B,CAAC;AAClE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;AACxD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC;AAEtE,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;AACjF,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CACnC,GAAG,EACH,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CACnE,CAAC;AAEF,+EAA+E;AAE/E,IAAI,CAAC,cAAc,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzC,GAAG,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,CAAC,cAAc,EAAE,CAAC;IACpB,GAAG,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;AAC/E,CAAC;AACD,IAAI,kBAAkB,EAAE,CAAC;IACvB,GAAG,CAAC,IAAI,CAAC,sCAAsC,kBAAkB,EAAE,CAAC,CAAC;AACvE,CAAC;AACD,IAAI,qBAAqB,KAAK,0BAA0B,EAAE,CAAC;IACzD,GAAG,CAAC,IAAI,CAAC,4CAA4C,qBAAqB,EAAE,CAAC,CAAC;AAChF,CAAC;AACD,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,WAAW,CAAC;IAC7D,GAAG,CAAC,IAAI,CACN,sCAAsC,OAAO,CAAC,GAAG,CAAC,sBAAsB,YAAY,KAAK,GAAG,CAC7F,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnD,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAE9C,+EAA+E;AAE/E,MAAM,CAAC,MAAM,MAAM,GAAc;IAC/B,cAAc;IACd,gBAAgB;IAChB,qBAAqB;IACrB,cAAc;IACd,kBAAkB;IAClB,IAAI,oBAAoB;QACtB,OAAO,qBAAqB,EAAE,CAAC;IACjC,CAAC;IACD,oBAAoB;IACpB,WAAW;CACZ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,12 @@ export declare function setThreadConversationMode(threadId: number, mode: Conver
24
24
  /** Number of recent episodes injected into the bootstrap as "Recent Conversation". */
25
25
  export declare function getBootstrapMessageCount(): number;
26
26
  export declare function setBootstrapMessageCount(count: number): void;
27
+ /** Minimum cosine similarity a note must clear to enter Key Knowledge. */
28
+ export declare function getRelevanceAnchorThreshold(): number;
29
+ /** Upper bound on the number of Key Knowledge notes surfaced in the bootstrap. */
30
+ export declare function getKeyKnowledgeMax(): number;
31
+ /** How many recent conversation episodes form the relevance anchor. */
32
+ export declare function getRelevanceAnchorTailEpisodes(): number;
27
33
  export declare function getReplyMaxChars(): number;
28
34
  export declare function setReplyMaxChars(chars: number): void;
29
35
  export declare function getWaitTimeoutMinutes(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"misc-settings.d.ts","sourceRoot":"","sources":["../../src/config/misc-settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,eAAO,MAAM,WAAW,6CAA8C,CAAC;AACvE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAE3D;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CASnD;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAM3D;AAED,4CAA4C;AAC5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAItD;AAID,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnD,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAO5E;AAED,+CAA+C;AAC/C,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAMxF;AAOD,sFAAsF;AACtF,wBAAgB,wBAAwB,IAAI,MAAM,CAIjD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAM5D;AAYD,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMpD;AAQD,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAM3D;AAQD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAKD,yEAAyE;AACzE,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAY3E;AAED,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CAEzD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAInE;AAID,qFAAqF;AACrF,wBAAgB,oBAAoB,IAAI,OAAO,CAI9C;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAI3D;AAID;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAK5D"}
1
+ {"version":3,"file":"misc-settings.d.ts","sourceRoot":"","sources":["../../src/config/misc-settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,eAAO,MAAM,WAAW,6CAA8C,CAAC;AACvE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAE3D;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CASnD;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAM3D;AAED,4CAA4C;AAC5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAItD;AAID,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnD,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAO5E;AAED,+CAA+C;AAC/C,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAMxF;AAOD,sFAAsF;AACtF,wBAAgB,wBAAwB,IAAI,MAAM,CAIjD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAM5D;AAcD,0EAA0E;AAC1E,wBAAgB,2BAA2B,IAAI,MAAM,CAIpD;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED,uEAAuE;AACvE,wBAAgB,8BAA8B,IAAI,MAAM,CAIvD;AAYD,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMpD;AAQD,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAM3D;AAQD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAKD,yEAAyE;AACzE,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAY3E;AAED,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CAEzD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAInE;AAID,qFAAqF;AACrF,wBAAgB,oBAAoB,IAAI,OAAO,CAI9C;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAI3D;AAID;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAK5D"}
@@ -72,6 +72,37 @@ export function setBootstrapMessageCount(count) {
72
72
  s.bootstrapMessageCount = clamped;
73
73
  });
74
74
  }
75
+ // ─── Relevance-anchored Key Knowledge selection ─────────────────────────────
76
+ //
77
+ // The bootstrap "Key Knowledge" section is chosen by anchoring an embedding on
78
+ // the recent-conversation tail and keeping only notes clearing a cosine
79
+ // threshold ("maximally relevant or none"). These knobs tune that selection; a
80
+ // spike on a 1789-note thread put the sweet spot at ~0.40. All are read at
81
+ // bootstrap time so they stay live-tunable via settings.json.
82
+ const DEFAULT_RELEVANCE_ANCHOR_THRESHOLD = 0.4;
83
+ const DEFAULT_KEY_KNOWLEDGE_MAX = 25;
84
+ const DEFAULT_RELEVANCE_ANCHOR_TAIL_EPISODES = 30;
85
+ /** Minimum cosine similarity a note must clear to enter Key Knowledge. */
86
+ export function getRelevanceAnchorThreshold() {
87
+ const v = readSettings().relevanceAnchorThreshold;
88
+ if (typeof v === "number" && Number.isFinite(v) && v >= 0 && v <= 1)
89
+ return v;
90
+ return DEFAULT_RELEVANCE_ANCHOR_THRESHOLD;
91
+ }
92
+ /** Upper bound on the number of Key Knowledge notes surfaced in the bootstrap. */
93
+ export function getKeyKnowledgeMax() {
94
+ const v = readSettings().keyKnowledgeMax;
95
+ if (typeof v === "number" && Number.isFinite(v) && v >= 1)
96
+ return Math.round(v);
97
+ return DEFAULT_KEY_KNOWLEDGE_MAX;
98
+ }
99
+ /** How many recent conversation episodes form the relevance anchor. */
100
+ export function getRelevanceAnchorTailEpisodes() {
101
+ const v = readSettings().relevanceAnchorTailEpisodes;
102
+ if (typeof v === "number" && Number.isFinite(v) && v >= 1)
103
+ return Math.round(v);
104
+ return DEFAULT_RELEVANCE_ANCHOR_TAIL_EPISODES;
105
+ }
75
106
  // ─── Reply length limit ─────────────────────────────────────────────────────
76
107
  /**
77
108
  * Hard character ceiling for a single `report_progress` text bubble. Above this