@leanandmean/coding-agent 0.74.1-scramjet.72 → 0.74.1-scramjet.73

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.
@@ -22,7 +22,7 @@ Modifier combinations: `ctrl+shift+x`, `alt+ctrl+x`, `ctrl+shift+alt+x`, `ctrl+1
22
22
 
23
23
  ## Transcript browsing precedence
24
24
 
25
- Interactive mode's retained viewport owns mouse wheel/trackpad scrolling, the rightmost draggable scrollbar and ordinary drag selection. Right-click a nonempty selection or use `tui.input.copy` (Ctrl+C by default) to copy displayed text. Without a transcript selection, the same key keeps its focused-component/application behavior. Escape clears selection and returns to the live tail.
25
+ Interactive mode's retained viewport owns mouse wheel/trackpad scrolling, the rightmost draggable scrollbar and ordinary drag selection. Right-click a nonempty selection or use `tui.input.copy` (Ctrl+C by default) to copy displayed text. Without selection, right-click pastes local clipboard text into the eligible, visible focused editor without submitting; selectors, overlays and approval controls do not paste. iTerm2 requires explicitly configured `ReportRightClick=true` for both right-click actions; this affects other mouse-reporting applications, and Scramjet does not change it automatically. Command+V remains terminal-native text paste at the editor caret without submission; it is not the `app.clipboard.pasteImage` action. Command+C and terminal Copy menus remain terminal-owned and cannot copy Scramjet’s application selection. Configuration and proof limits are described in [terminal setup](terminal-setup.md#transcript-browsing-and-copying). Without an application selection, Ctrl+C retains its normal editor/exit behavior (or the configured key's focused-component/application behavior). Escape clears selection and returns to the live tail.
26
26
 
27
27
  While detached from the tail with the editor owning input, the viewport consumes this fixed set before editor bindings; focused selectors retain their own navigation and cancellation bindings:
28
28
 
@@ -14,7 +14,11 @@ The leading dock gap shows `Session: N lines below · Ctrl+End: latest` when ren
14
14
 
15
15
  Double-click to select a word or triple-click to select one displayed line, not adjacent wrapped lines. Clicks must land on the same cell within 500 ms of the preceding press; whitespace and punctuation select their own contiguous runs. Select longer ranges by ordinary dragging, including across a screen edge. After starting a drag, keep the left button held and use the wheel to extend the transcript selection, either with a stationary pointer or while adjusting its horizontal and vertical position; reversing the wheel adjusts the endpoint. Release before browsing if you want to keep the selection unchanged. A press without an initial drag does not start wheel selection. Drags cross between transcript and dock in either direction: a transcript-origin downward drag autoscrolls to the bottom before entering the dock; a dock-origin upward drag selects the displayed transcript portion without including the hidden gap below it. Wheel scrolling does not extend a selection confined to the dock. Right-click a nonempty selection or use `tui.input.copy` (Ctrl+C by default) to copy displayed text without ANSI controls or scrollbar cells. Built-in text, Markdown and editor copying omit known component padding and rejoin soft wraps, retaining genuine indentation, hard line breaks and structural boundaries. Tables, repeated quote prefixes and unannotated custom renderers retain their physical layout rather than guessing at their source. Output and waiting controls continue updating while selected. Copy snapshots the last painted selection immediately, before clipboard delivery; unpainted pointer changes cannot change that copy. A new selection must have painted before it can be copied. Resizing ends an active drag and remaps its selection; successful copy or Escape clears selection. Copy failures retain the selection and temporarily display a diagnostic on the last screen row without changing geometry; clicking that diagnostic dismisses it without selecting the covered text. Without selection, Ctrl+C retains its normal application behavior. Right-clicking any content area—including transcript, blank space, widgets, footer or editor—reads local clipboard text into the visible, focused editor at its caret without submitting. The scrollbar, overlays, selectors and approval controls do not paste. A pending repaint is flushed before reading; changing the input owner while waiting cancels the request. Repeated eligible right-clicks during one clipboard read share that read; only the latest still-current request inserts text. Other intervening input, focus loss, editing or session changes cancel a pending paste; focus-in, terminal cell-size notifications and unmodified right-button motion do not count as editing input. WSL prewarms one PowerShell process while the retained TUI runs and uses direct Windows Unicode clipboard access on explicit paste requests. It does not poll or cache clipboard contents. Startup and each read have five-second timeouts and text is limited to 10 MiB of UTF-8; brief clipboard-lock contention has a bounded acquisition retry, but failed reads are not automatically repeated. The reader closes on exit, suspension or external-editor handoff and prewarms again on resume. This avoids per-click process startup; clipboard contention and initial startup can still add latency. macOS, Wayland/X11 and Termux use their local backends. Unsupported or remote clipboard reads show an actionable error; use your terminal's Paste command instead.
16
16
 
17
- Terminal-owned Copy/context menus cannot see application selection. A terminal or multiplexer that intercepts pointer input must be configured to forward it. In tmux, enable `set -g mouse on` for the application's wheel/drag path; tmux's own copy mode is a separate interaction. See [tmux.md](tmux.md) for modified-key setup.
17
+ Command+V remains ordinary terminal paste into the focused editor without submission. Command+C and terminal-owned Copy/context menus operate on terminal-native selection, not Scramjet’s application selection. Use right-click or Ctrl+C for application-selection Copy; selecting text or receiving live output does not itself copy. Clipboard failures leave ordinary keyboard input and terminal paste independent of clipboard delivery.
18
+
19
+ **iTerm2 requires explicitly configured `ReportRightClick=true` for both right-click Copy and no-selection Paste.** Scramjet never changes this preference; enabling it affects other mouse-reporting applications too. See [iTerm2 setup](#iterm2). Apple Terminal must be verified through its own right-click journey, not inferred from iTerm2. The earlier Command+C runs certify only the superseded implementation. See [replacement acceptance requirements, revision-specific results and historical evidence](terminal-verification.md#replacement-right-click-acceptance).
20
+
21
+ A terminal or multiplexer that intercepts pointer input must be configured to forward it. In tmux, enable `set -g mouse on` for the application's wheel/drag path; tmux's own copy mode is a separate interaction. See [tmux.md](tmux.md) for modified-key setup.
18
22
 
19
23
  Home/End retain editor line-start/end behavior at every scroll position. Ctrl+Home navigates to the transcript beginning; Ctrl+End navigates to the bottom and resumes following. Submitting nonempty editor input with Enter or Alt+Enter resumes following immediately, before routing bash/slash commands or queueing messages. New user-message delivery also resumes following, while passive output preserves browsing. Alt+PageUp/Alt+PageDown provide keyboard-only entry into transcript browsing; when detached, PageUp/PageDown browse and Escape returns to the tail. Docked editing and presentation toggles keep the reading anchor, while ordinary undocked editing reveals its cursor. At the tail, normal editor/list bindings apply, and focused overlays retain keyboard precedence. See [keybindings.md](keybindings.md#transcript-browsing-precedence).
20
24
 
@@ -48,7 +52,7 @@ These checks do not establish every emulator/profile, physical trackpad's gestur
48
52
 
49
53
  ### Native selection differences — deferred
50
54
 
51
- Terminal-owned selection is separate from Scramjet selection. Windows Terminal reserves Shift-mouse for its own screen-cell selection; [iTerm2 uses Option to bypass mouse reporting](https://iterm2.com/faq.html). These modifiers are terminal/profile-specific, not a universal Scramjet shortcut. They do not expose unpainted retained history or extend an application selection, and native copying can include visible padding or scrollbar cells. Scramjet's copy cleanup applies only to its ordinary drag/Ctrl+C/right-click path.
55
+ Terminal-owned selection is separate from Scramjet selection. Windows Terminal reserves Shift-mouse for its own screen-cell selection; [iTerm2 uses Option to bypass mouse reporting](https://iterm2.com/faq.html). These modifiers are terminal/profile-specific, not a universal Scramjet shortcut. They do not expose unpainted retained history or extend an application selection, and native copying can include visible padding or scrollbar cells. Scramjet's copy cleanup applies to its application selection, through Ctrl+C and right-click—not terminal-owned selection.
52
56
 
53
57
  Native-selection parity remains deferred. Retained edge scrolling uses a fixed speed, not the native distance-dependent acceleration demonstrated on Windows Terminal. Changing modifiers during an active edge drag can withhold its release from the application; clear the application selection to stop a stranded gesture. See the [historical comparison](terminal-verification.md#historical-windows-selection-comparison) for the observations and their limits.
54
58
 
@@ -71,7 +75,7 @@ Keyboard reporting works out of the box.
71
75
 
72
76
  ## iTerm2
73
77
 
74
- Keyboard reporting works out of the box. **Right-click copying requires iTerm2's `ReportRightClick` preference** so mouse-reporting applications receive right-clicks instead of iTerm2's native context menu. The default-off profile was tested and does not support Scramjet's right-click-copy path. This is an explicit setup requirement, not a runtime allowlist or automatic fallback.
78
+ Keyboard reporting works out of the box. **Right-click Copy and no-selection Paste require iTerm2's `ReportRightClick=true` preference** so mouse-reporting applications receive right-clicks instead of iTerm2's native context menu. With the preference off, iTerm2 retains the right-click instead of delivering Scramjet's Copy/Paste gesture; historical default-off checks are not replacement-candidate acceptance. This is an explicit setup requirement, not a runtime allowlist or automatic fallback.
75
79
 
76
80
  Enable the right-click-reporting option in iTerm2's Pointer settings, or quit iTerm2 and set its existing preference from another terminal:
77
81
 
@@ -79,7 +83,7 @@ Enable the right-click-reporting option in iTerm2's Pointer settings, or quit iT
79
83
  defaults write com.googlecode.iterm2 ReportRightClick -bool true
80
84
  ```
81
85
 
82
- Restart iTerm2 afterward. This changes right-click behavior for mouse-reporting applications, not just Scramjet; Scramjet never changes the preference for you. Ctrl+C remains the application-selection copy alternative. Native iTerm2 menus still cannot access application-owned selection.
86
+ Restart iTerm2 afterward. This changes right-click behavior for mouse-reporting applications, not just Scramjet; Scramjet never changes the preference for you. With reporting disabled, use Ctrl+C for application-selection Copy and Command+V for ordinary terminal Paste. Command+C and native iTerm2 menus remain terminal-owned and cannot access application-owned selection.
83
87
 
84
88
  ## Ghostty
85
89
 
@@ -16,6 +16,46 @@ The shared headless terminal feeds actual TUI writes into `@xterm/headless`; its
16
16
 
17
17
  The native journey fixture is `packages/scramjet/tests/fixtures/interactive-viewport.mjs`. Hosted interaction and graphics drivers live in `.github/scripts/terminal-probe.py` and `.github/scripts/terminal-safety.py`; `.github/scripts/test-terminal-fixtures.py` exercises their evidence predicates. `.github/workflows/terminal-feasibility.yml` owns the hosted matrix. Build the runtime before running fixtures, because they load compiled packages. Windows desktop/clipboard execution through `.github/scripts/windows-terminal-probe.sh` requires separate explicit permission.
18
18
 
19
+ ## Replacement right-click acceptance
20
+
21
+ The approved #608 / PR #610 scope replaces native Command+C interception with the existing application right-click interactions and removes the macOS shortcut/input Worker and its public capability. This intentionally supersedes the original native Command+C objective and acceptance criterion; it does not claim that objective was met by right-click. Right-click copies the last displayed application selection, or pastes into the eligible focused editor without submitting when there is no selection. Ctrl+C retains selected Copy versus ordinary editor/exit handling, and Command+V remains terminal paste. Command+C and terminal Copy menus remain terminal-owned, not application-selection Copy.
22
+
23
+ **Replacement evidence is revision-specific.** [PR #610](https://github.com/LeanAndMean/scramjet/pull/610) records candidate revisions, native results and their qualifications under the amended issue scope. Match the tested revision before relying on any result. The historical runs below certify only their original revisions and configurations. Apple Terminal support must be established by its own replacement journey, not inferred from iTerm2 or headless checks.
24
+
25
+ The required replacement matrix is Apple Terminal and iTerm2 on each of ARM64 and x64. Every combination must exercise rebuilt checkout packages, an isolated installed five-package candidate, all three installed-candidate negative controls, both external-editor paths with real inherited stdin, Ctrl+Z/resume, subsequent typing and paste, orderly exit and restoration. Record exact revision, architecture, terminal/macOS versions and effective profile. iTerm2 must explicitly verify `ReportRightClick=true`; Scramjet must not change it automatically, and the setting affects other mouse-reporting applications. A separate, small default-off iTerm2 check must verify that right-click is not delivered, alternatives still work, native menus are dismissed and cleanup succeeds; it is not supported right-click acceptance. Apple's F8/F9 browsing profile remains a separate keyboard qualification.
26
+
27
+ Required clipboard outcomes:
28
+
29
+ - Independently seed and verify a fresh sentinel, select known Unicode text with desktop events, and verify that selection and live output do not change the clipboard. Right-click must produce exact clipboard equality and clear selection without changing editor contents or submission count. Preserve wrapped, scrolled and transcript/editor-seam cases.
30
+ - No-selection right-click over both transcript and editor must insert exact multiline/Unicode text once at an interior caret, leave the correct caret and never submit. Selectors, overlays and approval controls remain excluded.
31
+ - Actual Command+V must insert the armed synthetic payload between `PREFIX` and `SUFFIX` in the real editor with the correct caret and no submission; a receipt counter is insufficient. Unexpected paste must remain consumed and absent from diagnostics.
32
+ - Deliberate no-op Copy, copy-on-selection and consumed-paste controls must fail the exact clipboard, sentinel-preservation and editor/caret predicates respectively. A broken report stays `passed: false`; only the expected failed predicate with complete startup, provenance and cleanup evidence establishes a rejected negative control.
33
+
34
+ Keep Linux, tmux and graphics/safety coverage and exact restoration checks, including Darwin's narrowly qualified transient `PENDIN` handling and exact post-read termios equality. Native publication gating remains caller-SHA-bound and read-only, rejecting failed, cancelled, skipped, incomplete or malformed required results; no prior green run substitutes. Installed acceptance archives do not prove byte equality with independently rebuilt publication archives. A clean/disposable build must exclude stale compiled native-input artifacts after source removal. See [release policy](../../../.github/RELEASING.md).
35
+
36
+ ## macOS native Copy and Paste — 2026-10-08
37
+
38
+ **Superseded historical evidence of the abandoned native Command+C implementation.** The following results, native registration/permission challenges and stock-profile qualifications do not certify the right-click replacement or its required matrix.
39
+
40
+ [Issue #608](https://github.com/LeanAndMean/scramjet/issues/608#issuecomment-6050418989) preserves acceptance of clean commit `3810822bedce066d1c9acfcadc6d02f0c8112412` in [run 37712738710](https://github.com/LeanAndMean/scramjet/actions/runs/37712738710): all 13 jobs passed, with 16 positive reports / 960 required checks and 12 correctly rejected native controls. Apple Terminal 2.14 and iTerm2 3.6.11 ran on macOS 15.7.9 / 24G830, Node 22.23.2, on both ARM64 and x64 without tmux. Each stock terminal/architecture exercised both rebuilt checkout and isolated five-package installations. Stock Copy/Paste shortcuts were unchanged and no `ReportRightClick` override was applied. Apple's existing F8/F9 application-browsing fixture profile did not supply Copy, Paste or wheel gestures. Separately configured right-click journeys remain qualified by their settings.
41
+
42
+ Actual Command+C had to replace a fresh clipboard sentinel with exact selected Unicode text; selection and live output alone had to leave the sentinel untouched. Actual Command+V had to insert allowlisted multiline/Unicode text between `PREFIX` and `SUFFIX` at an interior caret, with the correct final caret and no submission. Unexpected paste remains consumed and absent from evidence. No-op Copy, copying on selection and consumed-paste controls intentionally produce `passed: false`; only the expected failed outcome plus startup, provenance and successful cleanup establishes `negativeControlRejected: true`.
43
+
44
+ Those native challenges covered unfinished browsing, Copy in another tab during a blocked UI loop, no delayed stale write after recovery, application focus loss, two instances with distinct selections and immediate return-Copy, real registration conflicts and reselection, both external-editor paths with genuine stdin, Ctrl+Z/fg, orderly exit and restoration. Darwin restoration permits only the SDK-identified transient `PENDIN` state bit before a read, then requires exact post-read equality. No configuration flag is ignored or rewritten. Earlier failed attempts, including conflict/focus-transfer defects and a VTE shell-startup oracle failure, remain preserved on the issue; later success does not relabel them.
45
+
46
+ Desktop automation is privileged, and terminal-child processes inherit hosted-terminal grants. Independently launched receivers used the **installed production native adapter** with Accessibility, input-listening, event-posting and screen-capture preflights all false, made no permission requests, and delivered actual Command+C with successful cleanup. That separate evidence establishes the permission boundary of the abandoned native adapter, not a requirement or proof for the replacement. Stale-ID and failed-release challenges used real Carbon resources with explicitly injected identity/unregister failure; they do not claim a spontaneous OS cleanup failure. This record is not acceptance of every later revision, profile, physical trackpad, remote path or arbitrary extension, nor reproduction of the reporters' installations.
47
+
48
+ ### How the earlier validation allowed the escape
49
+
50
+ - **Requirement mismatch:** the [#551 plan](https://github.com/LeanAndMean/scramjet/issues/551#issuecomment-5732527548) explicitly accepted Ctrl+C. The native driver tested Ctrl+C, not the macOS user's expected Command+C. The superseded native action addressed that previously accepted behavior gap; it was not evidence of a regression from an earlier Command+C implementation. The approved replacement now deliberately leaves Command+C terminal-owned.
51
+ - **Paste oracle stopped too early:** the old fixture consumed matching bracketed paste before editor delivery; `desktopPasteRoundTrip` accepted a receipt counter. The [2026-10-06 run](https://github.com/LeanAndMean/scramjet/actions/runs/37527119543) at `0ac415e71f670e90136d6c760c96ccc9b5e053f1` passed while both macOS editor snapshots stayed `Synthetic editorRIGHT-PASTE` and `pasteMatches` changed from 0 to 1. That proves a false-positive acceptance boundary, **not production Command+V failure**.
52
+ - **Review boundary:** [PR #560's F9 assessment](https://github.com/LeanAndMean/scramjet/pull/560#issuecomment-5765359890) and [repair](https://github.com/LeanAndMean/scramjet/pull/560#issuecomment-5765969234) removed pasted payloads from diagnostics by preserving interception. That privacy safeguard was meaningful, but it did not establish editor insertion. The current explicitly armed synthetic payload forwards original bytes to the real editor without exposing unexpected paste.
53
+ - **Change/release boundary:** PR #560 merged on 2026-09-28 as `ff3a116cbfe12cc2b8d157824d4628d4ac265dfe`, tagged `v0.103.0`. Its checked-in release workflow, and the pre-#608 workflow, allowed tag publication without a native dependency. Historical native success and an observable aggregate were not enforced tag-publication prerequisites. These repository facts do not identify either reporter's installed version or prove which release caused their symptoms.
54
+
55
+ The reusable native workflow now gates `release.yml` publication at the caller's exact `GITHUB_SHA`, with read-only native permissions, pinned action commits, clean checkout/fixture provenance, installed-candidate records, all required matrix results and native negative controls. Failed, cancelled, skipped, incomplete or malformed required results block publication; no latest-main or ancestor result is consulted. PR checks use their event merge SHA, while a tag reruns acceptance at its own SHA. Package integrity records describe the native acceptance installation, not equality to independently rebuilt publication tarballs. See [release policy](../../../.github/RELEASING.md) for immutable recovery and non-publishing verification boundaries.
56
+
57
+ The original reporter clarified that Command+V **works**. A separate reported Command+V failure and the unreconfirmed right-click complaint remain unresolved; passing these journeys does not disprove either. Reproduction still needs installed Scramjet version, terminal/macOS version, selection method, profile, SSH/tmux status, custom keybindings/extensions and exact expected/observed behavior. An old process surviving an update is not an established cause.
58
+
19
59
  ## Exit retention and right-click latency — 2026-09-28
20
60
 
21
61
  A user-authorized targeted Windows Terminal 1.24.11911.0 / Windows build 22631 / WSL Ubuntu journey exercised rebuilt packages on the dirty working tree based on `6c06a61812dcc9fc324b570eef35d6bbbd487a43`. An isolated production InteractiveMode used a nonempty model scope, 180 numbered styled history rows, above/below widgets, an editor draft and an underlined footer. It loaded no personal extensions and made no model calls. This was a targeted check, not full-matrix acceptance.
package/docs/tui.md CHANGED
@@ -50,6 +50,14 @@ In retained mode, tool-attached context uses `renderNow({ requireFlush: true })`
50
50
 
51
51
  Built-in Kitty/iTerm2 placements are re-anchored to absolute rows only when their full extent fits; clipped spans show a placeholder and remain reachable by scrolling. Repeated reports of unchanged cell dimensions are consumed without invalidating components or disturbing image reading anchors; genuine dimension changes still invalidate and re-render images. `Component.setViewportHeight?(height)` is an optional image-sizing bound, propagated by standard Container/Box rendering, including newly added children. Custom wrappers must forward it to nested images. It must not truncate ordinary text or bound the total stacked document. Built-in Image fits using existing aspect-preserving sizing without changing source data; finalized viewport caches refresh on height changes. iTerm2 placements specify both cell dimensions to avoid rounded width exceeding reserved height. Transcript images are withheld with visible placeholders during overlays and selection; clearing either restores eligible placements. Bounded overlays forward their resolved image-height limit before rendering and use the same atomic geometry validation before clipping, including nested/padded images. A higher overlapping overlay suppresses the entire lower image placement; clearing it restores eligible placements. Custom graphics envelopes without recognizable placement geometry cannot be safely clipped and receive a placeholder. Built-in graphics checks do not establish arbitrary custom-envelope compatibility. See [terminal-setup.md](terminal-setup.md#native-compatibility-evidence) for the bounded native evidence.
52
52
 
53
+ ### Terminal input and clipboard boundaries
54
+
55
+ `ProcessTerminal` uses the ordinary direct stdin reader and `StdinBuffer` on macOS as on the other ordinary terminal paths. The parser and listener are installed before stdin resumes. Terminal input owns framing, protocol negotiation, bounded draining and mode restoration; clipboard backends do not acquire, revoke or fault keyboard-input ownership. The abandoned native shortcut/input subsystem and its public capability are removed: `Terminal.configureNativeCopy`, native Copy control/notice types and `onNativeCopyAvailability` are not supported APIs. There is no replacement helper, global shortcut registration, clipboard polling or copy-on-selection behavior.
56
+
57
+ `RetainedViewport` owns selection, painted-text capture and single-flight Copy settlement through `copy`; InteractiveMode owns clipboard callbacks and paste eligibility through `requestPaste`. Right-click with selection copies the last displayed highlight; without selection it requests Paste into the eligible focused editor without submitting. Ctrl+C preserves selection Copy versus ordinary no-selection editor/exit handling. Command+V remains terminal paste; Command+C and terminal Copy menus cannot access application selection. iTerm2 must explicitly enable `ReportRightClick=true`, affecting other mouse-reporting applications too; the application must not configure it. See [terminal setup](terminal-setup.md#iterm2) and [replacement acceptance](terminal-verification.md#replacement-right-click-acceptance).
58
+
59
+ Both external-editor paths restart only after successful drain and stop; failed suspension removes its pending resume handler without sending SIGTSTP. Orderly shutdown retains emergency handlers through terminal flushing and runtime disposal. Failed exit snapshots still restore and flush terminal modes. These are ordinary terminal safeguards, not clipboard-dependent input ownership. Existing Windows terminal initialization through Koffi, platform clipboard backends and the separate WSL clipboard reader remain independent of the removed macOS input subsystem.
60
+
53
61
  ### Minimum usable geometry
54
62
 
55
63
  InteractiveMode opts into `minimumSize: { columns: 12, rows: 3 }`, measured in physical terminal cells. Below that threshold the retained renderer shows a bounded resize notice, suppresses overlays/images/cursors and ordinary input, and does not render components into a destructive temporary budget. Draft and autocomplete state survive recovery. Live dimensions guard shrink-before-paint; a painted resize notice keeps input blocked until a usable replacement paint has flushed. This opt-in protection requires terminal flushing; standalone callers without `minimumSize` retain their existing small-screen behavior.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leanandmean/coding-agent",
3
- "version": "0.74.1-scramjet.72",
3
+ "version": "0.74.1-scramjet.73",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -37,9 +37,9 @@
37
37
  "test": "vitest --run --passWithNoTests"
38
38
  },
39
39
  "dependencies": {
40
- "@leanandmean/agent": "0.74.1-scramjet.51",
41
- "@leanandmean/ai": "0.74.1-scramjet.47",
42
- "@leanandmean/tui": "0.74.1-scramjet.44",
40
+ "@leanandmean/agent": "0.74.1-scramjet.52",
41
+ "@leanandmean/ai": "0.74.1-scramjet.48",
42
+ "@leanandmean/tui": "0.74.1-scramjet.45",
43
43
  "@silvia-odwyer/photon-node": "^0.3.4",
44
44
  "chalk": "^5.5.0",
45
45
  "dictionary-en": "^4.0.0",