Compare commits

..

1524 Commits

Author SHA1 Message Date
sawka 9c32f690c6 sync shell state when you switch to a new tab 2024-03-13 11:57:49 -07:00
sawka 4b5eccab7c fix ephemeral setting 2024-03-13 11:50:06 -07:00
sawka a69ac24659 lots of changes related to ephemeral commands (for sync), checkpoint 2024-03-12 16:36:10 -07:00
sawka fde141fce3 update for runningcmdtype to be a pointer in the map (for updates) 2024-03-12 15:43:08 -07:00
sawka 42656ecd71 deal with rct (running command), update handler funcs accordingly 2024-03-12 15:29:35 -07:00
sawka 291f7f61ed pass rct through to 'handle' funcs 2024-03-12 15:20:38 -07:00
sawka da76719800 slight refactor, remove closure funcs 2024-03-12 15:15:29 -07:00
sawka 0d8b163b63 CmdStart is invalid in this command loop 2024-03-12 15:08:03 -07:00
sawka 8656387329 remove two unused packet types, remove unused detatched command code 2024-03-12 15:01:07 -07:00
Mike Sawka d1baf504ba quick fixes -- terminal selection color and connection modal terminal styles (#440)
* fix lightmode selction color

* fix styles on remote conn view
2024-03-12 14:41:47 -07:00
Cole Lashley 36de526e8e App keybindings (#432)
* added app keybindings

* removed emain cmd-p

* removed boilerplate for emain commands
2024-03-12 12:36:52 -07:00
Knox Lively 2acb551f4b removed unecessary electron-rebuild steps (#439) 2024-03-12 13:12:40 -06:00
Knox Lively f87c7a28a6 adding new screenshot to readme (#437) 2024-03-12 11:56:47 -06:00
Evan Simkowitz fecdc5abdc Fix another acknowledgements readme typo (#431) 2024-03-11 17:46:43 -07:00
Evan Simkowitz 769f3fc43c Fix acknowledgements readme typo (#430) 2024-03-11 17:45:43 -07:00
Evan Simkowitz c73ac66ed7 Fix broken license disclaimers (#429) 2024-03-11 17:43:45 -07:00
Cole Lashley 5258a67a78 Expose config path to frontend (#404)
* added config api path

* addressed feedback

* initial change for http file server

* removed old handle config func

* added user keybind config path

* fixed logs
2024-03-11 15:07:29 -07:00
Mike Sawka 77ea45392a quick v0.7.0 fixes (#428)
* update mask color for tabswitcher to work on lightmode

* fix background color on code blocks in markdown in light mode

* update wording on disconnected modal (restart wave backend instead of restart server)

* fix tooltip (should be Ctrl-Space)

* cleanup line-height/padding for code blocks
2024-03-11 12:03:30 -07:00
Evan Simkowitz eab2cb616d output dl links (#414) 2024-03-08 15:16:55 -08:00
Evan Simkowitz a6f2e0b26e Fix buildres script auth (#413) 2024-03-08 14:52:46 -08:00
Evan Simkowitz 358ffb6d50 Add pacman artifact and update product tagline (#412)
This adds support for Arch Linux via pacman. It also updates the product tagline in package.json and the "About" modal. It also removes the unused "Help" menu and updates the copyright year in About and fixes the window icon display on Linux.
2024-03-08 14:05:21 -08:00
Mike Sawka a2795fb74d indicator fixup (mismatch of increments/decrements) (#411)
* addLineForCmd should only increment for running commands.  also openai lines should increment

* small fix for openai chat styles
2024-03-08 10:33:10 -08:00
Red J Adaya c5d4a0e1f3 Convert history table to use div (#407)
* convert table to div

* remove comment

* more history UI updates.  copy/use controls, change font, fix scroll area

* use css variables

* fix textfield placeholder color

* put back input styles

* change overflow-x to auto
2024-03-07 22:48:52 -08:00
Sylvie Crowe 2a5857bc3d SSH UI Quick Fixes (#408)
* fix: set golbal ssh config to correct path

This adds the missing "etc" directory to the path for the global config
file.

* chore: update auth mode tooltip

This just changes the text to be slightly more accurate to the current
behavior.

* feat: add box to disable waveshell install modal

This hooks in to the existing don't show this again code that pops up
when creating a modal.

* refactor: remove install modal in remote creation

There used to be a modal that popped up while installing a remote that
informed the user that waveshell gets installed on their remote. Since
we have a new modal that pops up at the time of install, the older modal
can be removed.

* fix: allow user to cancel ssh dial

The new ssh code broke dial for invalid urls since the context did not
cancel the dial or any associated user input. This change reconnects
the context along with the context for installing waveshell.

* style: widen the rconndetail modal

The rconndetail modal is currently narrower than the xtermjs element
which results in awkward scrolling if a line is long. This change makes
the width auto so it can size itself as needed.

* add a max-width for safety
2024-03-07 22:37:00 -08:00
Mike Sawka 0b9834171d poll for clientdata every 200ms (instead of every second) to improve startup speed. also only show window after ready-to-show. (#410) 2024-03-07 22:08:08 -08:00
sawka c9b2c4b24c poll for clientdata every 200ms (instead of every second) to improve startup speed. also only show window after ready-to-show. 2024-03-07 22:05:19 -08:00
Evan Simkowitz d6124c27b6 Unify color definitions and clean up light mode (#405)
* Unify color definitions and clean up light mode

* consolidate form colors

* increase border thickness on dropdown and text

* remove dev conditional for theme

* fix secondary form element color

* increase dropdown border thickness

* fix history textinput

* make warning a bit darker

* attempt to fix rotate icons

* fix line actions bg

* fix terminal colors

* fix broken history colors

* fix textinput label padding

* fix bottom negative margin

* updates for prompt colors.  darken magenta, grey out the whites slightly, and sneak in a change for git co.

* clean up prompt.tsx

* fixing wobbly icons

* center svg icon, simplify meta-line1
2024-03-07 21:32:48 -08:00
Evan Simkowitz 662172db31 Bump version to 0.7.0 (#406) 2024-03-07 14:54:03 -08:00
Mike Sawka 8b540cd989 bump waveshell to v0.5.0 (#403) 2024-03-07 13:06:34 -08:00
Mike Sawka 45a3f7e721 add minimap linestate for codeedit to disable minimap (#402) 2024-03-07 12:04:17 -08:00
Mike Sawka a3d2b1a54c small lightmode fixups (#400) 2024-03-07 11:33:41 -08:00
Mike Sawka d77dd5f507 updates for codeedit light mode (#399) 2024-03-07 11:24:54 -08:00
Mike Sawka 237a1088b0 fix mainview border/padding (#398) 2024-03-07 11:08:02 -08:00
Cole Lashley 036b0ff989 Keybindings second wave - System Keybindings (#386)
* added system level keybindings

* added process key event

* added fix for code check

* add event.returnValue, remove console.logs, change sendSync to send
2024-03-06 21:31:03 -08:00
Mike Sawka 29acdc6eff cmdinput actions (filter, ai, and history) (#395)
* clientsettings fixups -- border top, padding, and remove theme dropdown for prod

* new cmdinput actions, get the filter commands showing, titlebars for info history and info aichat, toggles for history
2024-03-06 19:15:51 -08:00
Evan Simkowitz 3a119ae575 Update go version in build helper (#394) 2024-03-06 17:41:01 -08:00
Evan Simkowitz 72a5d18d0d remove upload step (#393) 2024-03-06 17:22:43 -08:00
Mike Sawka 4357bcf1c8 implement /reset:cwd (fix for #278) and more (#392)
* checkpoint some ideas on a new branch

* checkpoint on new errors / errorcode passing

* get CodedError piped all the way through to infomsg

* implement a /reset:cwd command to deal with cases when the cwd is invalid.  other assorted debugging, utility, and fixups

* on invalid cwd, show message to run /reset:cwd
2024-03-06 16:37:54 -08:00
Evan Simkowitz 33fc3518c0 Sign and notarize directly in build-helper (#389)
* Sign and notarize in CI

* add dmg

* remove flag

* fix env var

* add team id

* conditionally set apple specific env vars

* publish to a staging location

* upload unzipped

* add script to publish to staging, update publish url

* turn off autodiscovery again

* update scripts

* deprecate old method

* move stuff

* remove autodiscovery
2024-03-06 16:07:48 -08:00
Mike Sawka 2735b03cb8 update go.sum files (#391) 2024-03-06 14:47:41 -08:00
Sylvie Crowe 6091305bb3 SSH Quick Fixes (#385)
* fix: allow ssh user to use numbers/capital letters

Prior to this change, usernames could not start with numbers and could
not contain capital letters at all. Note that the username can also
start with capital letters.

* fix: update ssh_config with IdentityFiles fix

This adds the update that provides the ssh2 defaults for IdentityFiles.
This will allow the usual defaults to be searched when none are
explicitly provided.

* fix: overwrite identity files instead of appending

This change makes it so a waveterm configured identity file will
overwrite the one in the config instead of attempting to append it. This
matches the behavior of openssh.

* style: use regular font for markdown user input

This makes the Markdown User Input indistinct from user input without
markdown. It changes the font and makes a couple small adjustments to
the font size and line height.

* fix: use font property instead of font-family

The markdown css for User Input can be simplified with the font being
set by the "font" property rather than the "font-family" property.
2024-03-06 12:33:01 -08:00
Mike Sawka 55a5b8615b nerf markdown header font sizes -- match github (#388) 2024-03-06 11:52:26 -08:00
Mike Sawka a1ab25936e zsh fixes (fix for #368), clean up zsh option handling, more debugging code (#387)
* logging and add a flag to debug returnstate file

* fix for issue #368.  clean up more zsh options.  force global_rcs to be off.
2024-03-06 11:38:27 -08:00
Cole Lashley 7bf1a259a2 Keybindings PR first section - Updating keyutil (#384)
* updated keyutil

* added keybindings file

* export checkKeyPressed
2024-03-05 18:19:47 -08:00
Evan Simkowitz bde2a9ccfe Update dependencies (#383)
* Bump go-github and update license disclaimers

* update go version

* upgrade electron-builder
2024-03-05 16:12:52 -08:00
Mike Sawka c078f017ed align line-actions, scale with terminal font size (#382) 2024-03-05 14:36:39 -08:00
Evan Simkowitz 01dc6144ac Replace the cloud tab icon with the non-sharp version (#381) 2024-03-05 13:19:33 -08:00
Evan Simkowitz b54cad6304 Fix vertical scroll bar in tab bar (#380) 2024-03-05 13:08:18 -08:00
Mike Sawka e30748109c Minor Fixes (border, history line background), Toggle DevUI (#379)
* restore sidebar right border, fix line-container background color for history

* add a dev-only 'Toggle Dev UI' switch in the View Menu (for testing UI and screenshots, etc.)
2024-03-05 12:52:37 -08:00
Red J Adaya 70db1e1b48 History view theme fixes (#377)
* use Dropdown element in history view

* use elements for filters

* fix for selected and hovered color
2024-03-04 23:34:35 -08:00
Mike Sawka 93d46cca80 app border fixup (no transparency), terminal background image POC (#378)
* use native border (remove transparency from app window), remove css borders, remove default --term variables, force setClientData to set --term font variables on first set.

* terminal background images
2024-03-04 23:33:54 -08:00
Evan Simkowitz 4ef921bdd1 Support Linux packaging via electron-builder (#371)
* Add linux makers

* missed some

* remove eu-strip

* blah

* add description

* remove v from version

* add exec name

* use bin

* add bin to both

* test flatpak

* test adding dev dependencies

* remove flatpak for now

* add command to flatten directory structure

* update package info

* save rpm info

* save work

* add bin to packagerConfig

* save work

* okay let's see what happens

* iterate array

* test more

* remove large

* test

* test

* remove linux arm

* test addl targets

* add quiet to zip

* revert dir flatten

* remove pacman

* add s3 bucket to electron-builder config

* make dir

* only copy artifacts

* don't merge

* zip recurse

* blah

* replace with electronupdater

* make generic

* fix

* fix stuff

* Update build-helper.yml

* test fix

* fix path

* remove tree

* messed up comment

* remove touch

* add platform name to artifact

* remove license

* remove forge

* cleanup builder config

* switch artifact name order

* Remove darwin restriction on autoupdate

* try adding back pacman

* fix license

* remove pacman again

* rewrite scripts

* add binary paths to builder

* clean up

* Update scripts

* update interval and readme

* remove flatpak and snap dependencies for now

* upload with a wildcard

* fix paths for addl binaries

* add back blockmap

* update release path

* add newline

* remove forge config

* 2 small fixes - remove double cd for waveshell building, and remove GOARCH for wavesrv binary in dev mode
2024-03-04 22:03:53 -08:00
Ian Jennings 1979e401d4 test pr branch (#376) 2024-03-04 21:06:10 -08:00
Red J Adaya baf00ac514 Light theme (#365)
* light theme for button element

* light them for connections view

* remove box-shadows

* light theme for textfield

* unify form elements colors

* light theme for modals

* remove inset from modal box-shadow

* light theme for tooltip

* remove empty fies. theme new tab setting spacer

* light theme for cmdinput

* light theme for scroll

* minor global color change

* connections and history view light theme improvements

* light them for line actions bg

* light theme for sidebar actions

* more on line themes and fixes

* use font shorthand

* use --form-element-* for all form elements colors

* update/remove some cmdiput colors

* update terminal colors for light mode

* move term lightmode settings to new file (needs updates for more contrast)

* lighten up panel color, remove 'dev' panel color for now (since we're testing light mode)

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-03-04 17:05:05 -08:00
Red J Adaya b5022c555a force re-rerender when switching themes (#374) 2024-03-04 16:40:30 -08:00
Mike Sawka ab21591314 updates for terminal fonts / colors (#375)
* updating fonts and colors

* use wavegreen for green

* cmdinput should use terminal colors

* adjust colors, bright up bright-white.  cmdinput use more term colors.
2024-03-04 16:27:34 -08:00
Evan Simkowitz 1f9d9b160a Add min-width to sidebar so it won't shrink when the window gets too small (#373) 2024-03-04 16:09:23 -08:00
Sylvie Crowe 50953839b1 SSH Cleanup (#370)
* feat: allow user input verification for install

Depending on the method of installing waveshell, it may be desired to
pop up a modal for user verification. This is a first pass at handling
these special cases. The focus is on installing while previously
connected and auto installing while connecting.

* chore: update mshell to waveshell in error msg

* fix: run waveshell remotely with chosen shell

This ensures that the appropriate shell is used to run the waveshell
command remotely. It hasn't made a difference in my experience but is
desired in order to match the local launch.

* chore: simplify command to run waveshell remotely

This change removes the extra check for a directory and just tries to
run the command instead. It pipes the usual error to null and prints an
init packet instead.

* fix: prevent wavesrv crash during bad connection

The waveshell launch can fail in two different ways. If it has a
recoverable failure, it will attempt to reinstall waveshell. If not, it
is supposed to print an error. The unrecoverable case was causing a
segfault due to a misnamed variable. This change corrects it.

* fix: correct auto install user input modal

The previous combination of flags to catch auto install did not work
properly. This corrects them.

* chore: add "s" to countdown for user input timer

Makes it clear that the countdown is seconds.

* fix: remove auto password entry for sudo remote

The auto password entry for sudo remotes printed an error that was not
in response to the user input. To avoid this confusion, it has been
removed entirely.

* feat: add auto focus to user input modal

This automatically moves the cursor to the text box when the modal pops
up.

* feat: handle enter/escape keys for password entry

The password modal previously had to have buttons clicked to close it.
This change allows the user to close it with whatever is bound to escape
and to submit with whatever is bound to enter.

* chore: update an any type to correct type

* fix: correct keyboard event type from last commit

* fix: check identity files are readable early

Previously, an invalid identity file would send a dummy signer if the
file didn't exist. This resulted in extra sign in attempts that have no
chance of success. This could cause someone to get locked out of a
connection because of too many failed attempts. By performing the check
early, we no longer have to make these extra attempts.

* fix: only check global known hosts as root

The root user should not be able to write to a local known_hosts file.
If it does, it risks overwriting the default global behavior for only
the root user. This problem would only occur if waveterm was launched as
root, but we should protect against it just in case.

* feat: add remote name for remote password prompt

This change clarifies the remote name for password and keyboard
interactive prompts. It displays a message that authentication has been
requested from <hostname>. It is not added to publickey passphrase since
those phrases are specific to the key and not the remote.

* revert "simplify cmd to run waveshell remotely"

This reverts commit 4e5eea51b65318428f83a16133b7cc3df53832bd.
2024-03-04 11:56:20 -08:00
Mike Sawka 438d17b933 linux/darwin overrides for logo position and corner rounding (#372)
* linux/darwin overrides for logo position and corner rounding

* more perfect border/border-radius on mac
2024-03-04 11:55:43 -08:00
Mike Sawka 31b9c3d3a5 calculate editor height correctly (#367) 2024-03-01 18:28:39 -08:00
Mike Sawka adf83c73b1 codeedit ui updates (#366)
* codeedit UI updates

* deal with long messages, cleanup
2024-03-01 18:11:28 -08:00
Mike Sawka 089862d990 initialize lhe (#364) 2024-03-01 00:14:28 -08:00
Red J Adaya b5d481734f Theme switching (#361)
* init

* init

* theme override mechanism by changing href value in header link tag

* remove debugging code

* remove debugging code. no need to force rerender

* remove overrides.less

* get some light colors showing in light theme
2024-03-01 00:01:23 -08:00
Mike Sawka 402c8c2485 recalculate dynamic layout heights (#362)
* working on MagicLayout.  update constants and move to dynamic computation in textmeasure.

* magic line height -- no jitter.  and add some debugging code for helping to fix future problems

* fix openai fonts
2024-02-29 23:46:22 -08:00
Mike Sawka 41f91b6a8a More Font / UI Updates and Cleanup (#360)
* font updates, settings modals, tabs, change base font.

* aichat responses

* fix updatemodel errors/warnings.  more font inconsistencies

* history fixes

* more fixups, fix some warnings, text/font updates for various subsystems
2024-02-29 21:40:01 -08:00
Mike Sawka 5af7d21e4b update to tab highlighting for active tab. tweak to sidebar logo (no name, fix left next to traffic lights) (#358) 2024-02-29 14:53:34 -08:00
Sylvie Crowe 6c115716b0 Integrate SSH Library with Waveshell Installation/Auto-update (#322)
* refactor launch code to integrate install easier

The previous set up of launch was difficult to navigate. This makes it
much clearer which will make the auto install flow easier to manage.

* feat: integrate auto install into new ssh setup

This change makes it possible to auto install using the ssh library
instead of making a call to the ssh cli command. This will auto install
if the installed waveshell version is incorrect or cannot be found.

* chore: clean up some lints for sshclient

There was a context that didn't have it's cancel function deferred and
an error that wasn't being handle. They're fixed now.

* fix: disconnect client if requested or launch fail

A recent commit made it so a client remained part of the MShellProc
after being disconnected. This is undesireable since a manual
disconnection indicates that the user will need to enter their
credentials again if required. Similarly, if the launch fails with an
error, the expectation is that credentials will have to be entered
again.

* fix: use legacy timer for the time being

The legacy timer frustrates me because it adds a lot of state to the
MShellProc struct that is complicated to manage. But it currently works,
so I will be keeping it for the time being.

* fix: change separator between remoteref and name

With the inclusion of the port number in the canonical id, the :
separator between the remoteref and remote name causes problems if the
port is parsed instead. This changes it to a # in order to avoid this
conflict.

* fix: check for null when closing extra files

It is possible for the list of extra files to contain null files. This
change ensures the null files will not be erroneously closed.

* fix: change connecting method to show port once

With port added to the canonicalname, it no longer makes sense to append
the port afterward.

* feat: use user input modal for sudo connection

The sudo connection used to have a unique way of entering a password.
This change provides an alternative method using the user input modal
that the other connection methods use. It does not work perfectly with
this revision, but the basic building blocks are in place. It needs a
few timer updates to be complete.

* fix: remove old timer to prevent conflicts with it

With this change the old timer is no longer needed. It is not fully
removed yet, but it is disabled so as to not get in the way.
Additionally, error handling has been slightly improved.

There is still a bug where an incorrect password prints a new password
prompt after the error message. That needs to be fixed in the future.
2024-02-29 11:37:03 -08:00
Evan Simkowitz 75be66bada Add delimiters to screen tab, make active gradient a translucent mask (#356)
* Add delimiters to screen tab, make active gradient a translucent mask

* make delimiter slightly shorter

* move end icon a bit to provide more separation

* fix zindex for tab contents

* fix magic layout

* make the tabs closer to the width they used to be
2024-02-28 18:25:37 -08:00
Mike Sawka 189e632ff7 More Prompt Updates / Line Action Implementation (#357)
* termfontsize-sm (for meta1).  add some small margin.  remove rootIndicator.  switch cwd/remote to red if root

* break LineHeader out into its own react component

* actual set our --term colors as the *theme* for xtermjs

* move line-actions into its own div (absolute position).  hover/background colors

* add duration, format renderer, spacing, remove meta-wrap

* simplify cmdtext output.  simpler multi-line rendering.

* adjust position/height of line actions for better interaction with long lines

* fix horiz scrolling

* remove unused

* quick fix for text lines
2024-02-28 18:23:14 -08:00
Mike Sawka bbf471566f add condaenv to the prompt (#355)
adding conda environment to prompt (#304)
2024-02-28 10:00:06 -08:00
Mike Sawka 0464cccf0a UI updates for command prompt / cmdinput (#354)
* remove [local] from prompt, remove prompt icons, restore --term vars (remove --prompt vars)

* working on prompt colors, cmdtext

* more generous padding around commands (and cmdinput)

* fix cmdinput background color

* fixes for cmdinput info box
2024-02-27 22:46:07 -08:00
Evan Simkowitz 17990afd5d Add the logo back to the revamped sidebar, fix regressions from last PR (#353)
* Fix logo not being visible in auxiliary views when sidebar is collapsed

* Refactor auxiliary views into MainView component

* fix contents formatting

* Need a better-centered version of the logo for the sidebar

* Add logo back to the sidebar

* revert root.less change

* Fix regressions from last pr

* zero out subtractor if sidebar is collapsed

* remove unnecessary var
2024-02-27 22:39:20 -08:00
Mike Sawka 9e806d0621 fix background colors, standardize tab icons -- use fontawesome, use fa-fw (fixed width) (#352) 2024-02-27 21:31:58 -08:00
Mike Sawka 3fa6494493 upgrade fontawesome to v6.5.1 (#351) 2024-02-27 19:58:03 -08:00
Evan Simkowitz 98385b1e0d Enable automatic updates on macOS using Electron's autoUpdater (#342)
* clean up emain

* add restart on disable auto update

* save work

* add zip

* save

* fix zip command

* make build-universal more generic

* clean up script

* fix autoupdate config

* update feed

* fix update feed path

* switch to custom update flow

* show notification

* remove enum

* test change

* debug sidebar

* save work

* remove weird import

* remove listeners if present

* save debug

* fixed banner

* fix sending of appupdatestatus, add comments

* Change to primary feed

* more comments, less debugs

* rename to app update

* code cleanup, add fireAndForget

* update paths for objects
2024-02-27 19:42:29 -08:00
Sylvie Crowe bdfb80e62f fix: allow exit from fullscreen with traffic light (#349)
Electron version 28.1.2 introduced a bug where the traffic light to undo
fullscreen was not available in fullscreen. It has been fixed by the
most recent version, so we are upgrading to it.
2024-02-27 19:39:30 -08:00
Ian Jennings b8b4dc20f5 add initial testdriver config (#350)
* add initial testdriver config

* remove slack
2024-02-27 19:38:16 -08:00
Evan Simkowitz 314932d402 Fix logo not being visible in auxiliary views when sidebar is collapsed (#347) 2024-02-27 18:21:00 -08:00
Mike Sawka 3f83441868 More UI Tweaks, Testing Variable Fonts for Sidebar/Tabs (#348)
* MonoFontSize type, add label font, theme vars for sidebar

* fix line-height for tabs

* experiment with variable label font

* lato font, fix open ai fonts, fix cmdinput font
2024-02-27 16:26:58 -08:00
Evan Simkowitz d9ca9394ac Adjust the active tab gradient to make it more visible with the new UI changes (#346) 2024-02-27 12:13:57 -08:00
Red J Adaya 3612bc3ae8 more on conversion to css vars (#345) 2024-02-27 09:09:03 -08:00
Mike Sawka 8a0df07b47 More UI Updates (sidebar, border radius, shelltag, colors, etc) (#344)
* tab hover

* border radius fix, and lighter scrollbar background

* tone down colors a bit

* fix shelltag

* hack collapsable sidebar (needs cleanup)
2024-02-26 23:55:45 -08:00
Cole Lashley f27f0d3958 upped timeout and changed error msg (#341) 2024-02-26 22:21:28 -08:00
Mike Sawka b120a7952d MainView UI updates (history, connections, settings, bookmarks) (#339)
* slight tab update

* sidebar separator / hightlight color restored

* fix mainviews, lots of history view fixes

* more mainview changes.  update for bottom-border, fix bookmarks
2024-02-26 15:28:59 -08:00
Mike Sawka 01e4106aa7 More UI Updates (flatter look, titlebar/tabs changes) (#338)
* updates for historyinfo

* cmdinput history fixups, scrollbars

* work with scrollbars

* create another drag region at the end of the tabs bar

* updates for header -- change title drag area, fix corner rounding, tabs spacing, etc.
2024-02-26 13:58:32 -08:00
Evan Simkowitz cbe9acf21b Update go-github to latest version and tidy up dependencies (#337) 2024-02-26 11:39:04 -08:00
sawka aeb7195eff quick fix for textarea input (fix merge) 2024-02-26 10:06:30 -08:00
Red J Adaya 19daffad56 Convert the rest of the colors to CSS variables (#333)
* css variables for sidebar

* type

* line css vars

* lines css vars

* bookmarks css vars

* clientsettings css vars

* button.less css vars

* checkbox.less css vars

* cmdstrcode.less css vars

* dropdown.less css vars

* markdown css vars

* status css vars

* convert all hex colors to rgb color

* textfield css vars

* toggle css vars

* tooltip css vars

* statusindicator css vars

* about modal css vars

* disconnected modal css vars

* editremoteconn modal css vars

* linesettings modal css vars

* tos modal css vars

* viewremoteconndetail modal css vars

* prompt css vars

* connections view css vars

* add colors comments

* history view css vars

* cmdinput css vars

* cmdinput css vars

* screenview css vars

* convert less vars to css vars
2024-02-25 23:21:23 -08:00
Cole Lashley 85d4259937 added enhanced prompt (#332) 2024-02-25 11:03:15 -08:00
Mike Sawka 7a4e1593b4 fix default term font family and style integration (#331)
* move root css vars to root.less (otherwise we get duplicate declarations).

* make the default term font family consistent (fix reload loop bug)
2024-02-24 13:13:57 -08:00
Red J Adaya 4d7212e945 implement css variables to line.less (#324) 2024-02-24 13:06:05 -08:00
Red J Adaya 1965493054 Lines css vars (#328)
* css variables for sidebar

* type

* line css vars

* lines css vars
2024-02-24 12:46:04 -08:00
Red J Adaya 1eb89e1982 css variables for sidebar (#326)
* css variables for sidebar

* type
2024-02-24 12:40:51 -08:00
Evan Simkowitz f0bb991a2e revert Dmg name to waveterm to play nice with homebrew
* revert Dmg name to waveterm to play nice with homebrew
2024-02-23 17:50:00 -08:00
Evan Simkowitz f85067998f Get version for build-universal from the build-helper output, use package.json for all versioning (#321)
* store version for build in txt file

* get version from version.txt

* remove quotes

* Use version.js for Go version too

* test

* test

* simplify things more

* rename zips to consistent waveterm name

* remove newline

* always use v

* always use Wave rather than waveterm
2024-02-23 17:44:00 -08:00
Evan Simkowitz 7e21b80af0 Update to latest checkout action in CodeQL pipeline (#325) 2024-02-23 16:43:32 -08:00
Mike Sawka 5a749d674d new layout / UI cleanup (#323)
* undo awkward backgrounds, transparencies, etc.  hope to sharpen up the active blocks and the grey/transparent backgrounds were getting in the way

* block UI and cmdinput UI overhaul

* updates for cmdinput spacing, input-sep fonts

* remove nth-child special case, fix sidebar margins

* sidebar styles

* bring back selected line

* codeedit fixes for layout / colors
2024-02-23 16:19:01 -08:00
Evan Simkowitz 6cd74028ef Make version.js read from package.json (#320) 2024-02-23 15:34:45 -08:00
Evan Simkowitz 0c3766c67b Set build version programmatically in build-helper, fix broken build-universal script (#319)
* Set build version programmatically in build-helper

* remove env var definition

* fix paths in helper scripts

* missing import

* missed some more relative paths
2024-02-23 15:14:25 -08:00
Evan Simkowitz 7b692e2644 Create zip of universal app package, clean up script (#318)
* Create zip of universal app package, clean up script

* add missing newlines
2024-02-23 12:32:52 -08:00
Mike Sawka 61de455b90 terminal font-size updates (margins, paddings, etc.) (#315)
* reorganize line styles, split lines.less into lines.less and line.less

* switch everyone to use termFontSize getter (easier to find usages)

* better font-family font-size update logic

* update line styles, clean up more

* replace icons, fix line heights

* make paddings/margins more consistent

* fix more margins, make command completions use termfontfamily

* updates for cmdinput margins, font sizes, etc.

* fix more font sizes and margins (mostly command input)

* add comment
2024-02-23 09:39:27 -08:00
Evan Simkowitz b7539a26c7 Make build-helper more generic (#314)
* Make build-helper more generic

* fix

* fix brew

* remove brew requirement since the instructions are the same

* oops

* fix

* simplify matrix
2024-02-22 18:24:28 -08:00
Sylvia Crowe a66319cfc6 fix: add missing type
The countdownactive field of the RemoteType was missed in a recent
merge. It is being added back here.
2024-02-22 16:59:47 -08:00
dependabot[bot] 3ae0589786 Bump ip from 2.0.0 to 2.0.1 (#312)
Bumps [ip](https://github.com/indutny/node-ip) from 2.0.0 to 2.0.1.
- [Commits](https://github.com/indutny/node-ip/compare/v2.0.0...v2.0.1)

---
updated-dependencies:
- dependency-name: ip
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-22 16:32:34 -08:00
Evan Simkowitz 4aa3309c83 Update to latest Go action in build-helper
* Update to latest Go action in build-helper
2024-02-22 16:31:49 -08:00
Mike Sawka 3f83b30b06 add support for "Hack" font family (#309)
* testing hack font

* updates to allow font to be variable

* allow setting of font-family.  get initial font family from electron (needed for loading)

* add termfontfamily

* update wave logos for README

* hook up fontfamily setting, remove old dropdown active var

* get app to reload on font change.  reload fonts

* on termfontsize change, bump render version as well
2024-02-22 11:45:43 -08:00
Red J Adaya 743d6d8622 Persist line "minimized" status to DB (#306)
* backend implementation

* integrate minize linesate in UI

* remove debugging code

* change prompt:min key to wave:min
2024-02-22 11:45:08 -08:00
sawka 8bcb99fa35 update for logo margin size 2024-02-21 15:20:29 -08:00
sawka cccf6c435d update wave logos for README 2024-02-21 15:16:03 -08:00
sawka 51c0c00416 fix another special case ai-chat close + cmd focus issue 2024-02-20 23:43:56 -08:00
sawka 02d605a624 fix bug where we sometimes lose cmd focus on tab switching 2024-02-20 23:37:26 -08:00
Evan Simkowitz 96cabeff98 Fix sidebar middle div max-height calculation (#299)
* Fix sidebar middle div max-height calculation

* remove logs

* update bottom div padding
2024-02-20 12:23:39 -08:00
Red J Adaya 8cb449d2e7 remove old model (#307) 2024-02-20 12:22:09 -08:00
Mike Sawka 7b6025fd4b forward port v0.6.3 changes to main (#308) 2024-02-20 12:20:17 -08:00
Mike Sawka 07ad5f063e Fix #302 and clean up extraneous terminal margins (#303)
* font loading fix #302

* fix inconsistent paddings.  issue was that the first '[' feels indented (because of the fixed with font).  applying a negative 2px margin fixes it and allows us to remove the paddings on the other elements.
2024-02-18 17:58:22 -08:00
Evan Simkowitz fe3ffd1545 Use IsEmpty rather than nullcheck for scbus types
* Use IsEmpty rather than nullcheck for scbus types
2024-02-16 12:14:05 -08:00
Mike Sawka e2e71898c1 new wlog package to do distributed logging from waveshell back to wavesrv (#295) 2024-02-15 17:42:43 -08:00
Evan Simkowitz 07fa5bf9cb Remove verbose log from scbus (#296) 2024-02-15 16:50:03 -08:00
Evan Simkowitz 8acda3525b Break model update code out of sstore (#290)
* Break update code out of sstore

* add license disclaimers

* missed one

* add another

* fix regression in openai updates, remove unnecessary functions

* another copyright

* update casts

* fix issue with variadic updates

* remove logs

* remove log

* remove unnecessary log

* save work

* moved a bunch of stuff to scbus

* make modelupdate an object

* fix new screen not updating active screen

* add comment

* make updates into packet types

* different cast

* update comments, remove unused methods

* add one more comment

* add an IsEmpty() on model updates to prevent sending empty updates to client
2024-02-15 16:45:47 -08:00
Sylvie Crowe 158378a7ad Ssh Fixes and Improvements (#293)
* feat: parse multiple identity files in ssh

While this does not make it possible to discover multiple identity files
in every case, it does make it possible to parse them individually and
check for user input if it's required for each one.

* chore: remove unnecessary print in updatebus.go

* chore: remove unnecessary print in sshclient.go

* chore: remove old publicKey auth check

With the new callback in place, we no longer need this, so it has been
removed.

* refactor: move logic for wave and config options

The logic for making decisions between details made available from wave
and details made available from ssh_config was spread out. This change
condenses it into one function for gathering those details and one for
picking between them.

It also adds a few new keywords but the logic for those hasn't been
implemented yet.

* feat: allow attempting auth methods in any order

While waveterm does not provide the control over which order to attempt
yet, it is possible to provide that information in the ssh_config. This
change allows that order to take precedence in a case where it is set.

* feat: add batch mode support

BatchMode turns off user input to enter passwords for ssh. Because we
save passwords, we can still attempt these methods but we disable the
user interactive prompts in this case.

* fix: fix auth ordering and identity files

The last few commits introduced a few bugs that are fixed here. The
first is that the auth ordering is parsed as a single string and not a
list. This is fixed by manually splitting the string into a list. The
second is that the copy of identity files was not long enough to copy
the contents of the original. This is now updated to use the length of
the original in its construction.

* deactivate timer while connecting to new ssh

The new ssh setup handles timers differently from the old one due to the
possibility of asking for user input multiple times. This limited the
user input to entirely be done within 15 seconds. This removes that
restriction which will allow those timers to increase. It does not
impact the legacy ssh systems or the local connections on the new
system.

* merge branch 'main' into 'ssh--auth-control'

This was mostly straightforward, but it appears that a previous commit
to main broke the user input modals by deleting a function. This adds
that back in addition to the merge.

* fix: allow 60 second timeouts for ssh inputs

With the previous change, it is now possible to extend the timeout for
manual inputs. 60 seconds should be a reasonable starting point.

* fix: change size of dummy key to 2048

This fixes the CodeQL scan issue for using a weak key.
2024-02-15 15:58:50 -08:00
sawka 766b7b90ce fix directory names in build-linux.md. also fix reload accelerator for Linux (keybindings) 2024-02-15 10:01:18 -08:00
Mike Sawka b3ada77c39 create assets directory, update README with screenshot (#294) 2024-02-15 09:53:39 -08:00
sawka fb7f055449 do not try to set ZDOTDIR in rcfile (ignore). remove spurious log messages 2024-02-14 18:21:23 -08:00
Mike Sawka 3e4bd458b3 global shortcut for wave (#287)
* working on easy global shortcut for wave

* globalshortcut setting working

* cmd for macos, alt for others

* re-remove types.ts (was added back during merge)

* rename DDItem to DropdownItem, put into custom.d.ts

* make some consts
2024-02-13 17:43:02 -08:00
Red J Adaya 18fe3f3296 import aliass and configuration updates (#291) 2024-02-12 22:47:51 -08:00
Evan Simkowitz 2839179ced Fix History view not honoring sidebar width (#292)
* Fix History view not honoring sidebar width

* update comment
2024-02-12 22:34:49 -08:00
Red J Adaya 532e65c8ab Add main screens to Cmd-P search (#288)
* declare types as global

* remove mobx types aliases

* put back model_old.ts

* remove types.ts

* add main screens to Cmd-P search

* make viewData optional

* minor hint fix

* address improvements suggested by evan

* more on let to const
2024-02-12 17:54:12 -08:00
Red J Adaya 85f22a0733 Declare types as global (#282)
* declare types as global

* remove mobx types aliases

* put back model_old.ts

* remove types.ts
2024-02-12 16:39:29 -08:00
sawka 94de0460b4 fix history layout (item height and table width) 2024-02-11 23:14:29 -03:00
sawka 71b09cb44e fix typescript errors in emain.ts 2024-02-11 17:23:40 -03:00
sawka 07abaa92fa fix types for GlobalModel / GlobalCommandRunner so references work 2024-02-11 15:34:31 -03:00
Red J Adaya 2a4d85430a Fix term width in view connection detail modal (#274)
* fix term width

* add horizontal scroll to terminal when it overflows

* revert width of modal
2024-02-10 19:18:50 -03:00
Evan Simkowitz d319e72609 Refactor ModelUpdate to set up for decoupling sstore (#280)
This PR changes ModelUpdate mechanism from a statically-typed struct to an interface, allowing us to define the update mechanism and the update types separately. This sets us up to move app logic and update mechanisms into separate packages. Ultimately, sstore will only define low-level persistence logic.
2024-02-09 17:19:44 -08:00
sawka 7a5afccab3 do not unset ZDOTDIR otherwise interactive configs will be unnecessarily re-read (causing big performance problem for zsh command initialization) 2024-02-09 20:05:00 -03:00
sawka efe567398a fix ts warning 2024-02-09 18:57:07 -03:00
Sylvia Crowe 187509504d fix: type mismatch in userinput modal
A null was used in a place where a string should have been. It has been
updated to a string to remove the error associated with it.
2024-02-08 21:04:38 -08:00
Sylvie Crowe 903b26bfca Use ssh library: add user input (#281)
* feat: create backend for user input requests

This is the first part of a change that allows the backend to request
user input from the frontend. Essentially, the backend will send a
request for the user to answer some query, and the frontend will send
that answer back. It is blocking, so it needs to be used within a
goroutine.

There is some placeholder code in the frontend that will be updated in
future commits. Similarly, there is some debug code in the backend
remote.go file.

* feat: create frontend for user input requests

This is part of a change to allow the backend to request user input from
the frontend. This adds a component specifically for handling this
logic. It is only a starting point, and does not work perfectly yet.

* refactor: update user input backend/interface

This updates the user input backend to fix a few potential bugs. It also
refactors the user input request and response types to better handle
markdown and errors while making it more convenient to work with.

A couple frontend changes were made to keep everything compatible.

* fix: add props to user input request modal

There was a second place that the modals were created that I previously
missed. This fixes that second casel

* feat: complete user input modal

This rounds out the most immediate concerns for the new user input
modal. The frontend now includes a timer to show how much time is left
and will close itself once it reaches zero. Css
formatting has been cleaned up to be more reasonable.

There is still some test code present on the back end. This will be
removed once actuall examples of the new modal are in place.

* feat: create first pass known_hosts detection

Manually integrating with golang's ssh library means that the code must
authenticate known_hosts on its own. This is a first pass at creating a
system that parses the known hosts files and denys a connection if there
is a mismatch. This needs to be updated with a means to add keys to the
known-hosts file if the user requests it.

* feat: allow writing to known_hosts first pass

As a follow-up to the previous change, we now allow the user to respond
to interactive queries in order to determine if an unknown known hosts
key can be added to a known_hosts file if it is missing. This needs to
be refined further, but it gets the basic functionality there.

* feat: add user input for kbd-interactive auth

This adds a modal so the user can respond to prompts provided using the
keyboard interactive authentication method.

* feat: add interactive password authentication

This makes the ssh password authentication interactive with its own user
input modal. Unfortunately, this method does not allow trying a default
first. This will need to be expanded in the future to accomodate that.

* fix: allow automatic and interactive auth together

Previously, it was impossible to use to separate methods of the same
type to try ssh authentication. This made it impossible to make an auto
attempt before a manual one. This change restricts that by combining
them into one method where the auto attempt is tried once first and
cannot be tried again. Following that, interactive authentication can be
tried separately.

It also lowers the time limit on kbd interactive authentication to 15
seconds due to limitations on the library we are using.

* fix: set number of retries to one in ssh

Number of retries means number of attempts after the fact, not number of
total attempts. It has been adjusted from 2 to 1 to reflect this.

* refactor: change argument order in GetUserInput

This is a simple change to move the context to the first argument of
GetUserInput to match the convention used elsewhere in the code.

* fix: set number of retries to two again

I was wrong in my previous analysis. The number given is the total
number of tries. This is confusing when keyboard authentication and
password authentication are both available which usually doesn't happen.

* feat: create naive ui for ssh key passphrases

This isn't quite as reactive as the other methods, but it does attempt
to use publickey without a passphrase, then attempt to use the password
as the passphrase, and finally prompting the user for a passphrase. The
problem with this approach is that if multiple keys are used and they
all have passphrases, they need to all be checked up front. In practice,
this will not happen often, but it is something to be aware of.

* fix: add the userinput.tsx changes

These were missed in the previous commit. Adding them now.
2024-02-09 00:16:56 -03:00
Red J Adaya e692c7c180 Split model into separate files (#279)
* split settings modals

* init

* init

* remove styles not related to checkbox

* remove styles not related to CmdStrCode

* renderCmdText doesn't need styles

* remove styles not related to dropdown

* IconButton doesn't need styles because it extends Button

* remove old connections

* InfoMessage conmponent no longer needed

* fix import error

* remove styles not related to InlineSettingsTextEdit

* remove styles not related to InputDecoration

* LinkButton doesn't need styles cos it's extends Button component

* remove styles not related to markdown

* remove styles not related to modal

* NumberField doesn't need styles cos it extends TextField

* remove styles not related to PasswordField

* RemoteStatusLight no longer used. It's replaced by Status component.

* remove styles not related to ResizableSidebar

* SettingsError doesn't need styles cos it uses classnames in app.less

* remove styles not related to Status

* remove styles not related to TextField

* remove styles not related to Toggle

* remove styles not related to Tooltip

* init

* cleanup bookmarks model

* cleanup clientsettingsview model

* cleanup cmd model

* remove dayjs import from bookmarks model

* cleanup commandrunner model

* cleanup historyview model

* cleanup input model

* cleanup linecontainer model

* cleanup mainsidebar model

* cleanup main model

* cleanup plugins model

* cleanup remote model

* cleanup screen model

* cleanup screenlines model

* cleanup session model

* cleanup screenlinecontainer model

* cleanup connectionsview model

* add index.ts inside model dir

* replace /model_old imports with /model

* rename model to models

* move model_old to models

* fix ptyDataSource errors

* split models/model
2024-02-08 17:52:42 -03:00
Cole Lashley b37f7f722e Command to copy file from remote to local (#231)
* first pass of copy file

* first pass fixing up function

* fleshed out copy function, still working on display and parameters

* implemented scp like syntax

* finished implemententation of copy file - there are still issues

* more bug fixes, still running into error

* pushing waveshell concurrency and channel fixes - still need to do some qol fixes before merge

* aesthetic fixes and removed logs

* fixed bug in GetRemoteRuntimeState

* formatting small fix

* fixed pretty print bytes

* added local to local command

* small fix removing workaround

* added workaround back

* added some logs for debug

* added some more logs

* quick bug fix for update cmd race condition

* added fix for race condition

* added some more logs for debugging

* fixed up logs

* added proper fe state for dest parameter

* implemented setting status indicator output

* first pass at updating status indicators

* removed logs and small fix ups

* removed whitespace

* addressed review comments
2024-02-08 17:37:23 -03:00
sawka ff855cf308 add AI and the blog 2024-02-07 17:20:28 -03:00
Red J Adaya bf1b556537 Split components in common (#276)
* split settings modals

* init

* init

* remove styles not related to checkbox

* remove styles not related to CmdStrCode

* renderCmdText doesn't need styles

* remove styles not related to dropdown

* IconButton doesn't need styles because it extends Button

* remove old connections

* InfoMessage conmponent no longer needed

* fix import error

* remove styles not related to InlineSettingsTextEdit

* remove styles not related to InputDecoration

* LinkButton doesn't need styles cos it's extends Button component

* remove styles not related to markdown

* remove styles not related to modal

* NumberField doesn't need styles cos it extends TextField

* remove styles not related to PasswordField

* RemoteStatusLight no longer used. It's replaced by Status component.

* remove styles not related to ResizableSidebar

* SettingsError doesn't need styles cos it uses classnames in app.less

* remove styles not related to Status

* remove styles not related to TextField

* remove styles not related to Toggle

* remove styles not related to Tooltip
2024-02-06 18:23:56 -03:00
Red J Adaya fc65e65f11 remove old connections (#273) 2024-02-03 01:23:10 -03:00
Red J Adaya cedebe2196 split settings modals (#272) 2024-02-03 01:22:30 -03:00
Red J Adaya 3a9f6dec6d remove modals.tsx as it's no longer used. rename modals.less to settings.less (#271) 2024-02-02 00:02:45 -03:00
Sylvie Crowe 51ee7bef61 Shellpref for sshconfig import (#270) 2024-01-31 14:11:12 -08:00
Evan Simkowitz 5ce7b92232 Simplify logic for startResizing width calculation (#269)
* Apply Red's suggestion and move width logic to getWidth

* remove unnecessary

* a little more

* remove comment
2024-01-30 22:34:00 -08:00
Evan Simkowitz 81a9e74991 Fix onMouseDown causing width to snap back to persisted width (#268)
* Fix onMouseDown causing width to snap back to persisted width

* var name change

* remove logs

* remove redundant call
2024-01-30 22:23:00 -08:00
Evan Simkowitz 679e85a84a Fix sidebar width not persisting when un-collapsing (#267)
* Do not persist collapsed width to db

* remove console.logs

* one more

* one more

* remove setTemp from getWidth and add to the startResize call
2024-01-30 22:04:25 -08:00
Evan Simkowitz da69a0f583 Fix broken merge (#266) 2024-01-30 20:56:32 -08:00
Red J Adaya 37ab1bca90 allow resizing of left sidebar (#244)
* wip

* integrate original sidebar content

* ResizableSidebar component

* trigger toggleCollapse

* remove debugging code

* minor refactor. disable text select on mousemove

* replace icons with fontawesome icons. fix alignment issues

* fix session view width when tabs overflow

* prevent index and icon from shifting when resizing

* snap effect

* minor refactor

* apply collapsed mode to sidebar contents

* change default width to 240px

* backend implementation

* fix wrong subcmd

* save collapsed state

* retore sidebar state on reload/launch

* use collapse data form db on first load. use previously saved width on expand.

* persist width as well collapse state

* various fixes and improvements

* bind methods

* refactor

* more refactor

* fix minor bug

* fix merge issues

* various fixes

* refactor

* fixes

* fix issues

* fix all issues

* resolve undefind tempWidth

* fix toggleCollapsed

* use Promise in stopResizing method

* use tempCollapsed to for real time toggling between logos

* minor method name change

* refactor

* remove debugging code

* fix conflict

* fix setting collapsed state via CLI

* minor refactor

* remove debugging code

* create setTempWidthAndTempCollapsed method

* handle invalid width set via cli

* refactor: setbycli not actually needed

* remove unused code
2024-01-30 20:17:49 -08:00
Evan Simkowitz 40757fa7f4 Prevent the status indicator flickering for quick-returning commands (#265)
* add status-indicator-visible

* save

* save

* Prevent the status indicator flickering for quick returns

* flx regression

* reduce delay, reset spinnerVisible when there's no more running commands

* clean up code reuse

* move code around

* slight optimizations to prevent rendering before spinner is visible

* rename var

* revert shouldSync change as it broke the sync
2024-01-30 16:31:38 -08:00
Evan Simkowitz e576f7f07d Sync RotateIcon spin as well (#262)
* Sync RotateIcon spin as well

* make shouldSync a boolean value
2024-01-30 14:16:33 -08:00
Evan Simkowitz 9e804232c2 Fix SidebarItem key error (#263) 2024-01-30 11:54:35 -08:00
sawka d3dbac6e77 fix missing react key 2024-01-30 11:29:12 -08:00
Mike Sawka 198de02a65 code to restore indicator state on refresh (#260)
* code to restore indicator state on refresh

* fix style
2024-01-29 23:51:01 -08:00
Mike Sawka 8f64d6a589 set animation startTime to sync spinners for status indicators (#259)
* set animation startTime to sync spinners for status indicators

* catch animationstart (hover interaction) to restart startTime.

* use const

---------

Co-authored-by: Evan Simkowitz <esimkowitz@users.noreply.github.com>
2024-01-29 23:48:37 -08:00
Evan Simkowitz 1a51d93a54 Fix add-workspace so that only the plus button shows pointer (#258) 2024-01-29 14:10:58 -08:00
sawka 9ab3b2a5b7 only run prettier on js/ts/css/less files 2024-01-29 13:35:09 -08:00
Evan Simkowitz 856c879cdf Adjust the status indicator icon to make the spinner a little bigger (#257) 2024-01-29 11:03:18 -08:00
sawka ea3f744d93 bump to v0.6.1 2024-01-29 09:39:36 -08:00
Evan Simkowitz dd3d52e47d Add indicator to tabs and workspaces to show when commands are running (#254)
* save

* not working yet but close

* logic is working, just need to do styling

* save work

* save

* save work

* ta da!

* fix line height

* format files

* remove running commands on hangup.  also don't allow numrunning to be less than 0

* remove < 0 check (safer without for concurrency)
2024-01-28 13:47:36 -08:00
Evan Simkowitz 32499f0421 Add workspace settings for formatter and recommended extensions (#255) 2024-01-28 13:14:54 -08:00
Mike Sawka b136c915df Restart command (#253)
* working on cmd restart logic

* button to restart command

* bind Cmd-R to restart selected command, and Cmd-Shift-R to restart last command.  Browser Refresh is now Option-R.  also fix 'clear' command to not delete running commands (like archive).  some small changes to keyboard utility code to always set 'alt' and 'meta' appropriately.  use 'cmd' and 'option' for crossplatform bindings

* focus restarted line

* update termopts, use current winsize to set termopts for new command

* add cmd.restartts to track restart time

* display restarted time in line w/ tooltip with original time

* add restartts to line:show
2024-01-26 16:25:21 -08:00
Cole Lashley 0648d48ba1 Intenational key binding fixes (#234)
* first pass of copy file

* first pass fixing up function

* first pass fixing key press

* fixed up key press parsing

* reverted cmdrunner.go

* fixed cmdrunner.go again :p

* fixed cmdrunner again lol

* Add job status indicators to tabs within a workspace (#232)

Adds job status indicators that will show any updates to running commands while you are focused away from a tab. These will show up as status icons in the tab view.

These indicators will reset for a given tab when you focus back to it.

I've updated the inner formatting of the tab to use flexboxes, allowing the title to display more text when there are no icons to display.

Also includes some miscellaneous for-loop pattern improvements in model.ts and removing of unused variables, etc.

* first pass fixing key press

* added key util check file

* addressed rebase artifacts

* fixed more rebase artifacts

* fixed keybindings

* removed log

* fixed a ton of rebase artifacts

* fixed a ton of rebase artifacts

* added cmd maps to altKey if not on macos

* fixed platform check code and fixed some small bugs
2024-01-26 10:50:11 -08:00
Evan Simkowitz b97423268c Move icons out of common, clean up visibility story (#251) 2024-01-25 16:17:03 -08:00
Evan Simkowitz 34ec4ff39f Add status indicators to workspace items in the sidebar (#245)
* save work

* refactor end-icon and actions-icon into separate components

* reverting change part 1

* fix

* separate out workspace and tab formatting more

* save work

* Got it working!

* fix scrollbar but hide it so that the formatting doesn't jump when hovering

* revert some changes, replace some svgs with fontawesome

* remove listitem

* remove log
2024-01-25 13:31:20 -08:00
Sylvie Crowe 018bb14b6a Use ssh library for remote connections (#250)
* create proof of concept ssh library integration

This is a first attempt to integrate the golang crypto/ssh library for
handling remote connections. As it stands, this features is limited to
identity files without passphrases. It needs to be expanded to include
key+passphrase and password verifications as well.

* add password and keyboard-interactive ssh auth

This adds several new ssh auth methods. In addition to the PublicKey
method used previously, this adds password authentication,
keyboard-interactive authentication, and PublicKey+Passphrase
authentication.

Furthermore, it refactores the ssh connection code into its own wavesrv
file rather than storing int in waveshell's shexec file.

* clean up old mshell launch methods

In the debugging the addition of the ssh library, i had several versions
of the MShellProc Launch function. Since this seems mostly stable, I
have removed the old version and the experimental version in favor of
the combined version.

* allow switching between new and old ssh for dev

It is inconvenient to create milestones without being able to merge into
the main branch. But due to the experimental nature of the ssh changes,
it is not desired to use these changes in the main branch yet. This
change disables the new ssh launcher by default. It can be used by
changing the UseSshLibrary constant to true in remote.go. With this, it
becomes possible to merge these changes into the main branch without
them being used in production.

* fix: allow retry after ssh auth failure

Previously, the error status was not set when an ssh connection failed.
Because of this, an ssh connection failure would lock the failed remote
until waveterm was rebooted. This fix properly sets the error status so
this cannot happen.
2024-01-25 10:18:11 -08:00
Evan Simkowitz 99f5c094d2 Merge pull request #249 from wavetermdev:evan/update-disclaimer
Update disclaimers with latest dependencies
2024-01-24 14:52:02 -08:00
Evan Simkowitz f23da6a476 Update disclaimers with latest dependencies 2024-01-24 14:51:48 -08:00
sawka 3ae38b4aa4 don't show archived screens with Cmd-P 2024-01-24 12:02:05 -08:00
Evan Simkowitz 2f57a6e067 Fix bug where active session ID is sometimes not persisted (#248) 2024-01-24 11:32:48 -08:00
Mike Sawka b762df179f zsh cleanup and stats (#247)
* better osrelease parsing (ignore garbage at end of string)

* add defaultshelltype to telemetry input

* track reinit errors by shelltype to see if zsh integration is working
2024-01-23 17:19:03 -08:00
sawka 6bcd37c28e 'clear' should not reset nextlinenum 2024-01-23 09:54:16 -08:00
Mike Sawka 9879fe4d11 small performance update for history info. separate each item into a full react component to allow for fine grained reactive updates (prevents large tree reconcilations when there are thousands of history items) (#246) 2024-01-22 23:18:30 -08:00
Cole Lashley 1b81b2906c Fixed chat bug "r.replace is not a function" (#241)
* fixed bug

* ran prettier

* use innerText to get code value

* prettier, and remove console.log
2024-01-22 16:09:22 -08:00
Mike Sawka 974275bcb4 update waveshell install message, link to docs (#243) 2024-01-22 15:17:55 -08:00
Evan Simkowitz 57f07994e4 Add view menu with zoom controls (#242) 2024-01-22 13:13:44 -08:00
sawka 713acb664d fix setting of readonly vars issue with zsh rc files 2024-01-20 13:18:14 -08:00
Evan Simkowitz 613cd30c36 Merge pull request #239 from wavetermdev:evan/tab-drag-fix
Fix tab drag events not registering state update
2024-01-18 14:40:38 -05:00
Evan Simkowitz c0309f1796 Fix tab drag events not registering state update 2024-01-18 11:38:57 -08:00
Evan Simkowitz 1d18a47f72 Merge pull request #238 from wavetermdev:evan/fix-first-tab
Remove different padding for first tab
2024-01-18 14:11:35 -05:00
Evan Simkowitz d3e821af1c Remove different padding for first tab 2024-01-18 11:11:04 -08:00
sawka 467664af85 don't try to set readonly variables 2024-01-18 11:00:13 -08:00
Sylvia Crowe 0feaa57662 add two readonly variables to the ZshIgnoreVars
Readonly variables cannot be reset and attempting to do so causes errors
on my machine. The `keymaps` and `widgets` variables caused problems, so
they have been added to the list of variables to ignore.
2024-01-18 10:50:26 -08:00
sawka 6ea70ff788 build-universal updates to work with new aws s3 version of build-helper 2024-01-17 20:04:27 -08:00
sawka f8e2aadf98 update build-helper (quotes) 2024-01-17 19:49:00 -08:00
sawka f21a9e2aa1 update to build-helper (debug aws) 2024-01-17 18:32:17 -08:00
sawka 13d3d3a180 upload build-helper builds to aws s3 as github artifacts are painfully slow to download 2024-01-17 17:51:50 -08:00
Evan Simkowitz 5216f58e2f Tweak the color of the output status indicator, adjust the placement of the tab end-icons a bit (#236)
* Tweak the color of the output status indicator, adjust the placement of the tab end-icons a bit

* adjust the margins a bit more

* a few more slight adjustments to even out the spacing

* save work

* fix nullref, some smaller tweaks to the front icon

* made the tab slightly smaller so that the ratios made more sense

* remove unnecessary width

* format fix
2024-01-17 17:25:57 -08:00
Mike Sawka 7b9287316d touchups to UI for AI chat feature (#237) 2024-01-17 15:39:24 -08:00
sawka 781ed2e57e updated build-helper.yml 2024-01-17 14:52:49 -08:00
Evan Simkowitz 4ac5d93ed2 Add job status indicators to tabs within a workspace (#232)
Adds job status indicators that will show any updates to running commands while you are focused away from a tab. These will show up as status icons in the tab view.

These indicators will reset for a given tab when you focus back to it.

I've updated the inner formatting of the tab to use flexboxes, allowing the title to display more text when there are no icons to display.

Also includes some miscellaneous for-loop pattern improvements in model.ts and removing of unused variables, etc.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-01-17 10:07:01 -08:00
sawka a7afefc340 update build-helper.yml (single artifact with all builds) 2024-01-16 22:35:17 -08:00
sawka fc12dcac2f update build-helper.yml (use local scripthaus) 2024-01-16 22:05:45 -08:00
sawka aeacfb094e update build-helper.yml (go workspace) 2024-01-16 22:02:20 -08:00
sawka 14da9b76e0 update build-helper.yml 2024-01-16 21:56:40 -08:00
sawka 2f32d89b85 update build-helper.yml 2024-01-16 21:47:05 -08:00
Evan Simkowitz 2e3e07d24b Update to latest CodeQL workflow actions (#235) 2024-01-16 21:34:22 -08:00
sawka e2d0664901 split workflow steps 2024-01-16 21:27:49 -08:00
sawka 5638e7857b add go mod download 2024-01-16 21:09:02 -08:00
sawka 6c9dbabd56 reorder job steps 2024-01-16 21:01:36 -08:00
sawka 13cd9dfe50 bump to version v0.6.0, testing linux in build workflow 2024-01-16 20:37:46 -08:00
Evan Simkowitz 6fa799daf5 Add ref to filter out downloads due to upgrade notification (#233) 2024-01-16 16:11:37 -08:00
Mike Sawka 422338c04b zsh support (#227)
adds zsh support to waveterm.  big change, lots going on here.  lots of other improvements and bug fixes added while debugging and building out the feature.

Commits:

* refactor shexec parser.go into new package shellenv.  separate out bash specific parsing from generic functions

* checkpoint

* work on refactoring shexec.  created two new packages shellapi (for bash/zsh specific stuff), and shellutil (shared between shellapi and shexec)

* more refactoring

* create shellapi interface to abstract bash specific functionality

* more refactoring, move bash shell state parsing to shellapi

* move makeRcFile to shellapi.  remove all of the 'client' options CLI options from waveshell

* get shellType passed through to server/single paths for waveshell

* add a local shelltype detector

* mock out a zshapi

* move shelltype through more of the code

* get a command to run via zsh

* zsh can now switch directories.  poc, needs cleanup

* working on ShellState encoding differences between zsh/bash.  Working on parsing zsh decls.  move utilfn package into waveshell (shouldn't have been in wavesrv)

* switch to use []byte for vardecl serialization + diffs

* progress on zsh environment.  still have issues reconciling init environment with trap environment

* fix typeset argument parsing

* parse promptvars, more zsh specific ignores

* fix bug with promptvar not getting set (wrong check in FeState func)

* add sdk (issue #188) to list of rtnstate commands

* more zsh compatibility -- working with a larger ohmyzsh environment.  ignore more variables, handle exit trap better.  unique path/fpath.  add a processtype variable to base.

* must return a value

* zsh alias parsing/restoring.  diff changes (and rtnstate changes).  introduces linediff v1.

* force zmodload of zsh/parameter

* starting work on zsh functions

* need a v1 of mapdiff as well (to handle null chars)

* pack/unpack of ints was wrong (one used int and one use uint).  turned out we only ever encoded '0' so it worked.  that also means it is safe to change unpack to unpackUInt

* reworking for binary encoding of aliases and functions (because of zsh allows any character, including nulls, in names and values)

* fixes, working on functions, issue with line endings

* zsh functions.  lots of ugliness here around dealing with line dicipline and cooked stty.  new runcommand function to grab output from a non-tty fd.  note that we still to run the actual command in a stty to get the proper output.

* write uuid tempdir, cleanup with tmprcfilename code

* hack in some simple zsh function declaration finding code for rtnstate.  create function diff for rtnstate that supports zsh

* make sure key order is constant so shell hashes are consistent

* fix problems with state diffs to support new zsh formats.  add diff/apply code to shellapi (moved from shellenv), that is now specific to zsh or bash

* add log packet and new shellstate packets

* switch to shellstate map that's also keyed by shelltype

* add shelltype to remoteinstance

* remove shell argument from waveshell

* added new shelltype statemap to remote.go (msh), deal with fallout

* move shellstate out of init packet, and move to an explicit reinit call.  try to initialize all of the active shell states

* change dont always store init state (only store on demand).  initialize shell states on demand (if not already initialized).  allow reset to change shells

* add shellpref field to remote table.  use to drive the default shell choice for new tabs

* show shelltag on cmdinput, pass through ri and remote (defaultshellstate)

* bump mshell version to v0.4

* better version validation for shellstate.  also relax compatibility requirements for diffing states (shelltype + major version need to match)

* better error handling, check shellstate compatibility during run (on waveshell server)

* add extra separator for bash shellstate processing to deal with spurious output from rc files

* special migration for v30 -- flag invalid bash shell states and show special button in UI to fix

* format

* remove zsh-decls (unused)

* remove test code

* remove debug print

* fix typo
2024-01-16 16:11:04 -08:00
Red J Adaya 76988a5277 "Escape" should close/cancel most modals (#229)
* init

* client settings view

* close and escape support for connections view

* close and escape support for clientsettings view
2024-01-15 12:16:46 -08:00
Red J Adaya da69c0411d Move the Client Settings Modal into its own "main view" (#226)
* init

* client settings view

* add some extra padding and a border below the header

* move settings-field classes under the main class to prevent conflicts

* fix style overrides
2024-01-15 12:08:58 -08:00
Evan Simkowitz ff65a3f042 Bump electron to version 28 (#225)
* Bump electron to version 28

* update electron-forge
2024-01-11 19:08:17 -08:00
Evan Simkowitz d431ac1ecf Upgrade to Typescript 5, along with a bunch of other minor bumps (#224)
* Bump electron and dependencies

* upgrade typescript and webpack

* upgrade remaining outdated

* bump node types
2024-01-11 18:57:15 -08:00
dependabot[bot] f8024799ed Bump follow-redirects from 1.15.3 to 1.15.4 (#222)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-11 18:31:07 -08:00
Evan Simkowitz ebdf8b5aee Remove unused and unmaintained react-json-view (#223) 2024-01-11 18:28:21 -08:00
Evan Simkowitz ed2a345555 Add support for opening web links in the default browser (#221)
* Add support for opening web links in the default browser

* require modifier key to click

* undo emain change

* remove newline
2024-01-11 17:49:13 -08:00
Cole Lashley ea3be8115a Chat GPT Command Info Chat (#207)
* first draft at ui

* first draft connecting openai to cmd info ui

* added more updates and added prompt engineering

* focus textarea on mount

* fix aichat layout issue

* added focus back to input after closing cmd info chat

* added ability to clear chat history, closes on command enter, better initial greeting message, and small things like user can refocus the help textarea by pressing ctrl + space again

* added a bunch of small upgrades

* added context for chatgpt info command

* added context to chatgpt cmd info command

* added ability to use arrow keys to grab code markdown

* added error handling as well as fixed the text area outline bug

* slightly changed the ui for selecting

* revamped ui and added correct scroll behavior

* changed ui, fixed up code block selection, some other small changes

* deep copied cmd info chat when we return

* added error checking and removed logs

* made deep copy code more clear

* prettier with the right version

* more prettier changes

* removed extraneous comment
2024-01-11 17:34:23 -08:00
Red J Adaya 077cb2be03 Split up modals.tsx file (#220)
* init

* diconnected and clientstop modals

* alert and createremoteconn modals

* tabswitcher, view and edit remoteconn modals

* migrate clientstop modal to Modal

* LinkButton

* import styles for createremoteconn modal

* import tabswitcher modal styles

* disable buttons while status is 'connecting'

* minor refactor

* apply changes to viewremoteconn modal from main
2024-01-11 09:42:03 -08:00
Red J Adaya 8f39f0fc5e Add a modal confirmation before installing WaveShell (#212)
* init

* integrate showShellPrompt flag

* renive debugging code

* remove debugging code

* run gofmt. add migration files.

* remove debugging code

* remove migrations and adjust code. show prompt on import ssh configs as well.

* fix show/hide logic

* reset mmap.go

* use resolveBool and utilfn.ContainsStr

* make AlertModal take a generic 'confirmkey' instead of hard coding hideShellPrompt

* rename confirmkey to confirmflag (to be consistent).  move confirmflag checking into the alertmodal.  short circuit with Promise.resolve(true) if noConfirm checked.

* disable buttons while status is 'connecting'

* minor refactor
2024-01-10 15:00:18 -08:00
Sylvie Crowe 00e709d515 reload ssh config files when importing them (#219)
The ssh_config library only loaded the config data the first time
certain functions are used. After that, cached values are used instead.
This library has been updated in a fork to add a method that allows the
configuration files to be reloaded. This update takes advantage of that
change so the config files can be updated without restarting waveterm.
2024-01-09 18:04:19 -08:00
Sylvie Crowe c2a894b280 SSH Configuration Import Alert Modal (#218)
* add an alert modal for the sshconfig import button

When the sshconfig import button is pressed, there currently is no
visual indicator of what changed. This adds an alert modal to pop up
only in the case where the gui button is used.

* improve alert modal for sshconfig imports

The previous message for SSH configuration imports was vague and did not
provide detailed information as what happened during the import. This
clarifies that by specifying which remotes were deleted, created, and
updated. Updates are only ran and recorded if they would actually change
something.

* fix port value limiting

The SSH config import port limiting was correct but set off a warning in
linters. It has been updated to do the same behavior in a different way.

Also, port limiting was never added to manually adding a new remote.
This change adds it there as well.

* change user-facing term to connection

Previously, the ssh configuration alert modal used to use the word
"remote" to describe connections. "Remote" is the internal name but it
isn't consistent with what is being displayed to users. So it has been
replaced with "Connection" instead to match.

* change remote to connection for ssh import buttons

Like the previous change, the word "remote" was used instead of
"connection." This was for the tooltips added to connections that had
been imported in the connections menu.

* update one more remote -> connection
2024-01-09 16:13:23 -08:00
Mike Sawka fad48b0d09 bind cmd-w to delete a screen (with a confirm message). also fix 'esc' so it closes the alert modal with a 'cancel' (#215) 2024-01-08 22:59:17 -08:00
Mike Sawka 8ac1943d56 Add Icon / HotKey to Delete Line (Cmd-D) (#214)
* work on cmd-d to delete a selected line

* call stoppropagation when code.tsx captures keyboard input

* finish up with line delete.  add a trash icon to line.  prevent delete when cmd is running (show error msg)
2024-01-08 22:58:32 -08:00
Red J Adaya f6a6068674 Connection Screen Terminal "Flash" Making it Impossible to Enter Manual Passwords (#217)
* fix flashing view modal

* cleanup

* fix name typo, also unset setRecentConnAdded once the modal is open
2024-01-08 22:56:49 -08:00
Sylvie Crowe e1e5b67ff6 I18n fixes (#211)
* remove byte sanitization for user commands

When serializing jsonBytes in packet.go::MarshalPacket, a step existed
that attempted to manually sanitize the bytes before sending them. This
was initially done to avoid invalid characters in json; however, go
should handle this for us. But this sanitization broke
internationalization because it excluded characters required for unicode
in other languages. Because of that, it has been removed.

* properly decode non-ascii on frontend

The functions atob and btoa do not convert base 64 to strings in the
expected way. The base64ToArray function handles it properly but other
cases do not. These other cases have been replaced with a helper
function that makes use of the base64-js package. This package has
already been included as a dependency of another package we use, but it
was added to the package.json file to make the inclusion explicit.

* automatically set/share LANG var with waveshell

Waveterm previously did not set the LANG environment variable which
caused problems for international users. On Linux, this is done
automatically, but it needs to be done manually on macos.

Even on linux, the wavesrv LANG variable is shared with waveshell to
ensure the same one is used on remotes.

* only set the lang var if not previously set

In order to prevent waveterm from overriding the lang var entirely, this
ensures that it is only manually determined if it hasn't previously been
set.

* use envMap instead of os to determine var

This is slightly more performant and relies more directly on our code
instead of external code.
2024-01-08 18:31:17 -08:00
sawka 0bb80b6a74 run both mac builds 2024-01-08 00:35:38 -08:00
sawka 631a0867aa fix go cache dependency 2024-01-08 00:28:54 -08:00
sawka 5bd7f73746 updates to build workflow 2024-01-08 00:12:07 -08:00
sawka ed1dff320d upload build artifact 2024-01-07 23:58:46 -08:00
Mike Sawka 7f91efc314 working on a macos x86 build workflow (#216)
must check in to main to test
2024-01-07 23:48:10 -08:00
sawka f737c2af86 add autofocus prop to button 2024-01-07 00:30:25 -08:00
Sylvie Crowe 8cbee1e1c3 Allow dots in alias and add port to canonical name (#209)
* allow numerical start and allow dots in ssh alias

We previously restricted the ssh alias to start with an
alphabetic character and did not allow dots within it. This caused
problems with users wanting to use an ip address as an alias. This lifts
that restriction so both can freely be used.

Note that while it is common to use the hostname as the alias, hostnames
are not allowed to use the underscore character. However, we do allow
the alias to contain an underscore. I do not think we can remove this
from aliases now but it is something to watch out for in the future.

* allow backslash in username

This involved converting the regexp string into a raw string to able to
use the backslash character. this is important.

* Revert "allow backslash in username"

This reverts commit cafe2812411cfba15b7ece1250a6def29d092366. Upon
reflection, more time is needed to evaluate that this actually corrects
the issue. It will be performed with proper diligence at a later time.

* add port to end of canoncial names when not 22

The canonical name is the identifying key in the database, so it causes
problems if another remote entry has the same canonical name. By adding
the port number to the end of this, it is possible to differentiate the
two.

* add db migrations for adding port to canonicalname

The up migration adds the port to the existing canonical id if it exists
and is not 22. The down migration strips the port off the canonical name
and deletes extra remotes with the same canonical name. If all remotes
with that canonical name have been archived, it keeps the first one
added to the database. If any have not been archived, it keeps the first
added to the database from the non-archived group.

* remove ability to edit port number via ssh import

Previously, ssh imports could edit the port number since it was possible
to change them in the config file without changin the canonical name.
Now that the canonical name contains the port, a change in the port will
simply create a new database entry. For this reason, the ability to
modify the ssh port is dead code and has been removed.

* allow backslash in username

This involved converting the regexp string into a raw string to able to
use the backslash character. this is important.

* simplify up migration logic

The previous up migration was suboptimal because it was accounting for a
corner case not found in production. That case no longer needs to be
considered, so the procedure was simplified.
2024-01-04 10:16:26 -08:00
Red J Adaya b2a1bb3818 When client is disconnected change log to show last 50 lines of wavesrv.log (#210)
* improved disconnected modal

* wrap pre with div

* make number of a lines param a constant

* revert app.tsx

* use tail command and capture the output instead

* reset TabSwitcherModal
2024-01-04 10:13:40 -08:00
Sylvie Crowe d1319c0a2c Fix Commands that Require Quoted Paths (#198)
* fix commands that require quoted paths

Several commands did not wrap the path in quotes which caused problems
when attempting to store the waveterm installation in a place that had a
space in the path. This corrects this in the particular case where the
username does not have spaces but the path to the executable does.

Note: the case of a user name having spaces has not been tested but
likely does not work.

* fix logging problem for wavesrv

A previous fix replaced the getWaveSrvCmd with getWaveSrvPath. This
needs to be getWaveSrvCmd to enable logging.

* fix variable name
2023-12-30 22:52:30 -08:00
Red J Adaya 2c9272e3a7 fix tabs scrollbar jump (#203) 2023-12-30 22:42:46 -08:00
Red J Adaya 452836bffc Cmd-P feature -- Quick Tab Selector (#200)
* register cmd+p shortcut

* tab switcher modal

* initial implementation

* tab switcher modal content

* fix styles

* fix scroll bugs

* set selected index when clicking option

* hover effect for options

* switch when Enter key is pressed

* remove fuse.js

* only use switchscreen for switching sessions and tabs

* var naming changes

* fix multiple focused options on mouse hover

* fix duplicate focused options and scrollbar

* clean imports

* fix wrong function name

* merge color styles in app.less

* remove debugging code

* use For component when iterating thru options

* minor style fix

* remove mouse interaction, keep focusedIdx in bounds, increase max number of tabs shown, small layout adjustment for big tab names (and more space for icon)
2023-12-30 22:34:05 -08:00
Sylvie Crowe 8d88e2cf94 ssh config import (#156)
* create migrations for required database change

This is a first attempt that does not appear to be working properly. It
requires review.

* fix errors in db migrations

The previous commit had an extra json call that broke the update and did
not remove the imported interies during a downgrade.

* change migrations to use column instead of json

It makes more sense to associate the source of a config with the remote
type than the sshopts type. This change makes that clear in the database
structure.

* ensure adding a remote manually tags correctly

Using the usual way of adding a remote should result in a sshconfigsrc
of "waveterm-manual". This will be important for filtering out remotes
installed manually and remotes installed via import

* create basic structure for parsing ssh config

This entails creating a new command, making it possible to query only
the imported remotes from the database, and implementing the logic to
handle all of the updates needed.

This needs improvements in a few areas:
- the /etc/ssh/config needs to be parsed as well
- the logic for editing exisiting imported remotes needs to be written
- error handling needs to be improved
- update packet responses need to be provided

* add sshkey support and implement editing

We now search for the ssh identity keyfile and add it if it is found.
Additionally, the logic to edit previously imported ssh hosts has been
added.

* combine hosts from user and system ssh config

We now check both the user ~/.ssh/config as well as the /etc/ssh/config
for hosts. This loops through each file starting with the user one. For
each host, it selects the first pattern without a wildcard and chooses
that to be the alias. If any future hosts are found to have the same
alias, they are skipped. Errors are raised if neither config file can be
opened or no aliases were found.

* improve logging and error reporting

Error reporting is now shortcircuited in cases of individual remotes in
order to allow the other remotes to continue. These errors are now
printed to logs instead.

* allow imports to edit ssh port

Previously, ssh ports could not be edited after the fact. Unfortunately,
this can cause problems since the port can be changed in an ssh config
file. To address this, we allow imports to change the port if a host
with the same canonical name had previously been imported.

* fix response to parse command

* fix error handline for alias parsing

Small mistake of checking for equality instead of inequality

* fix the ability to overwrite hostName with alias

if ssh_config does not find Hostname, it won't output an error. Now we
compare against the result instead of looking for an error.

* fix the error catching for User and Port

This fixes the same problem where parsing the config doesn't give an
error in the case when nothing is found. As before, this checks for a
blank result instead.

* remove unused code

* remove repeated canonical name check

The logic that checks for an existing canonical name already exists in
the AddRemote function, so it is not needed here.

Secondly, we now only allow edits of previously created remotes if they
have not been archived. If they have, the usual logic for creating a new
remote takes precedence.

Lastly, there is no need to archive a remote that has already been
archived so an additional check has been added.

* allow archives to preserve the SSHConfigSrc

* add log message for archiving of imported remotes

* create variables for string variants

Matches existing code style

* add cleanup for opened files

* move migration 25 to migration 26 (already merged a migration 25)

* fix RemoteRuntimeState in ModelUpdate by moving type to sstore.go.  Fix some bugs in remote:parse.  Fix key/identityfile, return value, and remote editing (should go through msh).  remote sudo.  add info messages around parse status

* fix issue with archiving the sshconfigsrc

A bug in RemoteType's FromMap caused the loss of sshconfigsrc during the
conversion. This has been corrected and the schema has been updated.

* fix order of archiving removed imported remotes

Previously, if the canonical name changed, the code would try to create
a new remote before archiving the old one. This did not work if the
alias didn't change. Now we archive first and add a new remote after.

* fix ability to change port when importing config

Importing from sshconfig needs to allow the port to change. This was not
happening because of a bug that has been corrected.

* always use host in place of hostname

Since host is the key actually searched for in the ssh config file,
searching for user@hostName may not actually work. To avoid this, we now
always use user@host instead.

* automatically determine ConnectMode

This aims to select a connection mode based off what is provided in the
ssh config file. It aims for auto connections when possible but will
fall back to manual if we can't easily support it

* remove sshkeysource migration number confilict

Previously had conflicting migration numbers of 26. The change not in
the main branch has been moved to 27 to remove the conflict.

* move sshkeysource migration to migration 28

* add WaveOptions flag parsing for ssh config

This is currently being used to allow users to force manual connect mode
if desired. It will also be used to force skipping options in the future
but that is not complete in this commit.

* implement ignore flag for ssh config parsing

The ignore flag will now archive an imported remote if it previously
existed and not create a new remote in its place.

* fix discovery of identity file

Previously, a ~ in the identity file's path was not expanded to the home
dir. Because of this, files with a ~ were previously identified as
invalid files. By expanding it during the search, this is no longer the
case.

* disable frontend edit button for imported remotes

Imported Remotes should not be editable in waveterm by users. This edit
makes it clear that the button will not work for those cases. Further
edits may be needed to explain why it doesn't work and what to do
instead.

* add backend rejection of updating imported remote

As before, we don't want manual editing of an imported remote inside the
app. This ensures that it can't happen on the backend.

* create tooltips for sshconfig edit/delete buttons

For remotes that are imported, edits are not allowed. This adds a
tooltip that explains what to do instead.

Deleting remotes that are imported is allowed, but they will come back
if the user imports again. The tooltip explains a way to avoid this.

* add logo after name for imported remotes

In the connections screen, there previously was not a way to tell
imported connections from manually created connections. This change adds
a logo after the imported ones to differentiate them.

* small formatting updates

* add import tooltip to connection modal

Added the logo for an imported config to the connection modal. It also
provides a short description when it the mouse hovers over it.

* add button to import ssh config

Make the command into a button for a simple gui interface.

Also ran prettier to clean up some syntax.

* remove strict casing on WaveOptions

WaveOptions was previously very specific about the casing of the ignore
and connectmode subcommands. With this update, the casing is
automatically converted to lowercase and can be ignored.

* add status dot before name in connections screen

* add space and tooltip to connection imported icon

* re-prettier
2023-12-28 11:09:41 -08:00
Mike Sawka 2f7cce294c big update to screen/session delete, and clear (#199)
* sync schema.sql with running schema

* remove incognito field from history table. also don't add empty FeState vars

* history updates, add festate, durationms, exitcode, status, and tags into history table

* update screen/session delete, and clear to no longer purge history items.  move deleted screens/sessions into a tombstone table.

* update schema

* fix alias -> fn

* quiet the security warning about an unchecked byte conversion. no real security issue here, but add a range check for good measure.
2023-12-27 13:11:53 -08:00
sawka 01074af129 fix warnings in waveshell 2023-12-26 15:03:17 -08:00
Mike Sawka 6a1b2c8bd4 Screen MemStore (#197)
* working on an in-memory store for screen information

* nostrpos sentinel

* textareainput now tracks selection (to update backend)

* make websocket connections much safer.  add a defer/panic handler for each ws message handled on backend.  don't allow client to reconnect to backend ws handler more than once per second (handles issue with lots of fast fails)

* use onSelect to have frontend textarea sync state to backend ScreenMem store

* restore cmdline when switching screens

* prettier
2023-12-26 12:59:25 -08:00
Evan Simkowitz 9980a6b204 Display open-source license acknowledgements (#193)
* Add script to generate license disclaimers for all dependencies

* update readme

* Upload current acknowledgements

* Add acknowledgements link to about, remove unnecessary width setting

* revert gitignore

* update readme wording

* i was wrong, we can output for both backend mods at the same time

* update wording

* remove license button in about modal (replaced with acknowledgements)
2023-12-24 11:41:51 -08:00
Red J Adaya 019eaecdaa Immediately hide modal when deleting workspace (#187)
* immediately hide modal when deleting workspace

* only pop modal when purging is successful
2023-12-23 12:31:11 -08:00
Red J Adaya de9c029ba8 ScreenTabs refactor (#182)
* inital implementation

* cleanup

* ui jump fix

* fix wrong first tab top right border radius

* add comment

* remove react.fragment.  only do initial screens populate on componentDidMount, rename this.scrollIntoViewTimeout (add Id to distinguish from state.scrollIntoViewTimeout).

* clean up some imports

* use single tabRef
2023-12-22 19:14:48 -08:00
Evan Simkowitz e7725e0e11 Clean up cirfile and cirfile_tests, ensure we are using contexts with cancellation signals (#183)
* Fix unvalidated path warning in cirfile.go

* Adding test

* move dir path vars into global scope, set wave home in test if not set already

* separate validation code into own testable func

* do removal of cir file in cleanup

* rename test file names

* flock should return err if waiting without done fn

* update comment

* use timeout context

* remove redundant validation

* add more error messages

* use filepath.join instead

* validate when creating cirfile too

* support .ptyout.cf, etc.

* remove validation as cirfile is "trusted", since it only accepts pre-validated input

* revert to passing nil context for flock in the Create file case
2023-12-22 18:07:58 -08:00
Evan Simkowitz 092a8de715 Escape error output in main-server to quiet security alert (#185) 2023-12-22 17:55:20 -08:00
sawka c56ee23843 add lines to ignored variables 2023-12-21 14:32:27 -08:00
sawka 19e856a3be bump version to 0.5.3 2023-12-21 12:31:54 -08:00
sawka 8246f8118e bump to v0.5.3 to fix #174 2023-12-21 12:30:57 -08:00
Red J Adaya 75d1a435ae fix missing session ID (#178) 2023-12-19 16:18:44 -08:00
Mike Sawka 426f9546e5 fix connection edit modal (#170)
* fix connection edit modal

* apply prettier
2023-12-18 23:28:49 -08:00
sawka d410e5d07f add keys to force new components whenever workspaces changes 2023-12-18 21:47:01 -08:00
sawka e66f34c9b5 upgrade go crypto library 2023-12-18 20:45:00 -08:00
sawka 58e971276e minor fixes 2023-12-18 20:41:15 -08:00
Cole Lashley 2d08037782 Fixed open ai renderer not scrolling correctly (#165)
* added scrolling to open ai renderer css

* fixed max width

* small fixes - added max width - added padding - fixed flex issue
2023-12-18 17:20:13 -08:00
Evan Simkowitz 226699732d Run release check in the background when toggling the setting (#169)
* Run release check in the background when toggling the setting

* change var name

* use new err variable
2023-12-18 17:19:11 -08:00
Evan Simkowitz 03b1e410e7 Small tweak to the checkbox toggle slider (#168) 2023-12-18 16:41:35 -08:00
Mike Sawka 38c784bf8e sidebar render delay of 0.5s, and a 0.5s transition on main window width (#167)
* sidebar render delay of 0.5s, and a 0.5s transition on main window width

* fix width calculation and how we apply the buffer width for sidebar

* also add the model.ts change
2023-12-18 16:40:26 -08:00
Sylvie Crowe 40af311e5b remove handleKeyDown for NumberField (#166)
handleKeyDown was a method that filtered out specific keypresses if they
weren't specific keycodes. This did not play well with all keyboards
which made it impossible to enter port numbers. furthermore,
handleInputChange should already filter out non-numeric characters, so
the filtering still works properly with this removal.
2023-12-18 16:03:51 -08:00
Evan Simkowitz 112fda912f Modify "Check for Updates" setting name (#164) 2023-12-18 15:28:35 -08:00
sawka f2eb383cc3 add special case for conda activate/deactivate as well to rtnstate detection 2023-12-18 15:07:13 -08:00
sawka 8d71f5538c update rtnstate detection, support blocks, and binary expressions 2023-12-18 15:02:55 -08:00
sawka 7a37fdb942 create new contexts for goroutine calls 2023-12-18 14:41:53 -08:00
sawka 80f7162691 dont scroll main view when selecting line in sidebar 2023-12-18 14:11:04 -08:00
Mike Sawka a639d72e30 Packetparser Ignore Spurious Invalid Input at Beginning of Stream (#140)
* take a stab at fixing #99. ignore invalid output before we see a real packet.  the complication here was ensuring we always output a real packet in every flow so we don't actually lose valid errors.

* add ping packets to prime the parser (when in ignoreUntilValid mode)
2023-12-18 12:42:40 -08:00
sawka ce252d479b fix id issue -- must use a unique id for tabs so we don't get collisions on real elements in the CSS 2023-12-18 00:16:57 -08:00
sawka d8d19ea035 bump to version v0.5.2 2023-12-17 23:58:09 -08:00
Mike Sawka 21ab82e2e2 Implement a Sidebar for Tabs (#157)
* work on basic sidebar layout

* fix more golang warnings

* sidebar open/close

* add ability to set width of split

* sidebar add and remove, set width, etc.

* almost working sidebar implementation -- still needs height/width, input control, and bug with initial add, but getting there

* add isSidebarOpen() method

* fix resize jump -- must set width in error handler as well (before window is loaded)

* sidebar UI touchups and help

* more sidebar progress, render more like regular lines, just in the right column

* merge

* move migration to 26

* simplify sidebar types

* checkpoint

* proxy things through parent screen object for sidebar

* checkpoint, add/remove from sidebar

* work on add/remove icons for sidebar

* fix height calculation, remove close button

* bring back close button when no line is selected

* add sidebar flag to run command to run new command output in sidebar

* implement 'sidebar' kwarg in eval.  this lets sidebar work for slashcommands as well that produce lines (codeedit, mdview, etc.)

* prettier

* minor fixes

* working on resizing.  must exclude sidebar entries and send separate resize events based on size of sidebar (implement exclude / include for resize)

* fix sidebar terminal command resizing

* add sidebar header (toggles for half/partial width and close).  add hotkey to open/close sidebar (Cmd-Ctrl-S).  more robust calculation for sidebar width. add width validation.  minimum sidebar width is 200px.  other fixes, etc.
2023-12-17 23:46:53 -08:00
sawka 781ebe8154 add checking for latestversion (avoid potential error in semver.compareLoose) 2023-12-16 11:36:38 -08:00
sawka ad225ed28a fix some ts errors in emain.ts 2023-12-16 10:59:30 -08:00
Mike Sawka 633cb8fbd0 fix openai packets to be PacketType. better compatibility with backend (#154)
also pass clientid to openapi cloud service
2023-12-15 22:43:59 -08:00
Cole Lashley 4ccd62f12a Add support for proxying open AI chat completion through cloud (#148)
* wrote client code for communicating with lambda cloud

* Added timeout functionality, added check for telemetry enabled for clouod completion, added capability to unset token, other small fixes

* removed stale prints and comments, readded non stream completion for now

* changed json encode to json marshal, also testing my new commit author

* added no telemetry error message and removed check for model in cloud completion

* added defer conn.close() to doOpenAIStreamCompletion, so websocket is always closed

* made a constant for the long telemetry error message

* added endpoint getter, made errors better

* updated scripthaus file to include dev ws endpoint

* added error check for open ai errors

* changed bool condition for better readability

* update some error messages (use error message from server if returned)

* dont blow up the whole response if the server times out.  just write a timeout message

* render streaming errors with a new prompt in openai.tsx (show content and error).  render cmd status 'error' with red x as well.  show exitcode in tooltip of 'x'

* set hadError for errors.  update timeout error to work with new frontend code

* bump client timeout to 5 minutes (longer than server timeout)

---------

Co-authored-by: sawka
2023-12-15 22:20:03 -08:00
Evan Simkowitz b733724c7d Add sidebar banner when new release is available (#147)
* Server impl

* add update check setting

* add commands

* fix capitalization of commands

* apply suggestions

* add migration and fix backend bugs

* Add sidebar banner

* remove installedversion, add 5s timeout

* add icon, capture and log errors from release check

* missing return nil

* remove highlight

* remove commented less

* do not fail releasecheckoncommand if release check operation fails

* remove debug condition

* fix update on auto check, move banner display logic into frontend

* remove unnecessary import

* simplify null check

* clean up the invoking of the releasechecker
2023-12-15 17:43:54 -08:00
Red J Adaya 4ff5dcf1e0 fix mouse scroll (#151) 2023-12-15 16:15:45 -08:00
Red J Adaya f9d0e63d0c delete screen immediately when there are no lines in it (#152) 2023-12-15 15:40:34 -08:00
Red J Adaya ea9cb37de1 drag and drop support for tabs (#146)
* back-end implementation. initial ui implementation

* rough implementation of drag and drop

* wrap with AnimatePresence

* persist screen order

* cleanup

* return all screens when updating indices

* remove y axis anitation

* remove debugging code

* chain filtering and sorting logic

* remove unused var

* fix issue where tabs shift to left on hover

* fix tabElem scroll into view regression

* clear scrollIntoViewTimeout when component unmounts

* remove borken style prop

* completely remove animation related props

* scroll into view only when there's a new tab

* minor comment fix

* resolvePosInt() to resolve index

* move tab width const to magiclayout.ts

* move back scroll into view code as it was before

* clear timout

* refactor setTimeout

* remov debugging codes

* format cmdrunner.go

* move clearTimeout

* remove wheel event listener
2023-12-14 21:50:47 -08:00
Mike Sawka 8200a312b9 On MacOS allow UserShell to override /bin/bash (#137)
* switch emain to using the bash from PATH, not defaulting to /bin/bash.  not convinced this fixes #132 yet because the PATH set for MacOS applications is not set from .bash_profile or .zprofile.  those seem to be set with launchctl setenv.

* move MacUserShell() func to shexec.  use dscl UserShell output as bash path on MacOS when present.  fixes #132
2023-12-14 21:45:27 -08:00
Evan Simkowitz 3b65e9941a Clean up potentially unsafe external links (#139)
* Clean up potentially unsafe external links

* fix broken imports

* fix error in conditional

* fix one more typo
2023-12-13 17:43:30 -08:00
Cole Lashley 535fd0d7d9 added openaibaseurl parameter to client:set (#141) 2023-12-13 14:03:22 -08:00
Evan Simkowitz 96980b2f83 Merge pull request #138 from wavetermdev/evan/codescan-fixes
Fix potential overflow in promptenc arithmetic
2023-12-12 21:01:09 -08:00
sawka b6c880c6ff add 'cmd' parameter to /api/run-command for debugging purposes (easier filtering and visual inspection of run-command calls) 2023-12-12 20:37:00 -08:00
Evan Simkowitz 1feffc8a11 address comment, clean up tests 2023-12-12 20:36:16 -08:00
sawka f442236679 fix performance issue where cmdinput was causing additional loading of screenlines 2023-12-12 20:36:11 -08:00
Evan Simkowitz 414937911e remove nolint 2023-12-12 17:40:05 -08:00
Evan Simkowitz 5d39815dea refactor a bit 2023-12-12 17:39:19 -08:00
Evan Simkowitz 96f636c2da Fix potential overflow in promptenc arithmetic 2023-12-12 16:51:19 -08:00
Evan Simkowitz 112d002c2a Merge pull request #136 from wavetermdev/esimkowitz/codeql
Configuring CodeQL scanning workflow
2023-12-12 15:53:24 -08:00
Mike Sawka 4adcf6d92e pass flexrows through to packet.TermOpts so it gets back to the FE correctly. this fixes wterm overrides and github issue #116 (#134) 2023-12-12 14:24:09 -08:00
Sylvie Crowe e79dcaf910 fix ability to log into ssh with key and password (#130)
* fix ability to log into ssh with key and password

A previous refactor to the ssh password system broke the ability to use
key+password to log in. This change handles key+password as a special
case allowing it to be handled separately.

* clean up unnecessary print

My last change left in a debug print that wasn't necessary in the code.
This has been removed.
2023-12-12 14:17:53 -08:00
Evan Simkowitz e6186cd694 Fixing linting errors in unused keygen function (#135)
* Fixing missing parameter error in unused keygen function

* applying error formatting linter suggestions

* fixing more linting suggestions
2023-12-12 14:17:03 -08:00
Evan Simkowitz 58551d6a2a Configuring CodeQL scanning workflow
Configuring the default CodeQL scanning workflow. This will automatically scan our code for known vulnerabilities.
2023-12-12 10:17:55 -08:00
Mike Sawka 2b8adfe40e add homebrew instructions to readme 2023-12-10 13:33:06 -08:00
sawka ce4b6d413c fix remaining warnings in workspace 2023-12-08 13:39:13 -08:00
Red J Adaya 8a938744f7 migrate modals to new modals system (#124)
* migrate screen settings modal to new modals system

* use screen member var in the methods

* migrate session settings modal to new modal system

* use Modal component in session settings modal

* migrate line settings modal to new modals system

* use Modal component in line settings modal

* migrate client settings modal to new modals framework

* set alert modal width to 500px

* remove screen settings modal after deletion

* use Dropdown component for connnections dropdown

* use Dropdown component for connections dropdown in new tab flow

* replace InfoMessage with Tooltip

* use Dropdown for fontsize dropdown

* use Dropdown for renderer dropdown

* fix dropdown width issue on new tab container

* fix class names concatenation

* fix dropdown width issue in screen settings modal
2023-12-07 22:51:46 -08:00
Sylvie Crowe 87bf3f7a65 allow @ symbol in user for ssh connections (#129)
* allow @ symbol in user for ssh connections

Previously, the @ symbol was only used as a way to either:
- separate the user from the host
- separate "sudo" from the user

This change expands this to allow the username part of
sudo@username@host or username@host to contain any number of @ symbols
in addition to the ones previously allowed. Host is not allowed to
contain an @ symbol as per the usual definition.

* clean up regex changes

Moved the dash in the regex pattern to the end to make it explicitly
clear that it isn't part of a range.

Removed the hostNameRe regex as it is unused.
2023-12-07 18:33:16 -08:00
sawka 800fda2e14 we use yarn, so remove package-lock.json 2023-12-05 20:54:12 -08:00
sawka 3c30eb4e08 upgrade some outdated packages 2023-12-05 17:44:44 -08:00
sawka 32a825aea1 move force install to main connection screen, remove edit/delete from edit screen 2023-12-05 17:42:43 -08:00
sawka 0ece51e690 remove more go warnings 2023-12-05 10:49:30 -08:00
sawka 724a68393a fix some go errors/warnings 2023-12-05 10:43:57 -08:00
Sylvie Crowe 6791d874e3 Add Waveterm Icon to Linux (#120)
* add icon for Linux

The app icon previously did not show up in Linux. This change fixes that
by providing the wave-logo-dark.png to the electron Browser Window.

* set the icon to only use the direct path on linux

The previous change was only required on linux and not on mac. This
ensures the old behavior will continue to be done on mac while using the
new behavior on linux.
2023-12-04 22:47:01 -08:00
Alan Hanafy a3187a1235 Fix typo in command history button label (#115) 2023-12-04 18:40:20 -08:00
Red J Adaya 9ebd5bda8f TOS Modal (#123)
* register tos modal and fix its styles

* hard-code render TOS modal in ModalsProvider

* cleanup

* remove tos const
2023-12-04 18:29:21 -08:00
sawka c8485ad80c upload dark background logo, bump version in build-universal to v0.5.1 2023-12-04 10:27:08 -08:00
sawka dbde4b58df bump package.json to v0.5.1 2023-12-04 10:09:47 -08:00
sawka 7280bbf9d9 update outdated packages 2023-12-04 10:04:48 -08:00
Mike Sawka 08762fdfc3 Merge pull request #119 from wavetermdev/dev-0.5.1
pull dev-0.5.1 branch to main
2023-12-04 09:55:11 -08:00
Red J Adaya 0c756838e0 Tab Settings (#117)
* use Modal component

* icons selector

* do not limit icons in the backend
2023-12-04 09:52:59 -08:00
Sylvie Crowe 7310481383 Add a button to filter out non-running commands (#113)
* add filter button to the command input box

This will become a button that temporarily filters out the non-running
commands from your screen. At the moment it is only a placeholder design
that will likely change with more feedback. It does not have any
functionality at the moment.

* add view indication of active filter

This will become a clickable notification to let users know that a
filter is being applied. It displays the number of lines that are being
filtered. The plan is for it to be clickable to remove the filter. The
current version is a placeholder that is likely to change. It has no
functionality at the moment.

* add basic state to the filtering buttons

The filtering buttons up until this point haven't done anything. Now
they can be clicked and unclick causing them to render differently
depending on if they're selected. They still have no functionality
outside of their own appearance.

* add filtering functionality to filter button

The filter button now hides all non-running commands. And pressing it
again or pressing the other filter button will bring
back the hidden commands.

There are currently some formatting issues with the second button as it
jumps to the top of the screen if the filter is on and no running
commands are present.

An additional change was made to remove a variable accidentally
introduced in the last commit.

* add count for number of lines filtered out

The secondary filter button now lists the number of non-running commands
that have been filtered out. This count is added to the screen model in
case it is needed elsewhere.

* fix the style on the secondary buttons

This fixes the margin an the button to bring it in line with the line
items. It also fixes empty window screen to use a different css class.
Previously, the window-view class being used would cover the button. It
is now using the window-empty class instead.

* change formatting for secondary filter button

The button is now yellow with a border style instead of red with a solid
style. The border-radius has been changed to give the button a pill
shape.

Additionally, a style tab has been added to the button component to
provide it with custom styling. It should be changed to a custom class
design in the future.

* update style on primary filter button

This is being changed to simpler hover text in line with other text in
the cmd box.

* add number display as text for first filter button

The main filter button originally displayed a somewhat vague message.
Now it displays the number of running tasks with the rotating arrow
symbol.

* remove numLinesHidden count from model

This numLineHidden count is no longer needed with the new button design.
Furthermore, it created several warnings in react due to its
implementation. For both of these reasons, it has been removed.

* update filter functionality to better utilize mobx

This consisted of a few changes. The first was to move the filter state
from the GlobalModel to ScreenLines in order to track state separately
for each screen. Then several of the functions had to be rewritten to
wrap setting variables in the mobx.action wrapper.

As is, there are still a few issues with this design:
- the filter is not remembered when switching tabs
- if all running tasks expire, the second filter button is still present

* move filtering observable to Screen model

The previous observable did not persist when changing tabs because
ScreenLines did not persist. By moving it to Screen, the ovservable now
persists after changing tabs.
2023-12-01 20:54:49 -08:00
Red J Adaya 23b6bb29e7 modals system (#106)
* init

* connections table

* view styles

* new components. header and status.

* action buttons

* use Button component in other modals

* hook add connection button

* RemoteConnDetailModal component

* refactor remotes model. read connection modal.

* remote conn detail modal layout and styles

* fix xterm styles

* use correct status message in xterm

* tone down color of settings input

* clean up

* edit remote conn modal

* fix buttons gap

* change button label

* archive and force install features

* use classnames

* add some class names and also set some widths / maxwidth for the table.  too hard to read on large screens.

* small style updates

* fix some typescript errors, other small fixups

* fix type error

* move add button to the bottom of the table

* more improvements

* adjust layout, behavior, and style accrdg to mike's feedback

* set table max-width in css

* open detail modal after creation of new remote

* new modal component. migrate about modal to new modal component.

* migrate create remote conn modal to modal component

* working modals stack

* update some working (remote -> connection).  fix typescript error in connections.  remove some console.logs

* fix a couple of mobx warnings (need to wrap in action)

* register create conn modal

* follow model naming convention

* register edit remote conn modal

* reset

* reset

* reset

* reset

* use remotes model methods and wrap pushModal calls in mobx action

* only close connect modal after update for remotes returns

* register alert modal

* fix type error in app.tsx

* migrate remote detail and alert modal to base modal component

* Revert "fix conflicts"

This reverts commit 962da77918b97c09e0b85532915df374fec16d42, reversing
changes made to 34cbe34ba58f0b32dedddf6a292de6c9fef09e2e.

* only wrapper ModalProvider with mobx provider

* change archive label to delete

* fix error where isOpen method does not exist

* remove registry modal

* rename ModalStoreModel to ModalsModal

* fix issue where edit remote conn modal doesn't show

* simplify modal component

* grab remoteModel from within the remote modals

* fix edit modal

* minor change

* cleanup

* more cleanup

* change confirm wording to 'delete' instead of 'archive'.  remove or-equals since isBlank is designed to check for exactly that.

* undo some of the strict typescript fixes

* undo more typescript fixes

* cleanup

* fix import

* revert build.md change
2023-12-01 20:04:59 -08:00
sawka fc79da776c merge main into dev-0.5.1 2023-12-01 19:58:59 -08:00
sawka 24499cb0b5 change pterm variable name to wterm 2023-12-01 15:21:24 -08:00
sawka b9e12b2623 bump version to v0.5.1 2023-11-30 10:06:06 -08:00
Sylvie Crowe 86a86bc756 Update clear so it no longer archives Running Commands (#110)
* fix clear so it doesn't archive running commands

Clear previously archived every command that existed in the current tab.
This change alters this behavior so the commands with a status of running
or detached are not archived by clear.  As things currently stand,
detached is not used so the only immediate effect will be with running
commands. As before, the clear command only affects the current tab.

* remove unnecessary print

A print statement for debug still existed in the ArchiveScreenLines
function. It has been removed.

* remove isWebShare from ArchiveScreenLines

The isWebShare feature is currently unused and there is not a plan to
add it back soon. For this reason, it has been removed from the
ArchiveScreenLines function.

* clean up query formatting
2023-11-29 18:29:44 -08:00
sawka 1c9c470fec update typecheck to use tsconfig.json 2023-11-29 18:27:31 -08:00
sawka 75c3c42750 updated tsconfig.json 2023-11-29 18:23:47 -08:00
Sylvie Crowe ebf356417d add link to terms of service (#105)
* add link to terms of service

The welcome page previously referenced the terms of service without
providing a link to them. This change adds a hyperlink which allows
users to easily navigate to them.

* remove the tos checkbox

Additionally, small cleanups have been made to the formatting of the
source code.

* update color name from prompt-green to wave-green

Previously, the name prompt-green was used for the green color
associated with the branding. It has now been changed to wave-green.
This is in response to the terminal being renamed from prompt to
waveterm.

As a part of this, change the css class is-prompt-green has also been
changed. It is renamed to is-wave-green.

* update anchor tags to use wave-green color

Previously, anchor tags used the blue color that comes as default with
bulma css. They are now changed to be the wave-green color that matches
the rest of the branding.

This also involved updating the hover text to be the same color.
Note that hover links had to be specified but focus links did not. I
imagine this is because of bulma css defaults. Regardless, the previous
.content overwrite that we used for hovering hyperlinks was removed as
it is no longer necessary.
2023-11-29 00:27:54 -08:00
sawka 4ef8dd5a98 try to build a static wavesrv binary on linux to avoid glibc dependency issues (use go build tags, external linking, and -static) 2023-11-29 00:10:21 -08:00
sawka 0fbc800685 always set cgo_enabled to 0 for waveshell/mshell (everywhere now). fixes glibc dependency issue. confusing because when *not* cross-compiling on linux cgo_enabled defaults to 1. which was causing 3 statically linked binaries and 1 non-static. also remove broken build-waveshell scripthaus command (defaulted to mac.amd64 which was wrong) 2023-11-28 22:49:49 -08:00
sawka 5a147dc887 always set cgo_enabled to 0 for waveshell/mshell. fixes glibc dependency issue. confusing because when *not* cross-compiling on linux cgo_enabled defaults to 1. which was causing 3 statically linked binaries and 1 non-static. 2023-11-28 22:44:27 -08:00
sawka b250cc2042 update directories and color in BUILD.md text 2023-11-28 15:09:11 -08:00
Red J Adaya e95934e2df connections screen and modals (#69)
* init

* connections table

* view styles

* new components. header and status.

* action buttons

* use Button component in other modals

* hook add connection button

* RemoteConnDetailModal component

* refactor remotes model. read connection modal.

* remote conn detail modal layout and styles

* fix xterm styles

* use correct status message in xterm

* tone down color of settings input

* clean up

* edit remote conn modal

* fix buttons gap

* change button label

* archive and force install features

* use classnames

* add some class names and also set some widths / maxwidth for the table.  too hard to read on large screens.

* small style updates

* fix some typescript errors, other small fixups

* fix type error

* move add button to the bottom of the table

* more improvements

* adjust layout, behavior, and style accrdg to mike's feedback

* set table max-width in css

* open detail modal after creation of new remote

* update some working (remote -> connection).  fix typescript error in connections.  remove some console.logs

* fix a couple of mobx warnings (need to wrap in action)
2023-11-27 16:22:15 -08:00
Luke (Zgroza) Klimek 98b373d401 Adjust the username regex - '_' character (#94)
* adjust the username regex - '_' character

* also allow dot in username regex (sawka)
2023-11-27 12:44:53 -08:00
sawka 64203e7823 update username regex to include dots and underscores 2023-11-25 11:30:42 -08:00
sawka 7d8f811228 fix typo 2023-11-24 00:15:09 -08:00
sawka ebdc1ff524 fix ctrl-w functionality 2023-11-20 22:03:56 -08:00
sawka 3f57ee8c46 drop visible map recomputation time to 100ms (from 1000ms). lines fill in much faster when scrolling 2023-11-16 23:57:36 -08:00
sawka d9c7b61c91 also add nvm and virtualenv 2023-11-16 23:54:27 -08:00
sawka 0017946bbb add asdf to default rtnstate commands 2023-11-16 23:51:02 -08:00
sawka e15558690f make ctrl-shift-v work in the terminal (paste text) 2023-11-16 23:40:20 -08:00
sawka bf03ff2591 add ctrl-shift-c handler for terminal (to copy text) 2023-11-16 23:11:42 -08:00
sawka ad0f11c097 allow terminal font sizes up to 24px 2023-11-16 22:49:59 -08:00
sawka 514156b07f Update issue templates 2023-11-14 10:55:33 -08:00
sawka 7da7d06f09 add a defer/recover to scws WriteJson 2023-11-10 13:36:37 -08:00
sawka 5327258287 add logo to left sidebar, change how collapse works 2023-11-10 13:16:35 -08:00
sawka dd49e43579 update screen -> tab in user facing messages. waveshell var / ignore. fix bug with external urls 2023-11-10 12:31:31 -08:00
sawka 7449d9db67 remove show metacmds from history search (we always want to show meta) 2023-11-09 22:44:39 -08:00
sawka 4076c58b53 update in-app links to point to waveterm.dev 2023-11-09 21:49:06 -08:00
sawka 089553fce2 fix strange bug where ReturnStateBuf.Reader isn't closed, even when process exits. Force it closed after 2 seconds 2023-11-09 18:57:39 -08:00
sawka d61c8c05a6 SIGKILL will also kill waveshell. clear PendingStateCmds and WaitingCmds on disconnect (remote.go) 2023-11-09 18:29:11 -08:00
sawka f4ac642afa fix bug where pendingStateCmds were cross screen boundaries. now screenid is part of the pendingStateCmd key 2023-11-09 17:47:24 -08:00
Red J Adaya a0479c4683 add connection modal (#64)
* various improvements

* animation menu on close

* finish custom dropdown

* minor change

* minor fix

* add error support for dropdown

* create remote modal

* NumberField component and more on add remote connection modal implementation

* extend TextField instead. dobounce should be handled by the user not the component

* PasswordField

* remove used code. fix ssh key file field issue

* style buttons. fix modal height issue

* use react portal for dropdown menu

* remove debugging code

* tooltip implementation

* put back modal background

* (sawka) add autofocus attribute to textfield.  change label color to color-secondary.  fix file menu name.  fix typescript error in basicrenderer
2023-11-09 16:28:37 -08:00
sawka 1a566d06aa gc was collecting the lockfile early causing it not to work. fixed with runtime.KeepAlive 2023-11-09 16:26:44 -08:00
sawka 68731f45a2 make binary paths consistent between dev/prod. add 'eval' as a rtnstate command. fix waveterm.lock file 2023-11-09 16:08:32 -08:00
Tracy Miranda 876321d06d Tidy up contribution guide 2023-11-08 14:10:31 -05:00
sawka 379854e049 don't load remote content, and dont show codeeditor if closed 2023-11-08 00:26:28 -08:00
sawka 8daac68aad dont load plugin resources at startup (delays important loads). load on demand if we open the apps screen. 2023-11-08 00:12:41 -08:00
sawka 86436d050e limit size of newstate on line 2023-11-07 23:58:54 -08:00
sawka 1be2716f6e add square icon back, fix spacing somewhat 2023-11-07 16:15:54 -08:00
sawka aa0e8415c1 rename talk to us to discord 2023-11-07 01:27:11 -08:00
sawka 85f6aed2ad remove apps in prod (not implemented yet) 2023-11-07 01:26:22 -08:00
sawka d076fc0c72 remove current version check in about modal (not implemented). text not selectable (except for version) 2023-11-07 01:24:35 -08:00
sawka 80675f8c0f update base cmdinput height 2023-11-07 01:16:48 -08:00
sawka 8ffd537bb7 fix cmdinput expand size calc 2023-11-07 01:14:26 -08:00
sawka e76d74ada4 add download link 2023-11-07 00:51:44 -08:00
sawka 4f9be4d4f6 minor README changes 2023-11-07 00:49:37 -08:00
sawka 3e0849ff4f add links to contributing markdown file 2023-11-07 00:45:48 -08:00
sawka 3504163596 README updates 2023-11-07 00:40:21 -08:00
sawka a2b529f950 fix typescript errors 2023-11-07 00:18:45 -08:00
sawka be9a3c288a Merge pull request #63 from wavetermdev/dev-0.5.0
Merge dev 0.5.0 branch to main
2023-11-07 00:13:40 -08:00
sawka f30739497f upgrade monaco-editor version 2023-11-07 00:13:05 -08:00
sawka 7920a797dc Merge branch 'main' into dev-0.5.0 2023-11-07 00:08:43 -08:00
Red J Adaya 847de1fc60 new tab flow (#60)
* init

* init

* error handling

* use css

* minor improvements

* fix some issues and tabicon init

* show error indicator when empty and is required

* debounce input

* fix decorator linting issue

* icon system init

* fix bugs

* color custom icons and fix regression

* remove debugging code

* remove @tab-magenta. fix formatting.

* swap magenta for mint

* change tab color order
2023-11-07 00:04:25 -08:00
sawka f8d3c0c19c rename MainSideBar to sidebar 2023-11-06 14:00:43 -08:00
sawka 6430593e5f upgrade packages 2023-11-06 13:56:09 -08:00
sawka 498c393baa zip is a requirement for linux builds 2023-11-06 13:39:27 -08:00
sawka 0ae654cd1d upgrade electron/rebuild to get rid of weird lzma-native dependency 2023-11-06 12:03:12 -08:00
sawka d405352823 Create MacOS Universal Build (#62)
* testing universal build

* arch files not required anymore

* use CGO_ENABLED for wavesrv.  write out notes about the universal build problems/solution

* script and updates for universal build

* more updates for sign/notarize flow for universal app

* put in prod migration check

* build prompt to wave migration into emain.  updates to macos build scripts

* update some packages

* successful universal build

* remove unused code
2023-11-05 00:00:47 -07:00
sawka cccaf83b39 Merge branch 'dev-0.5.0' 2023-11-03 16:25:39 -07:00
Red J Adaya a69e844178 init (#61) 2023-11-03 13:11:49 -07:00
sawka 61d6d2ddff scope this section rule so it doesn't conflict with monaco editor 2023-11-03 00:44:47 -07:00
sawka bda9943ed7 Merge remote-tracking branch 'origin/dev-0.5.0' 2023-11-02 14:06:22 -07:00
sawka 38a1f95115 migrate DB WAL file as well as DB file. make dev leftnav color more subtle 2023-11-02 14:05:43 -07:00
sawka 5708b3f19f working on small history UI updates 2023-11-02 01:02:50 -07:00
sawka d528f3db27 abstract connection selector dropdown properly. use in settings. remove old selector. 2023-11-02 00:08:04 -07:00
sawka f2baa59af6 fix default workspace creation bug. fix no workspace message 2023-11-01 23:41:04 -07:00
sawka 055d00d78a use nextlinenum to decide whether to show newtab flow 2023-11-01 23:10:01 -07:00
sawka 90e07266bf try to fix the inline edit control 2023-11-01 23:02:19 -07:00
sawka a7c2d440b2 new tab colors. also re-implement tab gradients according to figma file 2023-11-01 22:38:37 -07:00
sawka df073724e0 remove console.log from pluginsview 2023-11-01 01:29:17 -07:00
sawka afc5bbd212 Update Data Directories and Environment Variables (#59)
* phase 1 of wave runtime migration.  update waveterm_dev, build vars, waveterm_app_path.  fix errors with plugins readmes and screenshot directories.  use asset loaders in webpack.  fix window-empty styles.  wave-migrate script.  remove unused scripthaus commands.  other fixes

* waveterm_home directory.  lots of internal scbase prompt names to wave

* update waveterm.lock file

* change wave data directories.  remove welcome modal code

* update waveterm.db name

* fix Wave menu (add back default items).  Update TOS modal words

* fix typescript errors
2023-11-01 01:26:19 -07:00
Red J Adaya 15a4719b17 About Modal (#39)
* menu item and send event to renderer

* wire up everything

* update content

* modal content

* add mising text

* minor fix

* style fixes

* figma design init

* about header, content, and general styles

* css refactor

* more on refactor

* reuse styles from app.less in about modal

* dynamic status

* external linkn

* finish about modal

* update links

* update license link
2023-10-31 22:24:36 -07:00
sawka 8211a0bb26 reduce line jitter when switching from simple to full mode 2023-10-31 12:55:35 -07:00
sawka e1189a5051 remove a lot of hover effects, unselectable menu text. move apps to bottom. remove favorites 2023-10-31 11:29:17 -07:00
sawka ab8021fad7 add fontawesome back into the repo 2023-10-31 11:18:12 -07:00
Tracy Miranda a0176d0e64 Update README.md (#58) 2023-10-31 10:42:04 -07:00
sawka a8836ec691 Merge pull request #57 from wavetermdev/dev-0.5.0
Initial v0.5.0 merge into main
2023-10-30 23:36:29 -07:00
Red J Adaya e7b58c1077 user oboarding flow (#54)
* init

* telemetry toggle

* finish styling and functionality

* remove unused style

* rever some styles

* use goroutine in sending telementry updates

* remove wave-modal class from AlertModal

* icons and button state fixes

* minor change with goroutines

* use default cursor not not-allowed
2023-10-30 22:39:51 -07:00
sawka 616a7d2dc0 fix new-tab button when scrolling (was getting flex-shrunk) 2023-10-30 20:47:45 -07:00
sawka 14715ec5b1 Fix All TypeScript Errors (#56)
* update newtab screen to make it match the figma mockup (still waiting on UI for name)

* fix all typescript errors

* update for new build

* remove old import
2023-10-30 09:53:17 -07:00
sawka 9b5bc33125 update newtab screen to make it match the figma mockup (still waiting on UI for name) (#52) 2023-10-30 09:43:54 -07:00
sawka 940a187d34 update dmg build for Wave. Fix tab rounding 2023-10-29 20:02:57 -07:00
anandamarsh c9c2b91a77 Pe 222 apps sidebar (#51)
* can open / close Apps view

* gotten app list to load dynamically

* updated icons  bizzare that they all have the same bg
color

* can select an app form left bar

* could not get ImageViewer to work :(

* getting rid of screenshots

* readme.md works

* fixed the color problems for icons
2023-10-28 13:18:31 -07:00
Tracy Miranda 505ab56ef4 PE 178 Add OSS files (#50)
* Add contribution guide

* Format improvements

* Add security guidelines

* Create CODE_OF_CONDUCT.md

* Add README.md
2023-10-28 13:16:50 -07:00
Red J Adaya e0cd8516b8 update color tab names (#49)
* change color names and values

* migrations

* update tab colors in fe

* set to default instead of null

* minor server fixes
2023-10-28 13:14:20 -07:00
sawka 9804dcb14c fix up spacing for workspaces in sidebar 2023-10-26 15:17:23 -07:00
sawka 5bf83a7e59 move to 12.5px font for sizebar, increase icon size 2023-10-26 15:08:21 -07:00
sawka f239832435 clicking anywhere on the cmdinput will give focus. also fix the click handler for exec to only be on the icon 2023-10-26 01:40:18 -07:00
sawka d8d7d0b7d2 add 'magiclayout' to hold magical layout constants. compute the constants with the new padding/margins for new UI. use to compute runtime heights. 2023-10-26 01:25:46 -07:00
sawka 04cdab6f74 add metabarecmds into command completion 2023-10-26 00:01:52 -07:00
sawka 267b035fc8 remove autoinstall options from GUI, always set autoinstall flag, db migration to set autoinstall for all remotes (#48) 2023-10-25 22:07:00 -07:00
Red J Adaya 736fb7be6a csvviwer focus support (#46)
* more fixes

* add delay and slight opacity animation

* cleanup

* focus support

* use savedHeight as initial tbody height

* cleanup

* set container to savedHeight initially

* fix calc issue

* more calc fixes

* more calc fixes
2023-10-25 21:41:52 -07:00
sawka 65db030126 change prompt.js/css to waveterm.js/css 2023-10-25 18:45:14 -07:00
Red J Adaya 7e9e76f089 error boundary for screens (#45)
* error boundary for screens

* error boundary for plugins

* remove changes.diff

* move load-error-text class to app.less

* implement mikes suggestions

* apply error boundary to workspace view

* fix minor issues
2023-10-25 18:24:14 -07:00
sawka 49f18a3e94 added waveterm logo (png and svg) 2023-10-25 15:25:07 -07:00
sawka 737e08b583 bash v3 has a bug with reading large rcfiles from a /dev/fd pipe. fallback to writing a tmp file in that case to allow for large (128k+) rcfiles 2023-10-25 15:20:52 -07:00
Red J Adaya 7c966e2660 change session to workspace (#47)
* change session to workspace

* also need to change the less file since the className was changed
2023-10-25 13:55:30 -07:00
sawka 2b72cd18b8 update build instructions for new webpack configuration. merge origin/main into dev branch to pick up linux changes. 2023-10-25 13:47:52 -07:00
sawka 083e2f8b6c big update for webpack configs. use --env to select environment. now dev/prod will combine both web and electron webpack environments 2023-10-25 13:32:15 -07:00
sawka d19cd7c623 updates for icon / name 2023-10-25 09:46:51 -07:00
Red J Adaya 6ae263f9fa csvviewer rendering flash (#44)
* more fixes

* add delay and slight opacity animation

* cleanup
2023-10-24 18:34:37 -07:00
sawka ce033c616f bump versions to v0.5.0, update package.json for Wave 2023-10-24 09:29:00 -07:00
sawka c0de69e4a2 move +3 for descenders to termHeightFromRows 2023-10-24 09:27:20 -07:00
sawka 082fe4a425 new waveterm icon 2023-10-24 09:20:58 -07:00
anandamarsh 6016302814 PE 125 new tab flow (#43)
* please sync

* can select connection. now need add conection

* latest for discussion

* solved "autoselect connection" issue

* ready for PR

* pair programming, fix some issues with new tab flow

* final updates for new connection flow.  integrate add new connection with error messages.  add an option to cr to not create the line/history (non-interactive use)

---------

Co-authored-by: sawka
2023-10-23 23:22:18 -07:00
Red J Adaya 4000baa6c5 fix flashing issue (#41) 2023-10-23 17:10:14 -07:00
sawka e5f500e34f note about nodejs, npm, and yarn 2023-10-18 14:33:45 -07:00
sawka 19bcf4f3ed update build-linux and scripthaus for linux builds 2023-10-18 14:23:40 -07:00
sawka c1ca3a0460 update BUILD.md and create a build-linux.md 2023-10-18 13:45:30 -07:00
sawka b01472a917 add platform class into main div 2023-10-18 13:32:23 -07:00
sawka 4e98db9745 add linux support for maker-zip 2023-10-18 05:54:07 +00:00
sawka e920e09ccf backport linux changes to main 2023-10-17 21:54:44 -07:00
sawka bdcdc202a1 minor fix for linux (use move/resize events vs past-tense). smaller default window size. 2023-10-17 21:48:02 -07:00
anandamarsh 08d5ea5574 fix webpack dev directory 2023-10-17 18:40:01 -07:00
Red J Adaya 046d219555 add license notice (#37) 2023-10-16 21:31:13 -07:00
anandamarsh 805cb777d4 no brainer :) (#38) 2023-10-16 21:30:13 -07:00
sawka 7c11296a94 add go.work for helping with VSCode gopls 2023-10-16 19:17:44 -07:00
sawka f2eaa2e278 add example copyright to index.ts 2023-10-16 15:33:27 -07:00
sawka cad0526678 Add Apache 2.0 License 2023-10-16 15:22:41 -07:00
sawka 90e098e65a add notice and license in package.json 2023-10-16 15:21:21 -07:00
sawka 59f9e54776 remove scripts from package.json (using scripthaus) 2023-10-16 15:14:24 -07:00
sawka 2c4fe1c3ad put BUILD.md into repo. also add build-backend command 2023-10-16 15:11:22 -07:00
sawka 266fc498c7 new paths for getting waveterm running with monorepo 2023-10-16 14:02:22 -07:00
sawka 688584a1d4 add wavesrv and waveshell build commands to root scripthaus.md 2023-10-16 13:35:03 -07:00
sawka 18a44086fc rename imports for wavesrv 2023-10-16 13:30:10 -07:00
sawka 397a0faa88 update go.mod and import paths for waveshell 2023-10-16 13:25:53 -07:00
sawka a4c0128c89 Merging wave server code into mono-repo 2023-10-16 13:22:23 -07:00
sawka d8c60a43bb merged gitignore 2023-10-16 13:22:02 -07:00
sawka 77fee42365 move to wavesrv directory to prepare for merge to waveterm 2023-10-16 13:19:34 -07:00
sawka 1a9c427d22 bump server version to v0.4.0 2023-10-16 13:16:57 -07:00
sawka a8055489f8 merge waveshell into waveterm repo 2023-10-16 13:11:26 -07:00
sawka b864e1fb1d move apishell code to subdirectory to prepare for move to main repo 2023-10-16 13:04:18 -07:00
sawka 393629cc2f fix TOS modal link, correct fixed-font for new tab. code blocks default to terminal font. 2023-10-16 10:59:20 -07:00
sawka ce63a03528 fix error getting TOS modal 2023-10-16 10:47:14 -07:00
sawka 18fa085fa1 fix title-bar drag area 2023-10-14 14:30:50 -07:00
sawka fbcf8f2fbb merge dev 0.4.0 again 2023-10-14 13:36:44 -07:00
Amarsh Anand 8166991928 fixed new-tab button 2023-10-13 18:18:06 -07:00
sawka e561a8b280 first pass at increasing new-screen click target 2023-10-13 16:40:34 -07:00
sawka bde909d43c static -> public 2023-10-13 09:09:09 -07:00
sawka 2cd21d1c76 fix fontsize dropdown 2023-10-12 23:46:14 -07:00
sawka 9c3bc210f2 fix icon path 2023-10-12 23:34:33 -07:00
Amarsh Anand fed993a41c Merge branch 'DEV_0.4.0' of github.com:commandlinedev/prompt-client into DEV_0.4.0 2023-10-12 23:30:39 -07:00
Amarsh Anand db2a47630c settings fixed too 2023-10-12 23:30:36 -07:00
Red J Adaya 1fafc53605 CSV viewer plugin enhancements (#33)
* init
* render table
* add packages
* filtering and sorting
* init pagination
* partially working min-max
* fix broken style
* styles fixes
* init
* sticky header
* resizable cols
* scrollable tbody instead
* remove unused deps
* add file size limit
* style fixes
* scrollable x-axis
* border fixes
* more style fixes
* handle csv without headers
* fix headers rendering
* revert changes to model
* revert changes to code plugin
* ellipsis mixin
* fix height calc problem
* minor fix
* minor fix
* minor fix
* minor fix
* minor fix
* reset model and code plugin changes
* more fixes
* fix wrong theme import path
2023-10-12 22:55:11 -07:00
Amarsh Anand 17a85734c8 fixed info 2023-10-12 22:25:53 -07:00
anandamarsh 53446e93d3 Pe 195 12 oct 2 (#36)
* history and imports fixed

* history and favourites are ready

* connections home works. now to Add connection

* connections done
2023-10-12 22:06:12 -07:00
sawka 11a90b01dc default tab color is green 2023-10-12 21:42:02 -07:00
sawka 852b227574 shrink cmd-exec space 2023-10-12 21:33:50 -07:00
sawka e21d35288f fix markdown styles 2023-10-12 21:24:52 -07:00
sawka ab9ed54b46 align sidebar icons with text. make discord icon slightly bigger 2023-10-12 21:05:04 -07:00
sawka b23cbbbfc7 session -> workspace. also fix 'hide-prompt' class for openai 2023-10-12 20:59:16 -07:00
sawka 456f92d848 update from session to workspace 2023-10-12 20:39:01 -07:00
anandamarsh a8700f25eb Pe 195 12 oct (#35)
* history and imports fixed

* history and favourites are ready

* font size / font family
2023-10-12 20:37:47 -07:00
sawka f3f243aca3 use workspace- instead of session- for names 2023-10-12 13:36:11 -07:00
sawka 3a96f2970a bump to version 0.4.0 2023-10-12 13:00:10 -07:00
sawka 067767c70e more minor fixups, sizing, background colors, etc. 2023-10-12 12:58:05 -07:00
sawka b96d97855b fix content max size 2023-10-12 12:42:33 -07:00
sawka 84f60a21f9 work on statediff styles 2023-10-12 12:20:04 -07:00
sawka 9d347ae08c fix some cmd typography. rtnstate, rtnstate diff, descenders on last line of terminal, lineheight, smaller info line, simple-rendering, etc. 2023-10-12 12:10:50 -07:00
sawka 0c9084364c try to fix background color for ctrl-r history header 2023-10-12 11:29:47 -07:00
sawka 130fcfe032 slightly wider ts column in history. also set min-width on collapsed left bar 2023-10-12 11:16:04 -07:00
anandamarsh 474552d732 Pe 199 pre rel 0.4.0 (#34)
* Tab bg matches selections

* WIP: need to fix all modals one by one

* ready to pull latest

* history fixed
2023-10-11 23:43:47 -07:00
sawka acc4eea74f fix height, and work on new style for cmdinput 2023-10-11 18:55:20 -07:00
Red J Adaya 50190902ca register csvviewer (#3)
New csvview command
2023-10-11 17:59:22 -07:00
sawka 3359ee7457 jetbrains for terminal font. restore font loading. remove fractional font size. set line-height to 1.5 (not 20px).
fix terminal size calculation.
2023-10-09 22:29:05 -07:00
sawka 3bc024c983 upgrade babel, electron-forge, and other easy to upgrade npm packages 2023-10-09 21:11:22 -07:00
sawka 2b3892bfda bump electron version to 27.0.0 (from 25.4.0) 2023-10-09 21:01:56 -07:00
sawka 0d2a1ec95d update back to transparent background 2023-10-09 20:52:55 -07:00
Red J Adaya afa7ef3d76 remove license (#2) 2023-10-09 18:19:47 -07:00
Red J Adaya ecff69eee8 Pe 193 csv viewer plugin (#32)
* init

* render table

* add packages

* filtering and sorting

* init pagination

* partially working min-max

* fix broken style

* styles fixes
2023-10-09 15:24:59 -07:00
Amarsh Anand 336ac776d4 more fixes 2023-10-09 15:08:15 -07:00
sawka 26c5136e43 make fixed-font variable in index.less 2023-10-09 10:28:18 -07:00
Amarsh Anand 50b9b9b0e5 changed buttons for code editor 2023-10-09 01:58:03 -07:00
anandamarsh e2414b0130 played with scrollbars and other things (#31)
* played with scrollbars and other things

* fixed code stuff
2023-10-09 01:47:21 -07:00
Amarsh Anand f39accabb6 refactored plugin 2023-10-05 14:41:42 -07:00
anandamarsh 26f7cea6a4 restructured plugins (#30) 2023-10-05 13:56:52 -07:00
sawka 71151f7073 fix tab color in settings 2023-10-05 13:27:29 -07:00
sawka c7676bb22e make progress on tab colors 2023-10-05 13:05:40 -07:00
sawka 4708b4379a move tabs up, cool titlebar effect 2023-10-05 12:21:07 -07:00
sawka b4b7c2c273 move css content from index.less to app/app.less 2023-10-05 12:11:50 -07:00
sawka aca9fcdcad fun with transparency 2023-10-05 12:02:43 -07:00
anandamarsh daee5c7c36 Refactored now (#29)
* redy to recover Terminal dir

* as Mike asked ... commit what you have :)

* fir anyone to have a look - DONT RUN

* works !!!
2023-10-05 11:25:32 -07:00
sawka adc4948d17 add shell to initpk 2023-10-05 09:50:35 -07:00
sawka 9b380aee02 add function to detect user's shell 2023-10-05 09:42:48 -07:00
Amarsh Anand 9f284083bb try now 2023-10-04 10:49:17 -07:00
Amarsh Anand 2f43a1096e restoring LinkeRenderer 2023-10-03 15:02:55 -07:00
Amarsh Anand 3c320887d3 finding sessions settings in main 2023-10-03 14:40:06 -07:00
Amarsh Anand a1329bfd45 ready for mike to have a look 2023-10-03 14:27:51 -07:00
anandamarsh 6e3b82f41b Pe 125 128 tabs (#28)
* ready to redo tabs

* mov to tabs now

* we can do the tabs now

* tabs are done
2023-10-03 14:26:13 -07:00
anandamarsh 5a0effb691 Pe 96 left navbar (#27)
* nice. bottom done

* work on adding workspaces

* starting on Tabs
2023-09-30 12:13:40 -07:00
anandamarsh b1820224d5 Pe 107 global changes (#26)
* chaged background etc. now making font changes

* need to go component by component now
2023-09-27 15:03:08 -07:00
anandamarsh a25c7b4286 Pe 179 refactoring UI code (#25)
* refactored main JS files

* modals have been refactored

* lines and renderer refactored

* all refactoring done. ready for reskinning
2023-09-23 21:05:06 -07:00
anandamarsh faeab0790a refactored code editor (#24) 2023-09-19 17:08:35 -07:00
Amarsh Anand f251718d62 Merge branches 'PE_153-Close_without_saving' and 'main' of github.com:commandlinedev/prompt-client 2023-09-19 16:42:59 -07:00
sawka e30128d182 Mustache Template Renderer (#23)
* experimental version of the mustache renderer

* mustache error message / loading cleanup, add refresh button
2023-09-17 21:00:54 -07:00
sawka aa5c09368e bump version to v0.3.1 2023-09-17 20:32:35 -07:00
sawka 4953550425 bump version to v0.3.1 2023-09-17 20:31:55 -07:00
anandamarsh 7e4401a625 Ready for PR (#22)
* redy for PR

* marked readonly
2023-09-17 20:14:36 -07:00
Amarsh Anand ac3765c16d marked readonly 2023-09-17 19:45:03 -07:00
Amarsh Anand 83f1ec5c8b redy for PR 2023-09-17 19:07:15 -07:00
sawka 6864f2b5a7 bump xterm.js version to v5.3.0 (perf improvements) 2023-09-17 14:14:51 -07:00
sawka 6563b5855c better cmdrunner / linestate integration (lang, template, etc.). lineState is now passed to AddCmdLine 2023-09-17 14:10:35 -07:00
anandamarsh 9a578c04d3 PE-44 md viewer (#21)
* md does render. need cleanups

* simul scrolling works

* preview button works

* md previewer works

* use Markdown component from elements, fix null ptr with unset ref

* add scroller div back in

* scrollers should overscroll contain

---------

Co-authored-by: sawka
2023-09-17 13:58:12 -07:00
sawka ca13c28a3f minor bugs in markdown renderer, up max size to 200k 2023-09-17 01:35:41 -07:00
sawka 968cd462f5 mostly fix physical focus indicator for code editor 2023-09-16 23:20:47 -07:00
sawka 26eec11526 add notfound error handler (and fontsize override) to markdown viewer (to match image viewer) 2023-09-16 23:07:30 -07:00
sawka 8a4ff84e95 open all iframe (name=webview) links in new window. deny any other iframe navigation. 2023-09-16 22:58:28 -07:00
sawka 6e8dcad1f1 fix PE-152 and PE-146, font size for new state, and force connection terminal to scroll if too big (when font size doesnt match) 2023-09-16 14:27:17 -07:00
sawka 8b8f7cda7b PE-151, need to use setWindowOpenHandler (in new version of electron) instead of new-window event. 2023-09-16 13:08:30 -07:00
sawka caa11748e5 PE-150, error when image not found 2023-09-16 13:01:38 -07:00
sawka de04a700d1 PE-117, PE-116, PE-149 2023-09-16 11:15:09 -07:00
sawka 975512d4eb Merge branch 'codeedit-focus' 2023-09-15 17:25:01 -07:00
sawka b9ff6bd20f codeedit: on close, if we're focused, give focus back to the input box 2023-09-15 17:24:38 -07:00
sawka f6b9b6df3e CodeEdit Focus and Remove WebSharing (#20)
* implement codeedit focus with the help of a shouldFocus prop from the Line component.  also update line status, and remove websharing in left nav

* remove webshare from screen settings
2023-09-15 17:19:24 -07:00
sawka 17fef0341d remove webshare from screen settings 2023-09-15 15:46:17 -07:00
sawka 54c2087ad6 remove websharing backend, migrate db to stop websharing any screens that are currently shared 2023-09-15 13:48:58 -07:00
sawka 13fe90cdb5 implement codeedit focus with the help of a shouldFocus prop from the Line component. also update line status, and remove websharing in left nav 2023-09-15 13:01:04 -07:00
sawka 0df800a390 for codeedit, set the focus to the line (not the input) 2023-09-15 12:57:47 -07:00
sawka 5f04f14df6 link new website 2023-09-08 14:26:30 -07:00
sawka b8ef07e064 updated go.sum 2023-09-07 15:12:50 -07:00
sawka 2fa0239c13 resolve typescript errors created from merging PRs 2023-09-07 13:05:02 -07:00
sawka aaaf7af8a1 PE-74 and PE-54
pass isSelected (to prevent multiple scrolling).  also fix initial editorheight to prevent jitter (#19)
2023-09-07 13:02:45 -07:00
sawka 660795ea8f codeview / codeedit commands working (#17)
* server is setting 'mode' linestate to 'view' or 'edit'.  this change sets the editor in readonly mode based on this flag.  (requires the new build of prompt-server)

* apply prettier
2023-09-07 13:01:07 -07:00
sawka e78ea62932 bump mshell to v0.3, add readonly/notfound props. fix one mobx warning (#16) 2023-09-07 12:59:07 -07:00
sawka 7376ed2824 fix all typescript errors (#18) 2023-09-07 12:57:02 -07:00
sawka d97c1862c7 should be 666 not 777 (don't set executable flag by default) 2023-09-06 21:57:41 -07:00
sawka c7d09b4692 bump mshell version to v0.3 2023-09-06 21:50:59 -07:00
sawka 1127d2cfbd bump mshell version to v0.3.0 2023-09-06 21:50:38 -07:00
sawka 71ba4b5b46 update writefile code. changed the way usetemp works to make sure file permissions/owner/attributes are kept on original file 2023-09-06 21:45:15 -07:00
sawka 8cb3bd49b5 bump prompt-server version to v0.3.0 2023-09-06 19:55:52 -07:00
sawka baeafdce78 bump version to 0.3.0 2023-09-06 19:54:06 -07:00
anandamarsh dee0ae4473 serving moncao from node_modules (#15)
* serving moncao from node_modules

* add monaco-editor to package.json

* allow node_modules/monaco-editor into the build

---------

Co-authored-by: sawka
2023-09-06 19:51:32 -07:00
anandamarsh 52a7e14df8 PE-71 close (#13)
* fixed expand issues

* removed expand

* can close the file, and min 5 lines are

* removed older file

* lag selection took some time :(

* ready for PR

* changed prompt:lang to lang
2023-09-06 16:36:49 -07:00
anandamarsh dff146db66 PE-71 close (#12)
* fixed expand issues

* removed expand

* can close the file, and min 5 lines are

* removed older file
2023-09-06 13:28:05 -07:00
sawka 1d77b2d5d6 add codeview command 2023-09-05 22:09:24 -07:00
sawka bc488cf242 fix PE-63, permissions for temp files 2023-09-05 21:21:34 -07:00
anandamarsh fa04cd9e5c PE-71 (#11)
* fixed expand issues

* removed expand
2023-09-05 15:05:18 -07:00
sawka c81a01aa9c File/Code Editor Working (#9)
* save works

* ready for Fri night PR - Code editor working

---------

Authored-by: Amarsh Anand
2023-09-01 21:44:35 -07:00
sawka d84dd75d94 resolve ~ in read/write file api 2023-09-01 20:40:28 -07:00
sawka 238c8fb250 fix return type of writeRemoteFile, small formatting/fixes 2023-09-01 20:15:48 -07:00
sawka 9785aaac19 set linestate 2023-09-01 16:45:01 -07:00
sawka fea5f3306e add codeedit command (testing) 2023-09-01 16:38:54 -07:00
anandamarsh b5e9e34c52 Pe 10 (#8)
* code window is always visible

* gotten resizing done. need more work

* starting on save now

* got save to display message. now need to intergrate with save() handler
2023-09-01 15:57:01 -07:00
sawka 5d89e0cfef add line.linestate to DB. switch linetype to a dbmappable. update line sql queries. add state to /line:set command. bump migration (#2) 2023-09-01 15:21:35 -07:00
sawka 2e18c56471 PE-41 Remote File API (#7)
* added API for read-file

* implement writeRemoteFile -- multipart upload, params/data

* format file, implement readOnly flag on file return from readRemoteFile

* fix model.ts typescript errors

* add usetemp to write-file api

* add GlobalCommandRunner.setLineState()

* implment PE-13, PE-60
2023-09-01 15:20:13 -07:00
sawka 22fb034cc4 PE-41 remote file api (#1)
* RPC for remote file streaming -- just implemented 'stat' for now (streaming to come)

* allow RPC iterators for MShell RPCs.  implement two test commands to test viewing files

* implement read-file handler

* read-file: allow overriding of content-type and use line's cwd not remote instance cwd

* checkpoint on write-file impl

* implemented metacommand version of write file

* checkpoint, untested write-file impl

* multipart handling for write-file data

* add usetemp param to writefile
2023-08-31 22:04:31 -07:00
sawka c29c4a9a2d PE-41 remote file api (#1)
* new remote file streaming API packets.  implemented 'stat' for remote files

* introduce filedata packets.  allow streaming RPCs.  fix RPC bug with combined packet parsers.  implement file streaming for filestream RPC.

* checkpoint on adding write-file

* completely untested write-file impl -- writefilecontext, condition var for signaling new data packets, cleanup goroutine, ready/done states.

* better error messages, also unlock MServer before calling done on wfcs

* fix bug with perm json tag.  change constant name
2023-08-31 22:03:38 -07:00
anandamarsh af25dc65c2 Pe 11 12 18 (#5)
* ready to tackle the height issue

* height adjusts, but requires some more testing

* removed fullscreen

* height now works

* set font family to  "JetBrains Mono"
2023-08-28 17:00:02 -07:00
anandamarsh 49e0b7212d test (#4)
* test

* language can now be changed

* ready for PR

* ready for PR again
2023-08-23 20:46:47 -07:00
sawka c8cae274bc prettier all the files 2023-08-21 21:37:04 -07:00
sawka 8b473607c7 add prettier to package.json 2023-08-21 21:33:47 -07:00
anandamarsh e7dfa77245 Merge pull request #3 from commandlinedev/CLI-9-Create-a-new-Plugin-called-CodeRenderer
Cli 9 create a new plugin called code renderer
2023-08-21 21:31:31 -07:00
Amarsh Anand c5861fd26f new prettier config 2023-08-21 20:06:17 -07:00
Amarsh Anand d3d31a0121 added monaco 2023-08-21 19:56:53 -07:00
Amarsh Anand 81be0d4b38 first cut ready ... requires discussion with Mike 2023-08-20 17:08:05 -07:00
Amarsh Anand 2ab0f4af4c created CodeRenderer with hardcoded js as lang 2023-08-20 11:27:52 -07:00
sawka 758671adee Merge pull request #1 from commandlinedev/minimize_line
Minimize line
2023-08-17 21:31:52 -07:00
Amarsh Anand 21e6aad6c8 reverted emain 2023-08-17 21:26:49 -07:00
Amarsh Anand 939e452678 undid dev tools 2023-08-17 21:22:00 -07:00
Amarsh Anand 3164208a85 works but the change is too quisk. animation may be the right here 2023-08-17 14:31:24 -07:00
Amarsh Anand 2cbb28eb56 enabled debugging 2023-08-17 13:02:26 -07:00
sawka 681d80e0a6 force ipv4 listening in local server (consistent ipv4 throughout stack) 2023-08-14 17:04:16 -07:00
sawka 139639b990 fix resize event. fix emain communication to local-server (use 127.0.0.1 to force ipv4) 2023-08-14 17:03:32 -07:00
sawka 093e550d50 add a debug flag to log the rc file for bash initialization 2023-08-14 12:23:33 -07:00
sawka ed50f1e7d0 up go.mod versions 2023-08-03 14:58:56 -07:00
sawka 865ac0220f bump dep versions 2023-08-03 14:58:15 -07:00
sawka d289026a98 update electron version, rename files to prompt.ts and prompt.less 2023-08-03 14:29:06 -07:00
sawka 6b330b25f3 remove selectmaps call 2023-07-30 22:25:44 -07:00
sawka 2d99d82fbc remove blank cmdids from migration 2023-07-30 22:23:20 -07:00
sawka 483bcbe338 change cmd_migrate table name to prevent conflict 2023-07-30 18:46:57 -07:00
sawka 36a20a14c4 change functions to use lineid not cmdid 2023-07-30 18:32:56 -07:00
sawka fb823cfd79 remove more cmdid references 2023-07-30 18:26:25 -07:00
sawka 239f87ac42 updates for converting lines, removing cmdid 2023-07-30 18:24:35 -07:00
sawka 8ee17f5eb3 updates for new cmd/line data 2023-07-30 17:21:36 -07:00
sawka d2cfc5c980 fix insert for new doneinfo/startpk fields 2023-07-30 17:18:52 -07:00
sawka 2d63b1da96 checkpoint on line migration 2023-07-30 17:16:43 -07:00
sawka 6e84b1a426 remove fe migration status updates 2023-07-28 11:50:42 -07:00
sawka bd515994f8 one by one migrations (so we can run code). remove migration messages from FE (it is fast) 2023-07-28 11:48:11 -07:00
sawka afbc60ce92 update imports to reflect new package names (moved repo) 2023-07-26 14:24:14 -07:00
sawka f5331f989a update some js dependencies, update for new repo names 2023-07-26 14:23:04 -07:00
sawka 94827683b5 big rename mshell to commandlinedev/apishell 2023-07-26 13:00:07 -07:00
sawka 5d72581683 checkpoint 2023-07-26 10:10:27 -07:00
sawka 985d265b47 remove animation 2023-07-26 10:09:27 -07:00
sawka 3657761976 remove logging errors 2023-05-08 18:03:24 -07:00
sawka 7c09d8c09e remove logging message 2023-05-08 18:03:09 -07:00
sawka 386b5f7a90 add openai packet 2023-05-08 18:00:46 -07:00
sawka d0f540e998 bump to v0.2.3 2023-05-08 17:57:44 -07:00
sawka 6a6e51d783 bump version to v0.2.3 2023-05-08 17:57:15 -07:00
sawka 24955227c9 remove rendermode tag 2023-05-08 17:55:15 -07:00
sawka c045b67afe switch openai to chat for metacmds 2023-05-08 17:54:38 -07:00
sawka 26281e2ec6 got really simple openai support hacked in 2023-05-08 16:07:55 -07:00
sawka 59ff522cd1 updates to read openai token from clientdata 2023-05-08 16:06:51 -07:00
sawka aefd982b1d fix height computation 2023-05-05 19:19:48 -07:00
sawka 6ffe0732e0 get chatgpt working inline 2023-05-05 16:13:18 -07:00
sawka 162dd5a7a9 fix expanded command 2023-05-05 13:06:29 -07:00
sawka 957a1e4059 make lineavatar smaller 2023-05-05 13:00:45 -07:00
sawka f9925c9187 allow openai to render as cmd for now 2023-05-04 01:01:38 -07:00
sawka 8302ca1fcb openai api integration 'working' 2023-05-04 01:01:13 -07:00
sawka ab5deafdb6 updates to remote table, working on openai remote type 2023-05-02 12:43:54 -07:00
sawka 5e5a31715a css updates, removing collapsed, fix spacing in remotes modal 2023-05-02 12:41:38 -07:00
sawka f2b7637263 refactor css into sub-files 2023-04-25 12:27:41 -07:00
sawka 97fd46eda0 v0.2.2 2023-04-17 17:36:47 -07:00
sawka e4a57376f8 v0.2.2 2023-04-17 17:36:30 -07:00
sawka 3e295228e7 update txwrap dependency 2023-04-17 17:31:30 -07:00
sawka dbd76e2f40 go mod tidy 2023-04-17 17:25:04 -07:00
sawka a8c131d8cf more careful checking in setting line overflow. simple one way toggle 2023-04-17 16:19:29 -07:00
sawka 9296e60518 linesettings now works in real-time as well 2023-04-17 15:39:46 -07:00
sawka 0cd3f8ac04 can use view= instead of renderer= for setting renderer 2023-04-17 15:23:58 -07:00
sawka 86a65dff79 fix width of markdown 2023-04-17 15:22:55 -07:00
sawka 51a7000de3 only add screendel if websharing 2023-04-17 15:22:30 -07:00
sawka 5e212caf83 allow staticdata to set a higher buffer limit (since it is processed before mpio multiplexer takes over). raise max rundata size to 1M from 128k 2023-04-17 15:13:03 -07:00
sawka ac0467f6c1 fix tabs, display better 2023-04-14 16:57:01 -07:00
sawka 9884e69da0 update session settings (include archive/delete). add delete to screen settings. 2023-04-14 15:32:21 -07:00
sawka 3ebc2090da add json viewer 2023-04-14 13:29:47 -07:00
sawka 6b14cd9de3 move renderers into their own directory 2023-04-14 12:58:27 -07:00
sawka 8b70a7e897 shift up/down arrow do not invoke history 2023-04-13 13:13:24 -07:00
sawka c689043265 better input size handling 2023-04-13 13:02:59 -07:00
sawka 507c79463c simplify focus types, better input focus, add ability to expand main input 2023-04-13 12:55:07 -07:00
sawka 398be03324 simplify screen focus types (remove cmd-fg). send all screen focus updates. fix display issue with rtnstate (prompt vars) 2023-04-13 12:53:15 -07:00
sawka 1ef429466b fix input focus 2023-04-13 11:50:28 -07:00
sawka 15c09b7820 fix, allow empty values for pvar fields 2023-04-12 22:57:17 -07:00
sawka 1ac1051205 bump version to v0.2.1 2023-04-12 22:08:10 -07:00
sawka 69058ab39f bump version to v0.2.1 2023-04-12 22:07:52 -07:00
sawka bab095d701 add buildtime to initpacket 2023-04-12 21:45:45 -07:00
sawka 31d8719200 add buildtime to remote state mshell version 2023-04-12 21:42:16 -07:00
sawka c969966162 updates for showing git branch and venv in prompt -- also for webshare 2023-04-12 14:48:10 -07:00
sawka 7bc8f41c0f now that we're tracking git branches, git switch and git checkout are rtnstate commands 2023-04-12 14:43:11 -07:00
sawka 4e93eff86a updates to FeState to store variables -- implement python venv and gitbranch in festate for prompt 2023-04-11 23:54:18 -07:00
sawka a4a4d53eb0 grab git branch 2023-04-11 23:52:58 -07:00
sawka 88cc9f3096 implement branch/venv in prompt 2023-04-11 23:50:42 -07:00
sawka b92c160333 fix session:purge 2023-04-07 15:48:44 -07:00
sawka 810baa0dfb update html title for sharing page 2023-04-05 18:15:53 -07:00
sawka 5bad7b633f fix ts errors 2023-04-05 15:30:38 -07:00
sawka 8c0b9bfa80 fix typo and remove console logs 2023-04-05 15:29:08 -07:00
sawka f9544546fc bug fixes and updates to get prod version of webshare working 2023-04-05 15:11:37 -07:00
sawka c7289556e5 bug fixes for prod version of webshare -- allow notify to reset backoff time 2023-04-05 15:09:51 -07:00
sawka 96640bf761 add open in browser link 2023-04-05 00:51:26 -07:00
sawka ea8b61278b get a webshare view working 2023-04-05 00:48:34 -07:00
sawka 000d86b7af fix session stats 2023-04-05 00:46:47 -07:00
sawka bc89309cfe fix nil ptr in /line:view 2023-04-05 00:25:22 -07:00
sawka 6c4a8e01df dont log start of new ws conn 2023-04-04 23:44:47 -07:00
sawka 174a4ef8fd add limits to websharing 2023-04-04 23:38:34 -07:00
sawka f492645530 confirm websharing. minor bug fixes, etc (hotkeys, menu edits, etc.) 2023-04-04 23:26:34 -07:00
sawka fa8db1d80e limit screen sharing to 50 commands 2023-04-04 23:24:08 -07:00
sawka 0ee3af71bd update sharename 2023-04-04 22:28:52 -07:00
sawka 1f2967c145 update sharename 2023-04-04 22:28:24 -07:00
sawka cd8e17413d tos, also redo screen settings so settings take affect immediately, working on smoother webshare flow 2023-04-04 21:54:20 -07:00
sawka f6c6a40aba add client:accepttos command 2023-04-04 21:52:20 -07:00
sawka 84da8264e8 fix textmeasure -- works now for chrome, safari, and firefox 2023-04-04 18:16:56 -07:00
sawka 0b3c7db1d4 inlineedit -- icon and focus 2023-04-04 16:22:42 -07:00
sawka e6aa2bae86 refactor markdown (for alerts), remote cmddone delay 2023-04-04 14:04:44 -07:00
sawka f470b8e66f tweak share-tag, link to settings 2023-04-04 13:44:21 -07:00
sawka 86ab25d6cd tweak background color of alt-views 2023-04-04 13:36:28 -07:00
sawka a46de10f42 commands return CommandRtnType promise. smaller font size for settings 2023-04-04 13:25:05 -07:00
sawka 4d813aa07a bump version to v0.2.0 2023-04-04 09:16:03 -07:00
sawka 1d5fe3c5be bump version 2023-04-04 09:15:31 -07:00
sawka fdae19610b fix path 2023-04-04 09:03:18 -07:00
sawka df4ef2b675 small fixups 2023-04-04 09:01:11 -07:00
sawka 81cb57e48d small changes to work on textwrapping in textarea 2023-04-03 23:17:15 -07:00
sawka c9e52b0148 fix dev url to be index-dev.html 2023-04-03 22:33:10 -07:00
sawka a8eafca91b after connections modal closes, refocus 2023-04-03 22:21:57 -07:00
sawka 6e6fe4d4bf auto-install and reconnect flow working 2023-04-03 22:15:43 -07:00
sawka 501e2ac76c add initialzing state to deal with quick data 2023-04-03 22:15:18 -07:00
sawka c1b4b7eb63 cleanup old connections code, more cleanup on the connection flows 2023-04-03 21:33:03 -07:00
sawka c7024b0ef5 switch to 'connection' 2023-04-03 21:31:40 -07:00
sawka b731763746 create a new remote, show connect timeout, move alias to edit remote, fix archiving flow 2023-04-03 18:58:41 -07:00
sawka 936500a18e add client deadline and update remoteruntimestate 2023-04-03 18:57:38 -07:00
sawka faadfdffaa new remoteview type to hook into remoteview window 2023-04-03 15:55:36 -07:00
sawka fb9eaf23f9 hook up remotes into remote command flow 2023-04-03 15:55:03 -07:00
sawka 81f555adcd info-message 2023-04-03 15:53:28 -07:00
sawka bc7446a908 more remotes refactoring 2023-04-03 11:38:53 -07:00
sawka 4cbeccbe38 refactor remotesmodal into its own file with its own model 2023-04-03 11:29:54 -07:00
sawka fc0cbc994a small cleanup on editing style 2023-04-03 01:53:34 -07:00
sawka 443c8155e7 working on new connections modal 2023-04-03 01:39:27 -07:00
sawka 0a16bb2181 add two new fields to remotetype for better messages on client 2023-04-03 01:37:55 -07:00
sawka 1810107572 fix error message 2023-04-02 23:11:29 -07:00
sawka 01a99cba03 minor updates/bugfixes 2023-04-02 23:00:55 -07:00
sawka 59fd629920 small updates webshare/archive interaction. 2023-04-02 00:20:05 -07:00
sawka 7134a21f6a updates for serving off AWS / cloudfront 2023-04-02 00:19:20 -07:00
sawka 60bbf73b14 add webshare into settings 2023-04-01 22:25:18 -07:00
sawka 8599e2b57c switch to new model of ws notification -> screen update fetch 2023-03-31 21:02:44 -07:00
sawka 10da862942 update position of webshare and webshare-copy link 2023-03-31 21:01:29 -07:00
sawka f808c7b362 better way to handle updates -- use a dedup across all updates, pack as many updates as possible into the packet 2023-03-31 18:15:51 -07:00
sawka 0a4de40e34 add rtnstate 2023-03-31 13:26:38 -07:00
sawka 5e5a6aa53f do synchronous webscreen delete 2023-03-31 13:25:57 -07:00
sawka 576f67c5a0 fix initial size 2023-03-31 12:34:13 -07:00
sawka 164ae305ce modify todos 2023-03-31 10:09:50 -07:00
sawka 6af8aec315 get renderers working, updates to remove globalmodel dependencies on simplerender. 2023-03-31 00:34:39 -07:00
sawka a7faf2040f get contentheigh updates working 2023-03-31 00:32:38 -07:00
sawka ab0852b574 implement staticRender and isVisible, and terminalheight/contentheight 2023-03-30 22:50:20 -07:00
sawka a236348e44 webshare controls, sync selected, copy 2023-03-30 22:26:01 -07:00
sawka cf7c25e78d setselectedline 2023-03-30 21:20:30 -07:00
sawka 8ea8b406d3 fix isFirst offsetdelta 2023-03-30 21:20:00 -07:00
sawka 4c7d3f2079 add contentheight 2023-03-30 20:55:27 -07:00
sawka 7ea4fb8db4 fix bug with null anchor 2023-03-30 20:54:52 -07:00
sawka 4f4949b406 use LinesView with WebShare 2023-03-30 18:33:37 -07:00
sawka 4d3ca62519 selected lines, webshare url, refactor linesview into its own component 2023-03-30 18:14:52 -07:00
sawka 274697039a webshare selected line, sync webupdate for screen:new, fix line resolver for hidden items 2023-03-30 18:08:35 -07:00
sawka 516761815b removelines and resize width 2023-03-30 13:00:54 -07:00
sawka 652c820844 simplify updates, remove line:archived (now just line:del) 2023-03-30 12:59:58 -07:00
sawka 62f6be22ea ws merging working 2023-03-30 01:00:04 -07:00
sawka 83ce367ace set archived update for archived lines 2023-03-30 00:59:05 -07:00
sawka 7609909e6d fix timeout array 2023-03-30 00:07:56 -07:00
sawka 3709381034 never omit ptypos or data from WebSharePtyData 2023-03-30 00:07:25 -07:00
sawka 414cd6bf0a webshare websocket implementation 2023-03-29 17:51:42 -07:00
sawka 394a2a9ab3 updates for new webremote, fix bug in cwd computation 2023-03-29 12:42:53 -07:00
sawka a340f93c20 add statevars to remote, add vars into webremote 2023-03-29 12:42:04 -07:00
sawka 5480d5d7f6 fix nil checking in dbutil (typed nils) 2023-03-29 12:40:53 -07:00
sawka 99cf937ffd got terminal rendering working 2023-03-29 01:05:36 -07:00
sawka 2277e16749 bug fixes for webshare 2023-03-28 22:53:59 -07:00
sawka e83abeaa5b big refactor for webshare, reduce GlobalModel dependencies 2023-03-28 22:53:18 -07:00
sawka 6a42dcf07f working on webshare 2023-03-28 17:02:05 -07:00
sawka ac08af8be0 starting on webshare website 2023-03-28 12:10:11 -07:00
sawka c3159deb57 fix prompt color 2023-03-28 01:05:21 -07:00
sawka 6753f5eaf4 add updatets 2023-03-28 01:05:01 -07:00
sawka 50caeee5c2 support int fields in DBMappable 2023-03-28 01:04:34 -07:00
sawka dde547351c add some synchronization magic for ptypos updates 2023-03-28 00:24:37 -07:00
sawka e674333621 support map types in DBMappable 2023-03-28 00:23:31 -07:00
sawka 1dbdb3d50b got screen:new and screen:del implemented 2023-03-27 18:19:17 -07:00
sawka b0269d5228 move generic db functions to dbutil (for use with PromptCentral) 2023-03-27 14:11:02 -07:00
sawka 5399283666 fix remote update bug, add 'connect now' button for disconnected remotes 2023-03-27 12:32:26 -07:00
sawka 29205ba586 for non-relative resolves, return nil if the number is out of range 2023-03-26 23:31:22 -07:00
sawka cceb490823 fix mods.ctrl, bind meta-ctrl-[num] to switch session 2023-03-26 23:30:50 -07:00
sawka 3816e908f9 less chatty 2023-03-26 23:07:47 -07:00
sawka 582cd807a8 pcloud web-share working with stubbed out promptcentral 2023-03-26 23:07:30 -07:00
sawka 150c8cfaee now calling promptcentral web updates 2023-03-26 18:48:43 -07:00
sawka aed5a4db1d multiple updates in request 2023-03-26 13:36:33 -07:00
sawka cf3644f0fd working on webshareupdates 2023-03-26 13:21:58 -07:00
sawka 8b2fea604f show shared status/indicator 2023-03-25 12:55:44 -07:00
sawka 9ffb672062 add screenupdates 2023-03-25 12:54:56 -07:00
sawka dcdf04bc82 big performance update for lines, only render 100 lines around anchor. auto-load more. now anchor is an observable and will change what LinesView renders 2023-03-24 18:37:02 -07:00
sawka 4aa2bab06e fix null screen bug 2023-03-24 18:35:29 -07:00
sawka 11649f4c66 removed line.bookmarked, added screen webshare 2023-03-24 10:46:27 -07:00
sawka bfe8ee1c02 starting on screen:webshare feature. simplify bookmarks (removed bookmarked from line) 2023-03-24 10:34:07 -07:00
sawka 5d24e75803 fix bug with pulling all rtnstate (just pull visible). fix typescript errors 2023-03-23 15:44:19 -07:00
sawka e6b9cc09ec update collapsed indicators 2023-03-23 12:16:45 -07:00
sawka 42e3a95fc6 client settings modal 2023-03-23 12:08:48 -07:00
sawka 8299d3ff54 send updated clientdata when telemetry is updated 2023-03-23 12:08:03 -07:00
sawka 74da2ff828 add control-P and control-N 2023-03-23 10:00:45 -07:00
sawka 36a6dd2a9e fix weird resize/scroll bug with losing anchor when focused on last line 2023-03-21 17:08:31 -07:00
sawka bd0cffb2c3 update schema 2023-03-20 21:38:39 -07:00
sawka c695724166 fix bug with duplicate ids for lines (now handled with refs) 2023-03-20 21:37:45 -07:00
sawka e5490df56c big checkpoint on cmd screen migration 2023-03-20 19:22:52 -07:00
sawka 963bef8425 add groupid, since it is now a screenid not a sessionid 2023-03-20 19:21:23 -07:00
sawka 02ae7ea972 checkpoint on big cmd screen migration 2023-03-20 19:20:57 -07:00
sawka cec75c0d5b add simple history expansion 2023-03-20 12:19:48 -07:00
sawka e8ffd4b4b1 center the logo 2023-03-20 00:28:49 -07:00
sawka 874632939d fix another performance issue -- when lines is hidden vismap was set to all true 2023-03-20 00:05:25 -07:00
sawka 31d79b8829 fix 'giveFocus' issue 2023-03-19 23:36:04 -07:00
sawka 651146cab1 improvements to startup and disconnect modal 2023-03-19 14:59:21 -07:00
sawka 1742a3dbbc add linenum to map 2023-03-18 11:49:00 -07:00
sawka 064e31eb2c fix history query time 2023-03-17 21:36:49 -07:00
sawka 2a2d356814 fix settings to always set the correct session/screen 2023-03-17 21:15:42 -07:00
sawka 2ba3a09285 prevent nulls (problem with my DB) 2023-03-17 18:19:59 -07:00
sawka 708cc809a0 fix typescript error 2023-03-17 16:23:35 -07:00
sawka 1ae7d72532 add ctrl-w 2023-03-17 16:21:43 -07:00
sawka e01a0a7fa0 write local-server-bin 2023-03-17 15:57:01 -07:00
sawka c4ae7b51ad better markdown styles for github 2023-03-17 15:56:38 -07:00
sawka fc5900122d hover linesettings 2023-03-17 15:12:34 -07:00
sawka f7e81b14ae send port to server 2023-03-17 15:07:45 -07:00
sawka e363ed0d0e copy sshport to real sshopts. print port number in console 2023-03-17 15:07:29 -07:00
sawka 5b74117bca bump to 0.1.7, add line:set 2023-03-17 14:47:30 -07:00
sawka 920a327f70 finish up basic line settings 2023-03-17 14:46:25 -07:00
sawka b1535b9b9d line settings modal checkpoint 2023-03-17 12:37:10 -07:00
sawka 8ae09f6924 renderers, fix all savedheight issues with layout bounce 2023-03-17 12:17:54 -07:00
sawka ac1bba94d9 checkpoint, simplerender should send onHeightChange events 2023-03-17 10:11:38 -07:00
sawka 7a1166b2fa display ... for loading 2023-03-16 21:51:03 -07:00
sawka bc96a1bbed getting markdown/image simple renderers working 2023-03-16 21:48:30 -07:00
sawka 5bc6f1fd6c set renderer from kwargs 2023-03-16 21:46:10 -07:00
sawka efb63a1466 add screenid to cmd, remove sessionid from screenlines 2023-03-15 18:13:36 -07:00
sawka e16c6534ad add screenid to cmd, remove sessionid from screenlines 2023-03-15 18:12:55 -07:00
sawka f86f0a78b1 restore historynum and add linenum to historyitems 2023-03-15 12:27:17 -07:00
sawka 962edd1d76 improve quick history display 2023-03-15 11:14:28 -07:00
sawka 5008c82521 remove welcome modal 2023-03-14 21:24:35 -07:00
sawka 6fe54f5fde use screenmap instead of screenlist, some tweaks to hints 2023-03-14 21:15:26 -07:00
sawka b9f10fb9b6 remove more references to window. also add 'archiving' to screen settings 2023-03-14 20:09:59 -07:00
sawka 78bd0d3788 remove windowid 2023-03-14 16:38:26 -07:00
sawka ed60723720 remove windowid 2023-03-14 16:37:22 -07:00
sawka f1aacf82fd session settings modal 2023-03-14 11:48:14 -07:00
sawka d3d540014f screen settings modal 2023-03-14 11:25:42 -07:00
sawka d5007e71cc fix alert modal styling. working on screen settings 2023-03-13 23:36:27 -07:00
sawka 8e4c9172c0 add some hints 2023-03-13 21:56:29 -07:00
sawka 6835a8ea20 small updates 2023-03-13 19:54:41 -07:00
sawka 2a7a5c739c remove incognito check for now 2023-03-13 15:54:35 -07:00
sawka f8abfcb563 bug fixes 2023-03-13 12:23:36 -07:00
sawka bdf2f92c31 swap order (activescreen needs screens set) 2023-03-13 12:23:13 -07:00
sawka 49e56f91cd bug fixes for screen primary 2023-03-13 12:10:23 -07:00
sawka 0afacbd6d2 big update to support screen consolidation 2023-03-13 12:09:17 -07:00
sawka 1059a10727 remove screens from session. add screenlinestype (replaces 'window' lines) 2023-03-13 10:50:29 -07:00
sawka fd33157130 more window/screen_window references removed 2023-03-13 02:09:29 -07:00
sawka e154aacaad checkpoint, backend changes for consolidating window and screen_window to screen 2023-03-13 01:52:30 -07:00
sawka ed6737157b background color black on startup 2023-03-12 17:38:03 -07:00
sawka ee2fd8e98f let SIGHUP or stdin close trigger a shutdown 2023-03-12 15:24:53 -07:00
sawka 861cf8d126 fix shutdown loop -- have to ignore SIGHUP 2023-03-12 15:16:49 -07:00
sawka 34d4962b7a more logging, backup db on migration, fix issue with dbmapper (writing byte arrays) 2023-03-12 14:42:18 -07:00
sawka 5c0454e66f add sharemode 2023-03-12 13:33:56 -07:00
sawka db5cecb1da first use of go generics for DB mapping functions. add cloud session tables. refactor some of dbops to use new generics. 2023-03-09 18:44:01 -08:00
sawka f2529581e1 checkpoint, cloud sessions 2023-03-08 17:16:06 -08:00
sawka f5fd231208 promptenc for encrypting/decrypting some plain fields in a struct to an encrypted field (json + aead) 2023-03-08 14:38:46 -08:00
sawka 0ad1d9236a commit unused code in working version 2023-03-08 09:56:38 -08:00
sawka b20f85f8a2 commit keygen package (unused) 2023-03-08 09:50:07 -08:00
sawka b2347f0b45 commit shparse test 2023-03-08 09:49:13 -08:00
sawka c9d0aabfe5 add crypto libs 2023-03-08 09:37:52 -08:00
sawka d0138c2627 implement ctrl-u / ctrl-y in cmdinput. also start working on welcome modal 2023-03-07 20:40:30 -08:00
sawka ca527e6643 bump to v0.1.6 2023-03-06 15:53:08 -08:00
sawka feea45aa19 bump to v0.1.6 2023-03-06 15:52:53 -08:00
sawka 5986ec1398 hide playbooks feature 2023-03-06 15:51:50 -08:00
sawka 1a377a4324 history uses CmdStrCode, now supports use/copy 2023-03-06 15:50:05 -08:00
sawka 66f55ad85c fix bugs with history query paging 2023-03-06 15:42:50 -08:00
sawka 4f5c820af3 refactor the cmdstr display element 2023-03-06 14:30:53 -08:00
sawka 61fa23b854 added search filter cmds 2023-03-06 13:57:28 -08:00
sawka 454c8758cd bug fixes, allow cmd filtering 2023-03-06 13:54:38 -08:00
sawka 3eadd676ce use new history search api 2023-03-06 11:49:14 -08:00
sawka 501b067ead add a filtered search mode to history search 2023-03-06 11:47:44 -08:00
sawka aae5b81de0 updates for search by day 2023-03-05 13:54:17 -08:00
sawka 7516f880ae history search bugfixes 2023-03-05 13:53:24 -08:00
sawka 778d801b88 copy to clipboard as keyboard command as well 2023-03-05 13:24:29 -08:00
sawka 2e4d3c3da7 copied indicator -- quick flash. add copy button to cmdstr 2023-03-05 12:49:25 -08:00
sawka 04803a6c37 more advanced search options 2023-03-03 18:42:34 -08:00
sawka 56b74f35f3 allow many more history query search options 2023-03-03 18:12:24 -08:00
sawka 80388a7399 scroll to bottom if anchorline is not found 2023-03-03 18:04:53 -08:00
sawka 8a0d58e05d can now purge history items from history view 2023-03-03 13:31:45 -08:00
sawka 22d0c5687e call to purge history items 2023-03-03 13:31:16 -08:00
sawka fb432b3cda submit command now returns a promise. add lines to modelupdate 2023-03-03 12:48:29 -08:00
sawka 68430d33a1 implement alert/confirm modal. some more history view cleanup 2023-03-03 12:38:55 -08:00
sawka a81bf6ec67 fix last line scrolling 2023-03-03 12:06:17 -08:00
sawka e073effe55 working on modal 2023-03-03 10:16:31 -08:00
sawka 60e17f160f add activesessionid to switch screen 2023-03-03 10:15:57 -08:00
sawka 58a8d02f9d can preview lines inside of history view. also implement view in context 2023-03-02 23:25:45 -08:00
sawka 77d27272a5 line:view command 2023-03-02 23:24:01 -08:00
sawka b842ef3215 add lines/cmds to historyview data. fix bug with lineid not getting added for comment commands 2023-03-02 22:26:15 -08:00
sawka 075e98c4cf add getCmd to linecontainer 2023-03-02 00:41:16 -08:00
sawka adfec86d8b working on history inbox view 2023-03-02 00:33:10 -08:00
sawka 014f1132a7 working on playbooks and history view 2023-03-02 00:31:19 -08:00
sawka c3d07223f7 change unknown to question mark 2023-02-28 17:51:17 -08:00
sawka fa393e2eec make a fake cmd for 'cr'. add 'connect' 2023-02-28 17:50:42 -08:00
sawka 759a0b52c7 update icons for FA6 2023-02-27 18:01:05 -08:00
sawka 1949b76354 collapse mode for screen window view 2023-02-27 15:52:55 -08:00
sawka b557da8694 bump to v0.1.5 2023-02-27 12:28:22 -08:00
sawka 779a7f2a18 bump to v0.1.5 2023-02-27 12:27:40 -08:00
sawka 326b8d9b92 switch to fontawesome 6 2023-02-27 12:22:45 -08:00
sawka 9372d3a9d0 allow cmd text expansion 2023-02-27 00:30:17 -08:00
sawka 652930753c schema updates 2023-02-26 22:22:20 -08:00
sawka 83314c3e48 update termfontsize command /client:set 2023-02-26 14:33:01 -08:00
sawka 3cb47da584 get fontsize from clientdata 2023-02-26 14:16:42 -08:00
sawka d11d76c670 always set sw size 2023-02-26 00:04:24 -08:00
sawka 5f92086fd2 model, getclientdata 2023-02-25 23:43:06 -08:00
sawka c66bee7657 put static values for font size, re-render entire window when font size changes 2023-02-25 23:16:58 -08:00
sawka 5e68c6b2f7 get floating point width 2023-02-25 21:11:34 -08:00
sawka 472acd8d99 textmeasure 2023-02-25 21:09:04 -08:00
sawka 037664a1c8 write the full dmg name 2023-02-23 23:47:21 -08:00
sawka 132c0dacde fade in the ... 2023-02-23 23:36:35 -08:00
sawka b415af4772 fix devtool setting 2023-02-23 23:27:05 -08:00
sawka 281d964d86 improve rendering performance 2023-02-23 23:24:26 -08:00
sawka 3b1198d6b7 remove production sourcemap 2023-02-23 19:57:31 -08:00
sawka ee4cfd2d4b add db migrations 2023-02-23 17:52:54 -08:00
sawka a7af66be31 regression, input height 2023-02-23 17:51:59 -08:00
sawka 85df0837ad fix other terrible scrollbar display 2023-02-23 17:34:27 -08:00
sawka 8689ece6da start working on terrible scrollbar display 2023-02-23 16:06:44 -08:00
sawka ea3e377f6c updates for client version 2023-02-23 15:19:01 -08:00
sawka fe3fb6d377 updates for activity, buildtime, etc. 2023-02-23 15:17:47 -08:00
sawka c1b6095410 add buildtime 2023-02-23 14:50:58 -08:00
sawka 3d0ce6ea27 add close button, refactor bookmarksview to new file 2023-02-23 09:21:37 -08:00
sawka 6c116e54b0 fix invalid reference to this 2023-02-22 16:15:02 -08:00
sawka 654ff3b0b8 stub out shared sessions 2023-02-21 22:42:44 -08:00
sawka 8e1f34b93b telemetry updates 2023-02-21 22:41:56 -08:00
sawka 33af77b88c minor, finish bookmark functionality 2023-02-21 22:11:06 -08:00
sawka 7f3e688475 finish up bookmark functionality 2023-02-21 22:10:45 -08:00
sawka e4113b5f51 bookmark edit, delete, getbyid 2023-02-21 18:03:13 -08:00
sawka cc5f8f81e7 bookmark editing/delete 2023-02-21 18:02:28 -08:00
sawka 9bb9e1fd5d making progress on bookmarks page. styling markdown. external link handler 2023-02-21 14:05:34 -08:00
sawka aadf9d854d working on bookmarks, fix hover issue 2023-02-21 11:29:54 -08:00
sawka c507769421 working on bookmarks view 2023-02-20 22:32:11 -08:00
sawka 40526a6fdf bookmarks view 2023-02-20 22:08:23 -08:00
sawka 63c620aea1 get bookmarks 2023-02-20 22:00:07 -08:00
sawka 3845429fd2 insert bookmark 2023-02-20 21:39:29 -08:00
sawka e47c31e414 updates for bookmarked/pinned 2023-02-20 18:01:47 -08:00
sawka 37ffcd03c8 new bookmark tables 2023-02-20 15:42:27 -08:00
sawka d0b03c359a setscreenidx and getdbversion 2023-02-20 15:41:39 -08:00
sawka 088e00f9da bump to version v0.1.4 2023-02-16 15:49:38 -08:00
sawka 5fa7bcc108 bump to version 0.1.4 2023-02-16 15:49:22 -08:00
sawka 9c391db16c remove collapsed feature for now, fix some small issues 2023-02-16 15:47:05 -08:00
sawka 45f107a650 scroll tab into view when selected 2023-02-15 20:48:19 -08:00
sawka 70c7a1ca21 fix padding 2023-02-15 20:35:43 -08:00
sawka 844eb58920 line collapsing 2023-02-15 20:32:17 -08:00
sawka bc0abacfd2 use new external module github.com/sawka/txwrap 2023-02-14 16:17:54 -08:00
sawka 4429607eb5 refactor the data buffer functionality 2023-02-06 12:08:07 -08:00
sawka 62b9503387 sort working image renderer 2023-02-06 00:31:34 -08:00
sawka 57a8e49d73 updates for line renderer 2023-02-06 00:30:23 -08:00
sawka 573ca55c50 add stat call 2023-02-06 00:29:33 -08:00
sawka 2a1dcd97e9 add stub imagerenderer code 2023-02-05 23:01:27 -08:00
sawka c87d4f787c move reload url code to model from term 2023-02-05 23:01:02 -08:00
sawka 5e7fe63877 more refactoring 2023-02-05 22:07:57 -08:00
sawka bf1f0424a6 add remark / remark-gfm 2023-02-04 20:55:31 -08:00
sawka 237a2b083e small refactor to get ready for renderers 2023-02-03 18:29:07 -08:00
sawka a25deff1a2 working on refactoring out a 'renderer' type from TermWrap 2023-02-03 18:12:50 -08:00
sawka d6e0c038e4 minor updates 2023-02-03 16:26:56 -08:00
sawka ab92fc5f29 bump version of xtermjs 2023-02-03 14:36:17 -08:00
sawka 1d7113d91b stub out some history view code (disabled in UI right now) 2023-02-03 14:26:46 -08:00
sawka 8e77a5f84a fix issue with cmd-r 2023-02-03 14:25:14 -08:00
sawka 590e4d64da better showing of dev builds 2023-02-01 21:44:23 -08:00
sawka 171fa9128d fix invalid height error 2023-02-01 09:45:33 -08:00
sawka 9914bd080b bump version to v0.1.3 2023-02-01 00:48:00 -08:00
sawka 8466dc41ce bump version to v0.1.3 2023-02-01 00:47:39 -08:00
sawka 06aefd358f remove typo 2023-02-01 00:45:48 -08:00
sawka 9aba013e22 always show install options 2023-02-01 00:45:08 -08:00
sawka 3240b128e1 fix nil ptr exception (because GetType() returns a value even when pk is nil) 2023-02-01 00:44:31 -08:00
sawka 38b7bbfff2 setTUR will now set the usedrows into the backend. linetype sends used rows so the screen updates better on first load (perf as well) 2023-02-01 00:27:59 -08:00
sawka d34b879abb make termcontext a union, fix typing 2023-01-31 23:12:16 -08:00
sawka 7fb8c91db7 fix menu, keep hidden toggle dev tools, remove view menu, move force reload to file menu 2023-01-31 22:55:30 -08:00
sawka e52cd6eb21 remove testing context menu 2023-01-31 22:43:39 -08:00
sawka 6eb67f98fb set lineheight for tabs 2023-01-31 22:42:48 -08:00
sawka d7d6067fbb a bare enter will focus the last line in a window 2023-01-31 22:22:51 -08:00
sawka c0876a6ab6 line:setheight command 2023-01-31 22:21:19 -08:00
sawka 65e23f9f48 partial resize handling 2023-01-31 21:25:11 -08:00
sawka 381ed04153 allow multiple window updates (change window to windows) 2023-01-31 17:57:26 -08:00
sawka 108517bd08 add /screen:reset to remove all remote instances for screen 2023-01-31 17:56:56 -08:00
sawka a4b8819948 increase rundata size limits 2023-01-31 12:14:41 -08:00
sawka 6ea1dd65bb update ports 2023-01-30 11:36:02 -08:00
sawka 5f27c97dbe update ports 2023-01-30 11:35:39 -08:00
sawka 0696669c53 update schema 2023-01-28 21:15:05 -08:00
sawka cd41be5d04 use relative path for mshell 2023-01-26 14:41:26 -08:00
sawka 848f321ae7 backend version, check telemetry send more often (but send on the same interval) -- works better with computer suspend. 2023-01-25 22:49:50 -08:00
sawka 518e900403 bump to v0.1.2 2023-01-25 22:30:25 -08:00
sawka 7ac70d6fc0 bump to v0.1.2 2023-01-25 22:28:22 -08:00
sawka 76ce588b3b update icon, check in new icon, remove hardcoding of 'sawka' in comment lines 2023-01-25 22:22:51 -08:00
sawka 18048a675a fix /scren:purge hanging issue 2023-01-25 14:29:12 -08:00
sawka 67ad7d017e add session:purge (to be compatible with screen) 2023-01-25 13:57:36 -08:00
sawka 4494db19e2 append to local-server.log, don't overwrite 2023-01-25 13:57:13 -08:00
sawka ac447e072b fix excessive line rendering with mobx.computed 2023-01-23 23:34:29 -08:00
sawka 9f034f39d4 remove loading animation 2023-01-23 23:11:34 -08:00
sawka 2bb098e940 exit stdin loop on error, force a sigkill after 10s 2023-01-23 15:48:54 -08:00
sawka bf36d4f942 interactive connect -- does not force ssh batch mode 2023-01-23 13:47:57 -08:00
sawka ae15fbdf91 create remote should show remote page, and force an interactive connect 2023-01-23 13:47:36 -08:00
sawka 5914e57afc export PROMPT and PROMPT_VERSION, always start remote 2023-01-23 13:28:00 -08:00
sawka f8c675c3e7 updates to telemetry, separate telemetry commands, use json data 2023-01-23 12:54:32 -08:00
sawka 5a167961d9 set dev pcloud endpoint 2023-01-22 23:10:37 -08:00
sawka ea897bf53c send telemetry data to pcloud. pcloud dev settings (with PCLOUD_ENDPOINT). /client:show and /client:set commands (for no-telemetry) 2023-01-22 23:10:18 -08:00
sawka dc051beeb8 add client:set command 2023-01-19 11:10:12 -08:00
sawka 353bfad434 change numlines to numcommands. log all interactive eval commands to activity table. stub pcloud telemetry call 2023-01-17 16:02:44 -08:00
sawka 9fd803bc11 centralize version info for building. change 'SH' vars to 'PROMPT' 2023-01-17 09:59:31 -08:00
sawka daeef7a4d0 updates for v0.1.0, update some js packages 2023-01-16 23:44:50 -08:00
sawka 85c943f65a bump version to v0.1.1 2023-01-16 23:39:58 -08:00
sawka 64ec186fa0 new API for client to log activity 2023-01-16 23:36:52 -08:00
sawka db727b232f fix unused variable 2023-01-11 22:26:27 -08:00
sawka 8a7a114671 add create-dmg-m1 2023-01-11 22:20:23 -08:00
sawka be978a25b2 reinit focus 2023-01-11 20:53:46 -08:00
sawka aa56db0bc4 fix userhostre to accept IP addresses 2023-01-11 17:16:20 -08:00
sawka a5c921a730 new loading spinner, fix bug with terminal not displaying (complicated effect via CharSizeService interacting with display:none and dom observer with 0 height) 2023-01-02 22:54:40 -08:00
sawka 988a6c92ff context menu working cut/copy/paste with some smarts about where it is displayed 2023-01-02 14:52:53 -08:00
sawka 7ccd842bf7 allow line to be selected (don't change focus when selecting text). working on contextmenu 2023-01-02 14:08:24 -08:00
sawka 7f15092550 change back to /history 2023-01-02 12:13:55 -08:00
sawka 6a5be9652d change back to /history 2023-01-02 12:13:41 -08:00
sawka 0f599207cf clear can either archive or purge lines 2023-01-02 12:09:19 -08:00
sawka 96b25900fc archive/purge lines for clear 2023-01-02 12:09:01 -08:00
sawka 921053f1b7 don't show unknown for prompt, just show an empty prompt 2022-12-30 17:16:13 -08:00
sawka a20da453f4 cr command (bare) shows all remotes 2022-12-30 17:01:17 -08:00
sawka b7b742d3de update gitignore 2022-12-30 16:57:13 -08:00
sawka 2f7aa94405 sudo remote and colors 2022-12-29 00:07:16 -08:00
sawka 9c95aa25d1 colorize prompt for remotes 2022-12-29 00:06:53 -08:00
sawka f5e0801978 update local mshell binary path -- use the mshell packaged with Prompt app 2022-12-28 23:09:37 -08:00
sawka 7d887bc2d9 update build output paths 2022-12-28 23:08:33 -08:00
sawka 9e2424567e update gitignore 2022-12-28 23:08:07 -08:00
sawka 9ab5d1e529 implement devmode with alternate directory/ports so main/dev can be run simultaneously 2022-12-28 17:47:12 -08:00
sawka 5b98728fc6 move logo to sidebar, main-content fills vertical space 2022-12-28 17:46:15 -08:00
sawka e1e1a52e06 autoconnect remotes 2022-12-28 16:59:54 -08:00
sawka 16b808bb21 working on autoconnect 2022-12-28 13:56:19 -08:00
sawka 4e7929ee63 working on separate prompt-dev version 2022-12-28 13:47:51 -08:00
sawka cbf185a715 universal binary, prompt-dev home directory, create-dmg in scripthaus.md 2022-12-28 13:29:18 -08:00
sawka 43689ac3f8 line archived (not line:hidden). remove some debugging code 2022-12-27 23:12:27 -08:00
sawka 2dd9cf16fa working on notarization, deal with multiple instances. remove fs-ext 2022-12-27 22:55:42 -08:00
sawka 773088d070 remove debug 2022-12-27 10:58:32 -08:00
sawka 465ff194e2 move screen based on input resize 2022-12-27 10:58:11 -08:00
sawka f977d2a0d6 replace ScriptHaus with Prompt 2022-12-26 19:17:24 -08:00
sawka 73bc162824 session:show command 2022-12-26 19:06:46 -08:00
sawka 7f9b347562 frontend for session archiving 2022-12-26 18:50:22 -08:00
sawka 4974e9405f use scbase not base for fileops 2022-12-26 18:49:45 -08:00
sawka 5933287e0d unarchive session 2022-12-26 18:42:55 -08:00
sawka af16ab1aed working on session archive/delete 2022-12-26 16:09:21 -08:00
sawka a485294f0b bugfixes for screen archives 2022-12-26 12:38:47 -08:00
sawka 5882897e3e archived screens display 2022-12-26 12:36:24 -08:00
sawka 6bc948af5d woring on screen archiving 2022-12-26 12:18:13 -08:00
sawka f1a46dea82 screen archiving 2022-12-25 13:21:48 -08:00
sawka 21c4e979d4 archived for screens/sessions 2022-12-25 13:03:34 -08:00
sawka 5645a01482 archived not closed 2022-12-25 13:03:11 -08:00
sawka 962261ec35 updates for /screen:close 2022-12-23 15:56:29 -08:00
sawka ffba2f3d6c deal with line hide/show 2022-12-21 22:05:05 -08:00
sawka d2530339e4 line hidden attribute. add line:hide and line:purge commands 2022-12-21 17:45:40 -08:00
sawka b0a40ee629 signal command 2022-12-20 21:58:58 -08:00
sawka 91667e4dec process special input signals. also allow numeric signals. 2022-12-20 21:58:24 -08:00
sawka 71980589bb simple authkey based authentication between electron and local-server 2022-12-20 16:22:05 -08:00
sawka 1697010d55 handle simple authkey authentication for local-server 2022-12-20 16:16:46 -08:00
sawka 21bbab88c8 authkey get/generate. new schema for incognito/closed screens/sessions. rename scbase functions to use Prompt name 2022-12-19 18:52:08 -08:00
sawka f0b9bc6eb8 more scripthaus -> prompt renaming 2022-12-19 17:45:27 -08:00
sawka 2684aaef85 change fn prefix that mshell uses to mshell 2022-12-19 17:39:19 -08:00
sawka 7250bbb1ad rename to mshell_exittrap 2022-12-19 17:38:24 -08:00
sawka 35006dfc65 rename sh2/scripthaus to prompt. maxcommandlen set. 2022-12-19 17:36:19 -08:00
sawka 83166eb8f4 update to rename scripthaus to prompt 2022-12-19 17:35:08 -08:00
sawka 5344aef096 fix error regarding sw:set when screen is empty 2022-12-19 17:09:59 -08:00
sawka cb6712202f cleanup 2022-12-12 12:26:55 -08:00
sawka 90d32731db clean up sidebar 2022-12-12 12:11:02 -08:00
sawka 66a99adfef use capital for app name 2022-12-09 13:22:44 -08:00
sawka b82848eff3 upgrade some npm packages 2022-12-06 15:44:08 -08:00
sawka 222892e27b monofont for completions 2022-12-06 14:20:10 -08:00
sawka ff2ddd90a2 can click on linetext to select them 2022-12-06 10:24:44 -08:00
sawka 0620ff5d85 add line starring 2022-12-05 22:59:31 -08:00
sawka 8624e9c844 add line staring to schema and to cmdrunner 2022-12-05 22:59:00 -08:00
sawka 5614589922 update title 2022-12-05 22:28:09 -08:00
sawka f010758b36 mshell single writes ping packets to detect when the server has died. sends SIGHUP to children 2022-12-05 22:26:13 -08:00
sawka 39e5e6c729 remove test code 2022-12-05 15:45:26 -08:00
sawka ad2cab595d kill server on I/O write error, and add a pinger to continually send ping packets to test connection 2022-12-05 15:38:44 -08:00
sawka 44967fdeb3 add prompt icon to package. allow pty-jumping (when scrollback is too fast), fix scrolling issue by syncScrollArea on focus. 2022-12-05 15:00:53 -08:00
sawka 81554e8fd2 fix concurrent write on websocket (only happened under intense write stress) 2022-11-29 12:45:19 -08:00
sawka 5aecdffead fix production build bugs -- utf-8 encoding and index.html 2022-11-28 18:38:25 -08:00
sawka 9f94da43d1 updates for remotestate and data structure changes 2022-11-28 18:08:19 -08:00
sawka bdd8381b01 updates/bugfixes for statediff 2022-11-28 18:05:54 -08:00
sawka c6a2118451 big update, got statediff and state_base working. updates to remote_instance and cmd tables/structures 2022-11-28 18:03:02 -08:00
sawka 61a07d4025 fix down migration 2022-11-28 12:01:03 -08:00
sawka 605d0899cf checkpoint 2022-11-28 00:15:34 -08:00
sawka b2dc52e166 checkpoint 2022-11-28 00:13:00 -08:00
sawka eb3cf80329 fix json marshaling bug for statediff 2022-11-27 14:16:25 -08:00
sawka d5ea9e0221 implement cmdfinal (hangup) from server 2022-11-27 14:12:15 -08:00
sawka 4481cddadc checkpoint on statediff. bug fixes. working on more robust error handling for packetsender 2022-11-27 13:47:18 -08:00
sawka 5a151369cb line/mapdiff code 2022-11-25 15:52:29 -08:00
sawka c94c0b7c36 normalize assoc arrays on parse so then values can be compared 2022-11-25 14:21:51 -08:00
sawka 301bfaa0be write a quick set of functions to pack and unpack byte arrays 2022-11-24 15:16:18 -08:00
sawka 576d02c98f make a simple linediff 2022-11-24 15:05:08 -08:00
sawka 06c3a240b1 track rows in sw 2022-11-23 14:45:20 -08:00
sawka d286f4d6ab checkpoint, add winsize to uicontext 2022-11-23 14:34:49 -08:00
sawka a4b15ca57e checkpoint, term height 2022-11-23 14:34:05 -08:00
sawka 7882232a0e meta+command compgen working. hide compgen command from completion (underscores) 2022-11-23 11:12:05 -08:00
sawka 717461908a command compgen also needs to detect directories 2022-11-23 10:51:51 -08:00
sawka da2fe25fb8 move to simpleexpand 2022-11-22 22:59:29 -08:00
sawka 3f710eec1d working on UI cleanups 2022-11-22 22:57:35 -08:00
sawka ac8180a1ae fix default anchor value 2022-11-22 13:52:31 -08:00
sawka 00356fc297 fix comp complete 2022-11-22 00:32:27 -08:00
sawka bd3595c954 checkpoint, testing new compgen. fixed superoffset bug 2022-11-22 00:26:41 -08:00
sawka bb3e12fee7 checkpoint, extend working with all the crazy quote balancing for subs 2022-11-21 23:06:58 -08:00
sawka 75f662a188 checkpoint -- extension 2022-11-21 19:06:59 -08:00
sawka 8729d1f491 strwithpos uses rune position not byte position 2022-11-21 16:37:09 -08:00
sawka 9f7b5c8226 checkpoint, return comptype 'var' when we're in a var word 2022-11-21 14:47:00 -08:00
sawka ff11290fa0 checkpoint, none/simple both need to recurse 2022-11-21 14:25:02 -08:00
sawka ff11be5922 checkpoint on more completion/expansion 2022-11-21 12:55:53 -08:00
sawka 39ac41c448 working on expand 2022-11-19 14:05:38 -08:00
sawka d469fed490 working on getting comppos to work recursively 2022-11-18 19:05:03 -08:00
sawka 54e42ad10e checkpoint on finding command completion point 2022-11-18 16:16:31 -08:00
sawka 3474177f28 split cmdnone on command separators 2022-11-18 14:57:25 -08:00
sawka a630606020 working on integrating position. identify cmd assignment words. make group words consistent. always copy Raw runes. fixup command whitespace 2022-11-18 14:26:52 -08:00
sawka a599dc473a split words into simple commands. identify bash keywords. light parsing of bash language to get command separation 2022-11-18 00:09:18 -08:00
sawka 082b146409 extension functions, word meta 2022-11-16 23:52:10 -08:00
sawka 7f4e5c0ef1 checkpoint, starting extend 2022-11-16 22:17:38 -08:00
sawka 475d7cd647 subparse backticks and dollar double quote 2022-11-16 12:00:44 -08:00
sawka ec2de4609b add QC to word, refactor makeWord, fix special variables 2022-11-16 11:13:15 -08:00
sawka f1958eaac7 recursive parsing for double quotes, subshells, and variable expansions 2022-11-16 00:37:22 -08:00
sawka d44242fe71 checkpoint on new shparse 2022-11-15 10:27:36 -08:00
sawka b9fd4df60f words -> str. test roundtrip 2022-11-15 00:39:53 -08:00
sawka 06724528cc checkpoint 2022-11-15 00:36:30 -08:00
sawka 9da092816a checkpoint 2022-11-14 19:57:29 -08:00
sawka 55767e3256 remove shellescape dependency 2022-11-14 13:56:50 -08:00
sawka 24f17ff5e9 checkpoint shparse 2022-11-14 13:56:28 -08:00
sawka 5fa7aa52d3 updates for new compgen 2022-11-10 18:52:38 -08:00
sawka 90bcb09b3e hook up new command completion 2022-11-10 18:51:20 -08:00
sawka afbdf644bf checkpoint on comp 2022-11-10 16:00:51 -08:00
sawka f81bea6658 check in some tests for comp package 2022-11-10 15:39:13 -08:00
sawka 2ab8795643 comp checkpoint 2022-11-10 15:28:39 -08:00
sawka 055dc7c8ac checkpoint on compgen 2022-11-10 13:52:51 -08:00
sawka 01821ca094 allow variable comptype 2022-11-09 20:38:47 -08:00
sawka 848f7164a3 checkpoint on completion 2022-11-09 20:38:28 -08:00
sawka b8d4bb071a fix links to dist-dev 2022-11-08 14:36:30 -08:00
sawka d86bee87d8 partial word expansion 2022-11-04 12:28:08 -07:00
sawka 4392956f99 replace expand.Literal with safer hand-written version that only expands quoted strings and literals 2022-11-03 23:53:25 -07:00
sawka d225c988ed checkpoint on new completion parsing function 2022-11-03 19:16:14 -07:00
sawka d7b67582eb use deepequal for vars 2022-11-02 18:45:13 -07:00
sawka 76d3c10748 decls equal fn -- must parse associative arrays (order is not consistent in bash output) 2022-11-02 18:41:53 -07:00
sawka d4e4b497fb scripthaus env vars. also mshellbinaryfrompackage for install 2022-11-01 21:42:56 -07:00
sawka ee36078082 parameterize the mshell bin directory (for packaging). inject MSHELL variables for execution 2022-11-01 21:19:42 -07:00
sawka d9cd211149 packaging with scripthaus-server and mshell binaries, separate dev/prod builds. emain to launch local server from package 2022-11-01 21:18:40 -07:00
sawka 56a91a9601 update packaging to create a packaged electron app for frontend 2022-11-01 00:07:25 -07:00
sawka 7b11999d29 electron packaging 2022-10-31 16:41:44 -07:00
sawka cd0a65f120 update to electron v19.1.3 2022-10-31 14:59:31 -07:00
sawka d5142a1eb9 update packages 2022-10-31 12:51:25 -07:00
sawka d9163d6af4 use log.Printf, ensure sc home dir 2022-10-31 12:40:45 -07:00
sawka d6ba16613c store migrations in go source (via embed) 2022-10-31 12:24:21 -07:00
sawka ebb196f164 send initial local server status 2022-10-30 13:06:25 -07:00
sawka f35adf1da0 watch stdin, kill server is stdin is closed 2022-10-30 13:05:53 -07:00
sawka 4078cb1f1e local server control 2022-10-30 12:53:39 -07:00
sawka 8939c57dd8 minor, add isempty func for shellstate 2022-10-30 12:52:58 -07:00
sawka 260fc2d313 working on server control and packaging 2022-10-30 12:52:40 -07:00
sawka 9027edc0e1 disconnected modal 2022-10-28 14:17:45 -07:00
sawka 29dbf5dde9 runcommand now sets the state at the time of execution 2022-10-27 22:52:38 -07:00
sawka bba43c8540 minor css update 2022-10-27 22:24:22 -07:00
sawka 31a38cbdae state updates (yay) 2022-10-27 22:22:17 -07:00
sawka 2df33621fd stateful commands block other commands while they are running, introduce waiting state 2022-10-27 22:00:10 -07:00
sawka 1da450e61c implement reinit, also do not store 'columns' var 2022-10-27 21:59:17 -07:00
sawka 56259e3f05 fix cmd done lock ordering (actually start the cmdwait). implement reset command to re-initialize the terminal 2022-10-27 17:10:36 -07:00
sawka f8d23a68f3 minor update 2022-10-27 15:25:58 -07:00
sawka bb7f475055 updates for rtnstate 2022-10-27 00:36:03 -07:00
sawka e5d2267f27 minor updates to get state to be consistent 2022-10-27 00:34:16 -07:00
sawka 0060c8ffc2 big update to handle cmd returnstate (still need to process new state with donepacket) 2022-10-27 00:33:50 -07:00
sawka d50ed6ca6c work on evalbracketargs 2022-10-26 14:51:12 -07:00
sawka cabf8a50ff updates for new shellvars 2022-10-25 12:31:29 -07:00
sawka 245a1995e2 parse shellvariables with args 2022-10-25 12:31:07 -07:00
sawka c9195b3cfd move some sh parsing to shexec 2022-10-24 21:29:11 -07:00
sawka 674a6ef11e grab shell vars with export vars 2022-10-24 21:26:39 -07:00
sawka 5d6c77491f add shell parser 2022-10-24 15:35:01 -07:00
sawka babf4f392a input modes 2022-10-22 23:54:46 -07:00
sawka 3b7dd7c01e working on source command 2022-10-22 14:46:39 -07:00
sawka d8b5508b77 returnstate option for runpk (for sourcing files) 2022-10-22 14:45:31 -07:00
sawka c0b3db19d4 cleanups for terminal interaction 2022-10-20 16:15:21 -07:00
sawka caf8b1d151 use statediff for output for setenv, unset, and cd 2022-10-20 16:14:14 -07:00
sawka e55f7fb4fe working with new static commands 2022-10-18 18:03:02 -07:00
sawka fdc5a289a9 use packet.ShellState, send aliases and functions as part of state 2022-10-16 23:51:04 -07:00
sawka b9c3940b99 big change to execution, run command as a script and set aliases/funcs 2022-10-16 23:46:59 -07:00
sawka 1c2c8c2f4d return defined bash aliases in initpk 2022-10-15 13:45:52 -07:00
sawka 4744eaa491 handle non-running terminal keypresses 2022-10-13 18:58:21 -07:00
sawka f73baf440c fix scrollbars, lighten scrollbars when not focused 2022-10-13 16:09:26 -07:00
sawka 4892c45921 remove empty cursor line when terminal is not running 2022-10-12 13:57:15 -07:00
sawka aa2e6b471b small updates for cmd-fg 2022-10-11 23:13:34 -07:00
sawka c940c7b85b cmd-fg, update when cmd done back to input 2022-10-11 23:11:43 -07:00
sawka 5c8dabbb2c fixing focus bugs 2022-10-11 14:57:22 -07:00
sawka a0de45949f better focus handling 2022-10-11 13:25:23 -07:00
sawka 61dac018fb allow negative numbers for anchor offset 2022-10-11 13:23:38 -07:00
sawka 0bf36be982 checkpoint, focusing cmds 2022-10-11 01:11:36 -07:00
sawka 62fc2594ef checkpoint cmd-fg 2022-10-11 01:11:04 -07:00
sawka cb94936aad checkpoint on selection/fg model 2022-10-10 23:44:04 -07:00
sawka d19f29c467 single-thread DB access. send selectedline updates for run/comment commands 2022-10-10 17:30:48 -07:00
sawka 8c01aa787b add focus indicator to comment lines 2022-10-10 17:29:59 -07:00
sawka b74ed98374 add meta-pageup/meta-pagedown 2022-10-10 17:18:40 -07:00
sawka 3bc8328c02 finish up scroll to newly selected line 2022-10-10 15:21:43 -07:00
sawka 82819bbe94 updating selectedline will now scroll the window 2022-10-10 12:45:57 -07:00
sawka d04f94d481 add static version of bulma 0.9.4 2022-10-10 12:21:55 -07:00
sawka c5e3de9fdc add static version of font-awesome 4.7 2022-10-10 12:19:19 -07:00
sawka 051110cdc1 fix font loading 2022-10-10 12:08:29 -07:00
sawka 05592bda4c big overhaul of scrollsync and term loading code for UI 2022-10-07 18:25:47 -07:00
sawka e7ceecee5b l-cmd model update 2022-10-07 14:37:25 -07:00
sawka 0053ebbfa9 add cmd-l listener 2022-10-07 14:36:34 -07:00
sawka 82e88d2f61 use refs 2022-10-07 11:32:58 -07:00
sawka ab31aecf90 working on line selection / fg commands 2022-10-07 01:08:52 -07:00
sawka 43cf55b25e commands for line selection, updated resolver to allow 'S' and 'E' 2022-10-07 01:08:03 -07:00
sawka 2d089b98fb tweaks to genericresolver (and bug fix) 2022-10-06 23:58:38 -07:00
sawka 271dde4d1d checkpoint on screen window changes 2022-10-06 18:35:01 -07:00
sawka fbe652b932 add scrolltop and selectedline to screen_window 2022-10-06 18:33:54 -07:00
sawka 1939cba14f use static font files, checkpoint on focus-indicator for lines 2022-10-06 15:40:53 -07:00
sawka 4e5c1aab1c fix termsize calculations for canvas renderer 7.2px not 8px 2022-10-06 15:17:48 -07:00
sawka 7c0476350d checkpoint 2022-10-06 14:00:24 -07:00
sawka 61071de644 checkpoint -- fg/focus 2022-10-04 13:53:04 -07:00
sawka f5b9ea07a1 local flag on remote, ensure 1 local remote. on archive, change to local remote 2022-10-04 11:45:24 -07:00
sawka 539e71ad47 only show remote upgrade if initpk was received 2022-10-04 11:15:59 -07:00
sawka 788ef1f33d archive remote button (with confirm). edit remote button in remote:show 2022-10-04 11:15:35 -07:00
sawka 0173cbce23 reset pw 2022-10-04 10:52:55 -07:00
sawka 4e76514f1b edit remote checkpoint 2022-10-03 19:05:52 -07:00
sawka 998a65b873 remote editing checkpoint 2022-10-03 19:04:48 -07:00
sawka a9c2020018 update to xterm v5 2022-10-03 15:23:40 -07:00
sawka 17fb5b2552 update packages 2022-10-03 15:03:40 -07:00
sawka b91bf6bd20 checkpoint, visual editing of remotes 2022-10-03 12:25:55 -07:00
sawka 1c46b79de3 checkpoint, visual editing of remotes 2022-10-03 12:25:43 -07:00
sawka 4d075e32bf updateremote (non-visual) 2022-10-02 18:52:55 -07:00
sawka f342cae630 refactor the remote edit argument parsing 2022-10-01 13:23:36 -07:00
sawka 1cc58944b8 UI for waiting for password 2022-09-30 17:23:28 -07:00
sawka d8e7c915e5 add sshport and batchmode 2022-09-30 17:22:57 -07:00
sawka 3beb00998b support sending password to remote 2022-09-30 17:22:28 -07:00
sawka 23759b7283 working on remote:new 2022-09-30 16:23:40 -07:00
sawka 62c3390d31 use batchmode for non-manual connections. don't allow duplicate aliases for remotes 2022-09-30 16:05:48 -07:00
sawka 0b0b7307ba remote showall dialog 2022-09-30 15:42:10 -07:00
sawka 0821e35a37 checkpoint on remote:add/edit 2022-09-30 14:57:23 -07:00
sawka 534ef04cca checkpoint on remote:add dialog 2022-09-30 14:46:51 -07:00
sawka b981aafb1a merge 2022-09-26 23:25:12 -07:00
sawka 594c3472e3 remote install 2022-09-26 23:24:15 -07:00
sawka be1e1dfe90 allow context cancelation of install 2022-09-26 23:23:32 -07:00
sawka a60680f855 remote install 2022-09-26 23:23:04 -07:00
sawka ea6b571184 pass context to runinstall for cancelation 2022-09-26 21:10:08 -07:00
sawka d143ca2820 working on /remote:install 2022-09-26 21:09:43 -07:00
sawka b5c67b6260 refactoring for versioned mshell binaries on remotes 2022-09-26 13:02:34 -07:00
sawka 392a7bebdd fix primary display bounds calculation 2022-09-26 11:50:02 -07:00
sawka d251cbdd88 save/restore winsize w/ clientdata 2022-09-25 00:26:33 -07:00
sawka 49f2611764 save/restore window pos/size 2022-09-25 00:25:31 -07:00
sawka bf4fa2031b autoinstall, fix version check 2022-09-24 22:42:52 -07:00
sawka 982d600d9b checkpoint, working on autoinstall, semantic versioning, remoteshowall 2022-09-24 19:54:06 -07:00
sawka aa0f9d98d1 stub remote show all 2022-09-24 19:53:06 -07:00
sawka 4550e18b6b version string will now be a real semantic version 2022-09-24 13:53:19 -07:00
sawka 121da87eea refactor inforemoteshow out of info 2022-09-22 21:20:37 -07:00
sawka aa1542cfc0 don't overwrite mshell if no input received on stdin during install 2022-09-21 23:51:16 -07:00
sawka c63108a841 show mshellversion/uname in remote:show 2022-09-21 23:31:03 -07:00
sawka ca61597a19 send uname in initpk. remote space between uname parts 2022-09-21 23:26:53 -07:00
sawka eb00fde596 send uname/mshellversion with remotestate 2022-09-21 23:26:24 -07:00
sawka f3e61fb41d stub out add remote 2022-09-21 22:42:51 -07:00
sawka 52bad72ead minor fix for remotes display 2022-09-21 22:17:04 -07:00
sawka 21617298e9 origtermopts, clientdata to/from map 2022-09-21 22:02:38 -07:00
sawka eb143b612f move width to ScreenWindowView, and only do a setcols to ScreenWindow model object (debounce moved to view as well) 2022-09-21 17:20:16 -07:00
sawka 8f608d9d9e number formatting and better termopts formatting 2022-09-21 12:39:55 -07:00
sawka 5a6bebc51f show some line info 2022-09-20 21:50:36 -07:00
sawka a6637b51c9 getlinecmd and getlineidbyarg 2022-09-20 17:37:49 -07:00
sawka 6135a4540e add nextlinenum to window 2022-09-20 17:01:40 -07:00
sawka db142d97ec add linenum to line, nextlinenum to window 2022-09-20 17:01:25 -07:00
sawka c39a7ed0f8 use linenum and linenumtemp to display avatar linenum 2022-09-20 16:51:42 -07:00
sawka abe8cc6f2a on connect message, reset session and remote information completely (clear lists) 2022-09-20 16:42:41 -07:00
sawka bc09722ef3 use mono-font mixin 2022-09-20 14:46:53 -07:00
sawka 3b5a428542 mono-font for remotes 2022-09-20 14:41:56 -07:00
sawka eab785409a fix remoteidx insert code 2022-09-20 14:23:53 -07:00
sawka 9702fb648a getsessionsdir 2022-09-20 14:15:39 -07:00
sawka f75b75790c session stats/size 2022-09-20 14:15:20 -07:00
sawka fb51263ed3 manual minmax control for infomsg box 2022-09-16 16:37:54 -07:00
sawka fad718d571 fixup connect/disconnect to deal with connecting state. use context to cancel remote that is in connecting state 2022-09-16 12:28:09 -07:00
sawka df80d2ac08 allow MakeClientProc to be canceled with a context 2022-09-16 12:27:14 -07:00
sawka 1d3d19b7c3 only allow input while connecting 2022-09-16 12:02:46 -07:00
sawka 44e014b1ae status connecting 2022-09-15 17:44:58 -07:00
sawka 06e3a86f53 add status connecting 2022-09-15 17:44:39 -07:00
sawka b352c62397 handle remote input (can enter passwords now) 2022-09-15 17:10:02 -07:00
sawka f2e0f9457d handle remote input (can enter password manually now) 2022-09-15 17:09:04 -07:00
sawka 98d956b7c8 more progress on remotes 2022-09-15 00:37:52 -07:00
sawka fcc1737fc4 format errors 2022-09-15 00:37:17 -07:00
sawka 0e04a32e29 update to show remote pty in remoteshow window 2022-09-15 00:18:20 -07:00
sawka c600027d72 remote pty work 2022-09-15 00:17:23 -07:00
sawka 42683e6f4a working on remote pty output 2022-09-14 23:10:35 -07:00
sawka ffb29fce1a termcontext for remoteid terminals 2022-09-14 22:41:27 -07:00
sawka 1a02bb53d0 refactor infomsg 2022-09-14 17:14:27 -07:00
sawka 40c52fd195 a click on a remote runs /remote:show 2022-09-14 13:02:33 -07:00
sawka 83974e10dd resolve a remote by id or partial id 2022-09-14 13:01:52 -07:00
sawka c8b8f78249 allow remote kwarg to be passed to select a different remote for a command 2022-09-14 12:56:05 -07:00
sawka 8d78e145be sort remotes, order by remoteidx and status 2022-09-14 12:07:31 -07:00
sawka 002876a07b add remoteidx 2022-09-14 12:06:55 -07:00
sawka 95f992b1c0 working on remote display, bug fixes 2022-09-13 17:17:52 -07:00
sawka a74ee69da5 working on setting up remotes 2022-09-13 17:11:36 -07:00
sawka 53d710f709 option to send ssh errors to tty instead of stderr 2022-09-13 17:10:18 -07:00
sawka 6f71866663 remote archiving, bug fixes 2022-09-13 12:06:12 -07:00
sawka ecc737f68d fix crazy sessionid morphing bug, and add more debugging 2022-09-11 20:49:53 -07:00
sawka 677a60d735 unload terminals when they go out of view to save memory 2022-09-08 13:44:24 -07:00
sawka 400815a622 change signum to signame 2022-09-06 16:42:21 -07:00
sawka cde8bed381 switch to signame for cross system compat 2022-09-06 16:41:05 -07:00
sawka ec143de8b4 handle term resize / SIGWINCH, move from mpio to shexec (used UnknownPacketReporter). change signum to signame for cross-system compatibility 2022-09-06 16:40:41 -07:00
sawka 670f54a5b4 checkpoint 2022-09-06 13:58:07 -07:00
sawka 46f48a947c better logging for which remote received the packet 2022-09-06 13:00:30 -07:00
sawka 283d276e99 show remote/ck for messages 2022-09-06 12:58:16 -07:00
sawka 4f4e12c00a add single-from-server option to mshell, send message packets with ck back to server, report unknown packets back to server 2022-09-06 12:57:54 -07:00
sawka 8801ab147b force update usedRows when terminal is resized 2022-09-06 00:14:48 -07:00
sawka 2b7045443d update termopts for running commands, send specialinput packet 2022-09-05 20:08:59 -07:00
sawka f4ec8f85fa send window:resize command 2022-09-05 20:06:44 -07:00
sawka bc476c3c23 working on resizing terminal to match window size 2022-09-05 17:21:31 -07:00
sawka 082fb7a8b4 updates to inputpacket. inputpacket is split between datapacket and specialinputpacket 2022-09-05 16:32:08 -07:00
sawka 54d2f5d761 queue entire functions when cmdline has not been committed to DB yet. new inputpacket handling (for winsize) 2022-09-05 16:31:22 -07:00
sawka a20ee78e6d send line update via websocket synchronously before calling the cmdwait callback. ensures line arrives on fe client before any command updates or pty updates 2022-09-05 14:54:17 -07:00
sawka 54e0ecffe1 create a remote update queue to ensure that we send the line update before we send cmd updates 2022-09-05 14:49:23 -07:00
sawka d6d7e8bb25 send connect from ws and get session/remotes updates 2022-09-05 12:42:48 -07:00
sawka b980fd6b74 on ws connect, send sessionlist and remotelist 2022-09-05 12:42:09 -07:00
sawka 74953c71ac more remote notifications (to keep FE in sync) 2022-09-04 13:51:49 -07:00
sawka fb899cd458 read ptyoffset from header and initialize appropriately 2022-09-03 23:57:35 -07:00
sawka c3961891ce pass realoffset back in header for /api/ptyout 2022-09-03 23:57:05 -07:00
sawka 225f120fbe move width from ScreenWindowView to ScreenWindow. pass termopts.cols in uicontext to cmdrunner 2022-09-03 23:39:50 -07:00
sawka 57b54198e5 limit maxptysize 2022-09-03 23:38:35 -07:00
sawka 3639e2454d send termopts.cols to cmdrunner 2022-09-03 23:36:15 -07:00
sawka 39dacb988a default term rows should be 24 (not 25), add min/max values as well 2022-09-03 23:26:57 -07:00
sawka 247647cea8 remote connect/disconnect working. fix issue with remoteconnected in resolver. working on remote:new 2022-09-01 12:47:10 -07:00
sawka 4a2b3cc381 remotes update in model update 2022-08-31 23:15:18 -07:00
sawka d55bb8812b finishing up historytype and making remotes update 2022-08-31 23:12:26 -07:00
sawka 3ab2023423 show global/session history 2022-08-31 13:29:59 -07:00
sawka f2451329cd suppress Cmd-W (close window) 2022-08-31 13:29:06 -07:00
sawka 1a88d564bb return different history types 2022-08-31 13:28:52 -07:00
sawka 604ec459db pass size always to createMainWindow 2022-08-31 12:46:18 -07:00
sawka 3936db0429 allow nil for display 2022-08-31 12:45:59 -07:00
sawka 86f3eabf5e remote bugfix and filter remotes on client side 2022-08-31 12:01:16 -07:00
sawka bdf5e0fc09 filter history by remote 2022-08-31 12:00:53 -07:00
sawka e2212ad661 history query opts 2022-08-31 00:02:16 -07:00
sawka 8b11af6822 add non-parsing commands to history 2022-08-31 00:01:42 -07:00
sawka 9ed993078d big update to get base history info panel working 2022-08-30 23:12:37 -07:00
sawka 76854b6079 remote get-history-items, add show param and session/window ids to history command 2022-08-30 23:11:06 -07:00
sawka 087c0c4f1f history checkpoint 2022-08-30 17:05:35 -07:00
sawka d037666ad1 checkpoint on history rendering 2022-08-30 15:25:51 -07:00
sawka 35a2fb71af checkpoint on layout of history info panel 2022-08-30 12:58:06 -07:00
sawka 8eab57e1ba checkpoint on history info panel, move info management to input model 2022-08-30 12:22:42 -07:00
sawka 8e4b02cec4 run mshell env in interactive bash shell with a new pty. this picks up special interactive environment vars from bash startup scripts 2022-08-30 00:23:03 -07:00
sawka 387eda2a3d checkpoint on new historymodel 2022-08-29 21:58:04 -07:00
sawka c03bbe8715 working on history queries 2022-08-29 19:18:02 -07:00
sawka 03dd6b1a7e pass 'uicontext' with fecmd, use that to resolve ids instead of kwargs. other bug fixes 2022-08-29 16:31:06 -07:00
sawka c4d45ef344 pageup/pagedown by page 'size' 2022-08-29 15:42:50 -07:00
sawka b0b6f18cfb scroll lines, uicontext 2022-08-29 13:54:11 -07:00
sawka b8311c4e77 prevent some info message flash when running commands. pass 'interactive' flag for commands run through cmdinput 2022-08-29 11:23:20 -07:00
sawka 15178248a2 history item types 2022-08-28 14:24:25 -07:00
sawka f2a5985349 working on history command, remote:showall 2022-08-28 14:24:05 -07:00
sawka 3a8f3dab38 lines spacer to have content scroll up from bottom 2022-08-26 22:07:12 -07:00
sawka 9d6cc1f67a clear window 2022-08-26 22:01:29 -07:00
sawka aff174fa80 tab colors 2022-08-26 21:44:18 -07:00
sawka 9f794d6590 tab colors 2022-08-26 21:43:48 -07:00
sawka 1997b9ea44 implement screen:set name 2022-08-26 17:51:28 -07:00
sawka 152db74075 add merge to Screen object 2022-08-26 17:50:15 -07:00
sawka c3d3647111 use new relative arguments for screen switching instead of computing it on FE 2022-08-26 17:35:36 -07:00
sawka 9b6d4e928d use generic resolver for screens 2022-08-26 17:29:32 -07:00
sawka e75765ee11 sessions update for get-all-sessions, show sessionidx number and no hash sign 2022-08-26 17:28:56 -07:00
sawka ca29e28c85 register handlers instead of a switch statement. make resolve more generic 2022-08-26 17:17:33 -07:00
sawka 773e881bf6 move resolver into its own file 2022-08-26 16:24:07 -07:00
sawka 46ba21030b save/restore activesessionid, set session name, much more sophisticated session switching logic 2022-08-26 16:21:19 -07:00
sawka 00b88f7f13 fix regexp, add dump argument to show parsed command 2022-08-26 13:18:26 -07:00
sawka dc8cba79da add quoting/shell-parsing for commands 2022-08-26 13:12:17 -07:00
sawka e677455419 fix typescript warnings 2022-08-25 12:12:56 -07:00
sawka d0806bbd63 remove lock around connecting remote 2022-08-24 22:57:41 -07:00
sawka 35179e06ec detect screen size 2022-08-24 22:32:43 -07:00
sawka db993cf00f add scripthaus.md 2022-08-24 21:33:50 -07:00
sawka 64fc0f335a fix overscroll behavior in xterm.js terminal and deal with focus in a better way. restore scrollbars for terminals. scroll focused terminals into view. 2022-08-24 19:00:03 -07:00
sawka 8274d19e0b use interactive shell for environment 2022-08-24 18:57:13 -07:00
sawka 5b1b67cf55 quick fixes 2022-08-24 18:56:50 -07:00
sawka 0d314000ac fully support new remoteptr 2022-08-24 13:21:54 -07:00
sawka da710fc4c8 switch cmd to use RemotePtrType, make Prompt react class to display fullremoteref and cwd 2022-08-24 13:19:59 -07:00
sawka 4f686e891b big updates to remoteinstance, push changes through stack 2022-08-24 02:14:16 -07:00
sawka 2028a98784 remoteinstance naming change 2022-08-24 02:12:28 -07:00
sawka 09a072f900 run localhost mshell with cwd at HOME, not in current directory 2022-08-24 02:11:49 -07:00
sawka 51f7b0798b add prompt to cmd 2022-08-23 21:05:49 -07:00
sawka 3aeab9d427 show metacmd completions 2022-08-23 17:27:12 -07:00
sawka 3423b63213 switch back to slash, combine file and metacmd completions 2022-08-23 17:26:42 -07:00
sawka dd5e6259bd add remote:show command 2022-08-23 14:01:52 -07:00
sawka 946f31988c switch from '/' to '@' as metacommand character 2022-08-23 13:37:08 -07:00
sawka e4bf68ca3b scrolling info box 2022-08-23 13:14:57 -07:00
sawka 709920ad8e add ephemeral to line 2022-08-23 13:14:14 -07:00
sawka d984a8f82a infolines 2022-08-22 18:54:01 -07:00
sawka 429c41cfd0 show environment 2022-08-22 18:53:38 -07:00
sawka 292c76808a setenv and unset working 2022-08-22 18:38:52 -07:00
sawka f63a851b1a export ParseEnv0 and MakeEnv0 2022-08-22 17:27:55 -07:00
sawka d61246e8a4 update to env0 2022-08-22 16:28:14 -07:00
sawka dca199b492 update to use env0 2022-08-22 16:26:44 -07:00
sawka 7d06bc766c rename env to env0. add envcomplete bool 2022-08-22 16:24:53 -07:00
sawka 525fe77a5f send initpk.env in remotestate 2022-08-22 16:00:25 -07:00
sawka e26705623b add --env mode to mshell to print cwd and environment (for server initpk). needed because OSX does not support 'env -0' 2022-08-22 15:59:03 -07:00
sawka 9d150dc7e3 connectmode, add stubs for export/setenv command 2022-08-21 12:31:29 -07:00
sawka db3f780275 autoconnect -> connectmode 2022-08-21 12:26:10 -07:00
sawka b2a2b6252d send cmd updates for donepk 2022-08-19 17:14:53 -07:00
sawka f7796169f6 fix setCmd mobx.action call 2022-08-19 17:14:25 -07:00
sawka 739114045c use term.reset() not term.clear() 2022-08-19 16:38:24 -07:00
sawka 5dda89aa1a status display 2022-08-19 16:35:38 -07:00
sawka e454c170f8 don't report parse errors to console (lots of invalid terminal output). e.g. cat'ing a binary file will produce thousands of errors, but that's just how it is. 2022-08-19 15:54:38 -07:00
sawka 86a7cd59e6 use cirfile for detached commands 2022-08-19 15:28:32 -07:00
sawka 03cfabd9b6 convert ptyout files to CF files (fixed size circular buffer files). connect to remotes with their own controlling terminal and capture that terminal output. POC to send password to controlling terminal to login. 2022-08-19 13:23:00 -07:00
sawka 26bd499fac update to allow a WriteAt call for cirfiles 2022-08-19 12:51:37 -07:00
sawka e1eecae6d3 implement WriteAt, refactored and tested append, writeat still needs testing 2022-08-18 21:54:42 -07:00
sawka 38870f9c6e circular file buffer. metadata in header. uses flock to synchronize access. write metadata before and after writing file data. 2022-08-18 20:34:20 -07:00
sawka b3a05ac72e update npm modules, add remotes modal 2022-08-18 00:39:06 -07:00
sawka 1914719ad1 proof of concept, file URL to open window using will-navigate 2022-08-17 13:32:02 -07:00
sawka c6e29c3314 proof of concept, open window 2022-08-17 13:26:03 -07:00
sawka 5a835e927e update prompt for remotes, display remotes in sidebar 2022-08-17 13:06:47 -07:00
sawka 77bd1fa7bc return uname 2022-08-17 12:55:12 -07:00
sawka b142e350be capture uname 2022-08-17 12:54:40 -07:00
sawka 249bf88a4d testing a 2nd remote with mshell --server 2022-08-17 12:24:09 -07:00
sawka 9542d14473 make mshell home directory during getremoteid 2022-08-16 16:26:06 -07:00
sawka c310a4b9bc scrollintoview 2022-08-16 16:08:15 -07:00
sawka cc058490b2 cmd-up cmd-down working, new line type, remotealias 2022-08-16 15:59:28 -07:00
sawka f86de49e31 updates to remote 2022-08-16 15:08:28 -07:00
sawka b26b9924f3 updates to tables, lineid, sharemode, owneruserid 2022-08-16 12:08:26 -07:00
sawka 8186e54cd2 add client table, ensure client id / public / private key 2022-08-15 18:42:25 -07:00
sawka 550fd89472 fix datapos 2022-08-13 10:27:22 -07:00
sawka 7af1d5cee6 lazy loading, cached TUR values 2022-08-12 18:34:56 -07:00
sawka 62bbe18171 remove PosAppend weirdness and track filepos in remote 2022-08-12 13:59:31 -07:00
sawka b4e41bc36d better input handling -- expand textarea, fit textarea, up/down arrow control in textarea (w/ history) 2022-08-12 11:44:29 -07:00
sawka b70d42bca4 implement command history 2022-08-11 23:46:52 -07:00
sawka a67ae15b32 implement history 2022-08-11 23:45:15 -07:00
sawka d5cf15e946 update history table 2022-08-11 12:07:41 -07:00
sawka 034995ef2a fix typescript errors 2022-08-11 11:49:46 -07:00
sawka 291d1dc704 allow resize observer to fire conditional scroll to bottom (info panel updates) 2022-08-11 10:41:08 -07:00
sawka d5a5a9ce70 better directory vs file completion 2022-08-11 10:22:43 -07:00
sawka adca87e9db better directory vs file completion 2022-08-11 10:21:45 -07:00
sawka 5a8ffa3544 more complicated compgen for directory vs file completion 2022-08-11 10:21:11 -07:00
sawka 5082330dcf implement info panel, more control in cmd-input, completions, errors 2022-08-10 18:35:18 -07:00
sawka f4515139a1 uniq completions 2022-08-10 18:33:58 -07:00
sawka 81c564aca9 implement simple command completions 2022-08-10 18:33:32 -07:00
sawka d4528d1c42 compgen hasmore 2022-08-10 16:07:41 -07:00
sawka a175d236c1 implement /cd and /compgen 2022-08-09 14:24:57 -07:00
sawka fbb523aed8 implement compgen and cd in mshell server 2022-08-09 14:23:59 -07:00
sawka 1f4ac87a9a implement new session and switch session 2022-08-08 16:22:36 -07:00
sawka 66f547a695 implement new session and switch session 2022-08-08 16:21:46 -07:00
sawka 74b88185dc add cache for ensuresessiondir 2022-08-08 09:52:50 -07:00
sawka 15c78c8934 sync schema to schema.db 2022-08-08 08:34:59 -07:00
sawka 4785253a10 return interactive update 2022-07-15 17:53:23 -07:00
sawka 88e99fca62 add interactive flag 2022-07-15 17:52:57 -07:00
sawka 4a853ffa02 unify interactive/ws updates 2022-07-15 17:48:25 -07:00
sawka d297477807 use new global input model 2022-07-15 17:38:58 -07:00
sawka 6807547ff7 updates, switch to new fecmd packet to run all UI commands through 2022-07-15 17:37:32 -07:00
sawka 6340a3e9ff implement delete session, bug fixes 2022-07-15 01:58:30 -07:00
sawka 5b1eb383e3 screen deletion working, bug fixes 2022-07-15 01:57:45 -07:00
sawka 057637660c hook up accelerators for switching screens 2022-07-14 18:50:58 -07:00
sawka 8cdf514bb9 checkpoint on updates. can switch screens using commands 2022-07-14 18:41:49 -07:00
sawka 275e177218 checkpoint 2022-07-14 18:39:40 -07:00
sawka 879cb03da0 auto resize terminal width to window size 2022-07-14 00:54:31 -07:00
sawka 8a710669ec screen switching 2022-07-13 23:11:45 -07:00
sawka 94fd29cbad handle pty udpates again 2022-07-13 14:16:47 -07:00
sawka c1ace6f5d6 updates for getting pty updates sent again 2022-07-13 14:16:08 -07:00
sawka 05af5a8510 get input working, fix currentrowheight constant 2022-07-13 01:03:17 -07:00
sawka f4b3f94b13 add cmdinstances to allow windows/cmds to show in multiple screenwindows 2022-07-13 00:44:19 -07:00
sawka 059c98d1e0 checkpoint, getting screens integrated 2022-07-12 23:29:39 -07:00
sawka db841f2951 checkpoint, adding 'screen' concept to contain windows 2022-07-12 21:51:17 -07:00
sawka 11087c10be txwrap can now be properly nested. add json conversion functions to quick 2022-07-12 16:10:46 -07:00
sawka 4666ee8832 checkpoint 2022-07-12 14:27:40 -07:00
sawka 6351082900 checkpoint 2022-07-12 14:27:16 -07:00
sawka 2957a03864 checkpoint 2022-07-12 13:50:44 -07:00
sawka 7867edb8da pass process id as client id to ws 2022-07-12 13:20:10 -07:00
sawka 28f5e9bf05 submit command 2022-07-12 00:45:10 -07:00
sawka 9af5edd451 get terminal follow scrolling working. create windowview 2022-07-11 22:43:58 -07:00
sawka 49c8b34a7c checkpoint, moving to model 2022-07-11 17:55:03 -07:00
sawka 77bd3ed5bf checkpoint, switching to model 2022-07-11 14:43:18 -07:00
sawka 5dc0e6b651 checkpoint working on electron 2022-07-09 01:37:19 -07:00
sawka 96961822a3 map cmd-i to grab input 2022-07-08 13:45:14 -07:00
sawka f8753830ff close ptyout file 2022-07-08 13:28:22 -07:00
sawka ec6c1f5a9a working on multiple sessions/windows 2022-07-08 13:23:45 -07:00
sawka 882694b5ce get session list, switch to default session 2022-07-08 13:23:00 -07:00
sawka c4fb7d9ada updates for window type, getting window, etc 2022-07-08 13:01:37 -07:00
sawka 2e7059777b get input working 2022-07-07 22:46:49 -07:00
sawka 368c16eb60 get input working 2022-07-07 22:46:28 -07:00
sawka 554f8f1b31 input packet should use base64, add remoteid. allow untailing a full entry (when command is done) 2022-07-07 22:45:14 -07:00
sawka 5fcbe209bb implement globalstore callback for cmd status changes 2022-07-07 22:13:45 -07:00
sawka 3d29d0d34e integrate cmd status into fe tailing 2022-07-07 21:49:15 -07:00
sawka 45dfeb69f6 updates to allow cmd tailing to work with mshell 2022-07-07 21:39:25 -07:00
sawka 4f4dd67d06 comment out tailer for now 2022-07-07 21:38:05 -07:00
sawka 463187221b update tailer to use filenamegenerator. allow ptyonly option for getcmd 2022-07-07 21:37:17 -07:00
sawka 4cc55c46ca only allow one instance of sh2 to run at a time (flock). HUP all running processes when sh2 starts or remote connection ends 2022-07-07 16:29:14 -07:00
sawka 827c33095b hook up cmd cmdstr and prompt 2022-07-07 13:27:44 -07:00
sawka e4bf4b4ef8 checkpoint, pass remote vars to client for prompt str, get commands showing 2022-07-07 13:26:46 -07:00
sawka eb880e024e add hostname to init packet 2022-07-07 13:25:42 -07:00
sawka 0053a63536 fix fecmdpacket remotestate 2022-07-07 00:10:58 -07:00
sawka f7666fe480 checkpoint on storing cmd in db 2022-07-07 00:10:37 -07:00
sawka 2652a3509b add rpc to combined packet parser 2022-07-06 22:46:59 -07:00
sawka d4acb79585 data getting written to ptyout files in scripthaus dir 2022-07-06 22:46:22 -07:00
sawka 98e46399be checkpoint, getting closer to running a command via mshell server 2022-07-06 19:01:00 -07:00
sawka 353605f815 bug fixes and updates for running server with scripthaus 2022-07-06 18:59:46 -07:00
sawka 1b69bb0ac8 fix mshell server to just blindly proxy mshell single command input/output, better simpler code 2022-07-06 17:16:45 -07:00
sawka 51df0479ff sendpacket with context, initialize rpcmap 2022-07-06 14:35:27 -07:00
sawka 56e1ddf8e6 run packet opt to set term type 2022-07-06 14:06:58 -07:00
sawka a1b8234954 fix tty TERM for ssh connections when usepty is set. also ignore pty read errors 2022-07-06 12:16:37 -07:00
sawka 95f11fb418 checkpoint, getting tty output working in non-detached mode 2022-07-06 11:21:15 -07:00
sawka 9aa684882b don't send done packet when detached 2022-07-06 00:25:59 -07:00
sawka 0d585e5959 clean up --single detached mode 2022-07-06 00:21:44 -07:00
sawka 96123c8e1a checkpoint for tightened runtime semantics for calls -- always send response packets, make sure correct response ids are set, etc. 2022-07-05 23:14:14 -07:00
sawka 0c204e8b2b standardize error reporting, rpc gets resp, command get cmderr, other errors are just sent as messages 2022-07-05 17:45:46 -07:00
sawka 45fa371956 checkpoint for migrating to remoteinstance 2022-07-05 16:55:21 -07:00
sawka 2755be315d checkpoint for migrating to remoteinstance 2022-07-05 16:54:49 -07:00
sawka ef362e5ee9 tighten up packet interfaces, RpcPacketType, RpcResponsePacketType, and CommandPacketType 2022-07-05 16:53:31 -07:00
sawka 123fdfe3bb comment flow working 2022-07-05 10:51:47 -07:00
sawka b2a1560385 fix typescript errors 2022-07-04 22:37:45 -07:00
sawka 31f90d5401 checkpoint 2022-07-04 22:18:36 -07:00
sawka 5b2e88ec32 checkpoint 2022-07-04 22:18:01 -07:00
sawka 1486c0243c checkpoint, new scpacket.FeCommandPacket 2022-07-03 12:02:22 -07:00
sawka fc18df0601 checkpoint 2022-07-03 12:01:56 -07:00
sawka bfaa504249 checkpoint, reading session from server 2022-07-02 13:32:25 -07:00
sawka 17172b158c checkpoint 2022-07-02 13:31:56 -07:00
sawka e9a09d071e checkpoint, compiling with mshell --server 2022-07-01 17:38:36 -07:00
sawka 0a828b7184 tightening up server mode, fix bugs, refactor, etc. 2022-07-01 17:37:37 -07:00
sawka f08bd2427e working on remote runtime 2022-07-01 14:57:42 -07:00
sawka 60199713e8 checkpoint, ensuredefaultsession 2022-07-01 14:45:33 -07:00
sawka b85be3457c checkpoint, working on db calls 2022-07-01 14:07:13 -07:00
sawka 643f08e584 checkpoint, working on setting up db 2022-07-01 12:17:19 -07:00
sawka 02029b3948 add schema 2022-07-01 10:50:09 -07:00
sawka 3f01ff44c3 add migration commands into sh2-server (because migrate cli doesn't ship with sqlite3) 2022-07-01 10:48:14 -07:00
sawka 7340d89089 get sh2-server compiling again 2022-06-30 17:02:19 -07:00
sawka b6711e7428 sanitize packets to be 7-bit ascii without control chars. dont send data/dataend when no rundata present. use os.Executable to locate mshell if running locally. more work on detached mode 2022-06-29 14:29:38 -07:00
sawka 4d8841a459 use RunPacketBuilder in server mode 2022-06-28 22:05:47 -07:00
sawka c73691ac24 move static files from remotefd content to 'rundata'. send all rundata before command start. parse rundata before command start. compatible with detached commands 2022-06-28 21:57:30 -07:00
sawka 9054c3cdcc got basic mshell --server functionality working to dispatch multiple commands 2022-06-28 19:01:33 -07:00
sawka 1d44afc10e working on server mode. extract fdcontext as interface. create packet writer/reader for mpio. hook up to serverFdContext. 2022-06-28 17:20:01 -07:00
sawka d7eb2526f0 refactor RunClientSSHCommandAndWait for server code 2022-06-28 15:04:08 -07:00
sawka 9377619e4c write auto-detect logic for arch from uname 2022-06-27 23:14:53 -07:00
sawka afd3bdb315 implement install command 2022-06-27 22:39:16 -07:00
sawka 26479f59c0 pass uname back when mshell isn't found, parse, and give install command 2022-06-27 18:42:56 -07:00
sawka ec4bd5eaa1 only send 1 line from pw file, explicitly close pw file descriptor before running command 2022-06-27 15:59:14 -07:00
sawka 0f5ee87a76 allow mshell to execute local commands 2022-06-27 15:10:17 -07:00
sawka dafe2b5a57 simplify argument parsing, hard code common ssh options 2022-06-27 14:57:01 -07:00
sawka 6574402691 create packetparser type, refactor to use 2022-06-27 12:14:07 -07:00
sawka 2a6791bcd6 combine sessionid and cmdid into one field ck (commandkey) 2022-06-27 12:03:47 -07:00
sawka 1ea8393844 update docs with sudo example 2022-06-26 01:53:07 -07:00
sawka 222deff0db implement sudo dance allowing passing the sudo password on stdin with sudo -S, and passing a different stdin fd to the command 2022-06-26 01:41:58 -07:00
sawka e8ae01efae check for input termination before init packet 2022-06-25 00:33:18 -07:00
sawka fec7721e32 refuse to run with ssh -t or -tt, detect nil runPacket 2022-06-25 00:30:41 -07:00
sawka 935500f1f1 packet debugging with --debug 2022-06-25 00:22:03 -07:00
sawka 43ed95f8fc clean up combining stdout and stderr into packet parsers, combine the channels and close appropriately 2022-06-25 00:05:37 -07:00
sawka e6776bd974 checkpoint. transfer binary data as base64. handle cwd. detect open fds. working to transfer data in non-error cases. 2022-06-24 23:42:00 -07:00
sawka 5223760a76 got basic mshell client working -- still need detectfds and extra files support 2022-06-24 13:25:09 -07:00
sawka 0267836376 move multiplexed IO to its own package independent of SHExecType (to use in mshell client) 2022-06-24 10:24:02 -07:00
sawka 4256ff5231 checkpoint -- cleanup and sync optimizations for remote client (basically working). beginning work on local client 2022-06-24 00:02:18 -07:00
sawka 52831dc723 setup extrafiles using run packet's fds field 2022-06-23 18:23:30 -07:00
sawka 29372be4ef working with fdreaders and fdwriters to properly buffer output and not exceed buffer size without acks 2022-06-23 17:37:05 -07:00
sawka c43d3ecc85 checkpoint got stdout/stderr data packets working with new remote handler 2022-06-23 12:48:45 -07:00
sawka 766d19f1bc checkpoint, switch name from sh2-runner to mshell 2022-06-23 10:16:54 -07:00
sawka eb7ac5136e updates, switch to mshell package 2022-06-23 10:15:56 -07:00
sawka 0b172cd689 add cdpacket 2022-06-23 09:56:54 -07:00
sawka 7d059fe573 small change to fix bouncy scroll scolor 2022-06-20 22:48:34 -07:00
sawka 4e18bbe44e process comment commands 2022-06-20 21:57:23 -07:00
sawka 2c62890912 call SetWinsize to set terminal size always for pty 2022-06-20 17:51:28 -07:00
sawka 92812bc613 update how usedrows is computed 2022-06-20 17:49:14 -07:00
sawka c3626a6547 add session history 2022-06-20 16:06:37 -07:00
sawka 15c3f2fc10 fix getDefaultSession, set foreground color to be not fff 2022-06-20 13:19:53 -07:00
sawka d679ff7cf3 mock up a sidebar for scripthaus 2022-06-20 13:03:20 -07:00
sawka 315a048f49 return username with init packet 2022-06-17 18:11:49 -07:00
sawka 859a1611b8 get runnerproc args from init packet 2022-06-17 18:11:16 -07:00
sawka 365e9c55a2 dark theme, follow content when at bottom, date format 2022-06-17 17:54:14 -07:00
sawka 0cce8ad503 cmd input working 2022-06-17 15:32:19 -07:00
sawka 0a6d8b8e9f input packet type 2022-06-17 15:31:07 -07:00
sawka 848100247c got stdin fifo input working 2022-06-17 15:30:42 -07:00
sawka b6a8550ab8 revert cmdtail to watch individual files (inefficient directory watching on osx). touch ptyout file before running (because of file watching) 2022-06-17 12:27:29 -07:00
sawka c8f9022db4 close runout file in main runner 2022-06-17 11:29:33 -07:00
sawka bb159bac5b got websocket ptyout tailing working 2022-06-16 22:25:07 -07:00
sawka 3497f607ce fix bug in updateTailPos, add Close() for tailers 2022-06-16 22:23:29 -07:00
sawka 2a5cde908a got streaming ptyout via websockets working 2022-06-16 22:22:47 -07:00
sawka e58cd1c4ad checkpoint, getting websockets working 2022-06-16 21:14:26 -07:00
sawka dc4baaea27 cmdtail now can support multiple tails on the same cmd with independent tail positions 2022-06-16 17:24:29 -07:00
sawka bb37a829de moving model functionality into session.ts 2022-06-16 16:34:46 -07:00
sawka 862014bd82 add windowid 2022-06-16 15:51:41 -07:00
sawka 71c67a4cc2 checkpoint, session, window, termmap 2022-06-16 15:51:17 -07:00
sawka a9f96dd983 flexible resizing logic, fix TermMap, work on ptyout 2022-06-16 12:40:09 -07:00
sawka c6165f15f4 update tailer to send packets to a channel instead of hard coding to PacketSender 2022-06-16 01:10:56 -07:00
sawka a5fedb3668 minor changes to ws 2022-06-16 01:09:56 -07:00
sawka 4f2c75af0c small updates 2022-06-16 01:08:56 -07:00
sawka 45cd98ef00 refactor term/ws into separate modules 2022-06-16 00:31:54 -07:00
sawka 6f7a883cfd updates for websocket ping/pong logic, longer timeouts 2022-06-15 18:13:16 -07:00
sawka 76ac2c4ff9 websocket connection/reconnection 2022-06-15 18:12:22 -07:00
sawka 5176128346 updates to allow parsing non-packets into raw packets (to see stderr output), and new sessionwatcher 2022-06-15 16:29:57 -07:00
sawka 0c1cacc20d capture stderr from runner process. new packet format to distinguish it from real packets. warn when the runner exits 2022-06-15 16:27:22 -07:00
sawka f8f3ce65fb get cmddata sent via websocket connection 2022-06-14 22:39:09 -07:00
sawka ecceb67f20 got session/command tailing working. server can send getcmd packets, and client responds with cmddata packets 2022-06-14 22:16:58 -07:00
sawka 0be0da9c0a resize terminal viewer with content 2022-06-14 16:02:20 -07:00
sawka 65094ad0ec updates, groundwork for tail, better parsing logic 2022-06-14 14:17:36 -07:00
sawka 54a3b082fc updates to test terminal updating / xpos 2022-06-14 14:16:32 -07:00
sawka df3b7a3bb0 run commands via run-command 2022-06-13 11:12:39 -07:00
sawka d80517caa0 run command submitted via run-command 2022-06-13 11:11:56 -07:00
sawka 22aa999a7b initial checkin of main-server 2022-06-12 13:39:48 -07:00
sawka 1a3886c437 go runner / runner-single fork flow working 2022-06-10 21:37:21 -07:00
sawka eeaeac8dc8 initial runner commit 2022-06-10 00:37:06 -07:00
sawka 751914196b initial commit 2022-06-07 17:25:35 -07:00
753 changed files with 96859 additions and 58438 deletions
-10
View File
@@ -1,10 +0,0 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
[*.{js,jsx,ts,tsx,cjs,json,yml,yaml,css,less}]
charset = utf-8
indent_style = space
indent_size = 4
-1
View File
@@ -1 +0,0 @@
* text=lf
-39
View File
@@ -1,39 +0,0 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
day: "friday"
time: "09:00"
timezone: "America/Los_Angeles"
groups:
dev-dependencies:
dependency-type: "development"
exclude-patterns:
- "*storybook*"
- "*electron*"
storybook:
patterns:
- "*storybook*"
prod-dependencies:
dependency-type: "production"
exclude-patterns:
- "*electron*"
electron:
patterns:
- "*electron*"
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
day: "friday"
time: "09:00"
timezone: "America/Los_Angeles"
- package-ecosystem: "github-actions"
directory: "/.github/workflows"
schedule:
interval: "weekly"
day: "friday"
time: "09:00"
timezone: "America/Los_Angeles"
+39 -121
View File
@@ -1,151 +1,69 @@
# Build Helper workflow - Builds, signs, and packages binaries for each supported platform, then uploads to a staging bucket in S3 for wider distribution.
# For more information on the macOS signing and notarization, see https://www.electron.build/code-signing and https://www.electron.build/configuration/mac
# For more information on the Windows Code Signing, see https://docs.digicert.com/en/digicert-keylocker/ci-cd-integrations/plugins/github-custom-action-for-keypair-signing.html and https://docs.digicert.com/en/digicert-keylocker/signing-tools/sign-authenticode-with-electron-builder-using-ksp-integration.html
name: Build Helper
run-name: Build ${{ github.ref_name }}
on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+*"
name: "Build Helper"
on: workflow_dispatch
env:
GO_VERSION: "1.22.5"
NODE_VERSION: "22.5.1"
GO_VERSION: "1.22.0"
NODE_VERSION: "21.5.0"
jobs:
runbuild:
permissions:
contents: write
outputs:
version: ${{ steps.set-version.outputs.WAVETERM_VERSION }}
strategy:
matrix:
include:
- platform: "darwin"
arch: "universal"
runner: "macos-latest-xlarge"
scripthaus: "build-package"
- platform: "linux"
arch: "amd64"
runner: "ubuntu-latest"
- platform: "linux"
runner: ubuntu-24.04-arm64-16core
- platform: "windows"
runner: "windows-latest"
# - platform: "windows"
# runner: "windows-11-arm64-16core"
scripthaus: "build-package-linux"
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: scripthaus-dev/scripthaus
path: scripthaus
- name: Install Linux Build Dependencies (Linux only)
if: matrix.platform == 'linux'
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends -y libarchive-tools libopenjp2-tools rpm squashfs-tools
# The pre-installed version of the AWS CLI has a segfault problem so we'll install it via Homebrew instead.
- name: Upgrade AWS CLI (Mac only)
if: matrix.platform == 'darwin'
run: brew update && brew install awscli
# The version of FPM that comes bundled with electron-builder doesn't include a Linux ARM target. Installing Gems onto the runner is super quick so we'll just do this for all targets.
- name: Install FPM (not Windows)
if: matrix.platform != 'windows'
run: sudo gem install fpm
- name: Install FPM (Windows only)
if: matrix.platform == 'windows'
run: gem install fpm
# General build dependencies
sudo apt-get install --no-install-recommends -y libarchive-tools libopenjp2-tools rpm
- uses: actions/setup-go@v5
with:
go-version: ${{env.GO_VERSION}}
cache-dependency-path: |
go.sum
wavesrv/go.sum
waveshell/go.sum
scripthaus/go.sum
- name: Install Scripthaus
run: |
go work use ./scripthaus;
cd scripthaus;
go get ./...;
CGO_ENABLED=1 go build -o scripthaus cmd/main.go
- uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Install Yarn
run: |
corepack enable
yarn install
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: "Set Version"
cache: "yarn"
- name: Set Version
id: set-version
run: echo "WAVETERM_VERSION=$(task version)" >> "$GITHUB_OUTPUT"
shell: bash
# Windows Code Signing Setup
- name: Set up certificate (Windows only)
if: matrix.platform == 'windows'
run: |
echo "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}" | base64 --decode > /d/Certificate_pkcs12.p12
shell: bash
- name: Set signing variables (Windows only)
if: matrix.platform == 'windows'
id: variables
run: |
echo "SM_HOST=${{ secrets.SM_HOST }}" >> "$GITHUB_ENV"
echo "SM_API_KEY=${{ secrets.SM_API_KEY }}" >> "$GITHUB_ENV"
echo "SM_CODE_SIGNING_CERT_SHA1_HASH=${{ secrets.SM_CODE_SIGNING_CERT_SHA1_HASH }}" >> "$GITHUB_ENV"
echo "SM_CLIENT_CERT_FILE=D:\\Certificate_pkcs12.p12" >> "$GITHUB_ENV"
echo "SM_CLIENT_CERT_FILE=D:\\Certificate_pkcs12.p12" >> "$GITHUB_OUTPUT"
echo "SM_CLIENT_CERT_PASSWORD=${{ secrets.SM_CLIENT_CERT_PASSWORD }}" >> "$GITHUB_ENV"
echo "C:\Program Files (x86)\Windows Kits\10\App Certification Kit" >> $GITHUB_PATH
echo "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools" >> $GITHUB_PATH
echo "C:\Program Files\DigiCert\DigiCert Keylocker Tools" >> $GITHUB_PATH
shell: bash
- name: Setup Keylocker KSP (Windows only)
if: matrix.platform == 'windows'
run: |
curl -X GET https://one.digicert.com/signingmanager/api-ui/v1/releases/Keylockertools-windows-x64.msi/download -H "x-api-key:%SM_API_KEY%" -o Keylockertools-windows-x64.msi
msiexec /i Keylockertools-windows-x64.msi /quiet /qn
C:\Windows\System32\certutil.exe -csp "DigiCert Signing Manager KSP" -key -user
smctl windows certsync
shell: cmd
# Build and upload packages
- name: Build (not Windows)
if: matrix.platform != 'windows'
run: task package
VERSION=$(node -e 'console.log(require("./version.js"))')
echo "WAVETERM_VERSION=${VERSION}" >> "$GITHUB_OUTPUT"
- name: Install Yarn Dependencies
run: yarn --frozen-lockfile
- name: Build ${{ matrix.platform }}/${{ matrix.arch }}
run: ./scripthaus/scripthaus run ${{ matrix.scripthaus }}
env:
USE_SYSTEM_FPM: true # Ensure that the installed version of FPM is used rather than the bundled one.
CSC_LINK: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_CERTIFICATE_2}}
CSC_KEY_PASSWORD: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_CERTIFICATE_PWD_2 }}
APPLE_ID: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_NOTARIZATION_APPLE_ID_2 }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_NOTARIZATION_PWD_2 }}
APPLE_TEAM_ID: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_NOTARIZATION_TEAM_ID_2 }}
- name: Build (Windows only)
if: matrix.platform == 'windows'
run: task package
env:
USE_SYSTEM_FPM: true # Ensure that the installed version of FPM is used rather than the bundled one.
CSC_LINK: ${{ steps.variables.outputs.SM_CLIENT_CERT_FILE }}
CSC_KEY_PASSWORD: ${{ secrets.SM_CLIENT_CERT_PASSWORD }}
shell: powershell # electron-builder's Windows code signing package has some compatibility issues with pwsh, so we need to use Windows Powershell
GOARCH: ${{ matrix.arch }}
CSC_LINK: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_CERTIFICATE}}
CSC_KEY_PASSWORD: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_CERTIFICATE_PWD }}
APPLE_ID: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_NOTARIZATION_PWD }}
APPLE_TEAM_ID: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
- name: Upload to S3 staging
run: task artifacts:upload
run: aws s3 cp make/ s3://waveterm-github-artifacts/staging/${{ steps.set-version.outputs.WAVETERM_VERSION }}/ --recursive --exclude "*/*" --exclude "builder-*.yml"
env:
AWS_ACCESS_KEY_ID: "${{ secrets.ARTIFACTS_KEY_ID }}"
AWS_SECRET_ACCESS_KEY: "${{ secrets.ARTIFACTS_KEY_SECRET }}"
AWS_ACCESS_KEY_ID: "${{ secrets.S3_USERID }}"
AWS_SECRET_ACCESS_KEY: "${{ secrets.S3_SECRETKEY }}"
AWS_DEFAULT_REGION: us-west-2
- name: Create draft release
uses: softprops/action-gh-release@v2
with:
prerelease: ${{ contains(github.ref_name, '-beta') }}
name: Wave Terminal ${{ github.ref_name }} Release
generate_release_notes: true
draft: true
files: |
make/*.zip
make/*.dmg
make/*.exe
make/*.msi
make/*.rpm
make/*.deb
make/*.pacman
make/*.snap
make/*.flatpak
make/*.AppImage
-83
View File
@@ -1,83 +0,0 @@
# Workflow to manage bumping the package version and pushing it to the target branch with a new tag.
# This workflow uses a GitHub App to bypass branch protection and uses the GitHub API directly to ensure commits and tags are signed.
# For more information, see this doc: https://github.com/Nautilus-Cyberneering/pygithub/blob/main/docs/how_to_sign_automatic_commits_in_github_actions.md
name: Bump Version
run-name: "branch: ${{ github.ref_name }}; semver-bump: ${{ inputs.bump }}; prerelease: ${{ inputs.is-prerelease }}"
on:
workflow_dispatch:
inputs:
bump:
description: SemVer Bump
required: true
type: choice
default: none
options:
- none
- patch
- minor
- major
is-prerelease:
description: Is Prerelease
required: true
type: boolean
default: true
env:
NODE_VERSION: "22.5.1"
jobs:
bump-version:
runs-on: ubuntu-latest
steps:
- name: Get App Token
uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.WAVE_BUILDER_APPID }}
private-key: ${{ secrets.WAVE_BUILDER_KEY }}
- uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
# General build dependencies
- uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Install Yarn
run: |
corepack enable
yarn install
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: "Bump Version: ${{ inputs.bump }}"
id: bump-version
run: echo "WAVETERM_VERSION=$( task version -- ${{ inputs.bump }} ${{inputs.is-prerelease}} )" >> "$GITHUB_OUTPUT"
shell: bash
- name: "Push version bump: ${{ steps.bump-version.outputs.WAVETERM_VERSION }}"
run: |
# Create a new commit for the package version bump in package.json
export VERSION=${{ steps.bump-version.outputs.WAVETERM_VERSION }}
export MESSAGE="chore: bump package version to $VERSION"
export FILE=package.json
export BRANCH=${{github.ref_name}}
export SHA=$( git rev-parse $BRANCH:$FILE )
export CONTENT=$( base64 -i $FILE )
gh api --method PUT /repos/:owner/:repo/contents/$FILE \
--field branch="$BRANCH" \
--field message="$MESSAGE" \
--field content="$CONTENT" \
--field sha="$SHA"
# Fetch the new commit and create a tag referencing it
git fetch
export TAG_SHA=$( git rev-parse origin/$BRANCH )
gh api --method POST /repos/:owner/:repo/git/refs \
--field ref="refs/tags/v$VERSION" \
--field sha="$TAG_SHA"
shell: bash
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
+1 -35
View File
@@ -19,9 +19,6 @@ on:
schedule:
- cron: "36 5 * * 5"
env:
NODE_VERSION: "21.5.0"
jobs:
analyze:
name: Analyze
@@ -50,27 +47,6 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: stable
cache-dependency-path: |
go.sum
- uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Install yarn
run: |
corepack enable
yarn install
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
@@ -83,21 +59,11 @@ jobs:
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
- name: Generate bindings
run: task generate
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild (not Go)
if: matrix.language != 'go'
- name: Autobuild
uses: github/codeql-action/autobuild@v3
- name: Build (Go only)
if: matrix.language == 'go'
run: |
task build:server
task build:wsh
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
-25
View File
@@ -1,25 +0,0 @@
# Workflow to copy artifacts from the staging bucket to the release bucket when a new GitHub Release is published.
name: Publish Release
run-name: Publish ${{ github.ref_name }}
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Publish from staging
if: startsWith(github.ref, 'refs/tags/')
run: "task artifacts:publish:${{ github.ref_name }}"
env:
AWS_ACCESS_KEY_ID: "${{ secrets.PUBLISHER_KEY_ID }}"
AWS_SECRET_ACCESS_KEY: "${{ secrets.PUBLISHER_KEY_SECRET }}"
AWS_DEFAULT_REGION: us-west-2
shell: bash
+26
View File
@@ -0,0 +1,26 @@
name: TestDriver.ai Regression Testing
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
schedule:
- cron: "0 21 * * *" # every day at 9pm
workflow_dispatch:
jobs:
test:
name: "TestDriver"
runs-on: ubuntu-latest
steps:
- uses: dashcamio/testdriver@main
id: testdriver
# note that .testdriver/prerun.sh runs before this, so the app has launched already
with:
prompt: |
2. click "Continue"
2. focus the Wave input with the keyboard shorcut Command + I
3. type 'ls' into the input
4. press return
5. validate Wave shows the result of 'ls'
+18 -25
View File
@@ -1,31 +1,24 @@
.task
frontend/dist
dist/
dist-dev/
frontend/node_modules
node_modules/
frontend/bindings
bindings/
*.log
bin/
*.dmg
*.exe
.DS_Store
*~
*.log
*.out
out/
.DS_Store
bin/
waveshell/bin/
wavesrv/bin/
dev-bin
local-server-bin
*.pw
build/
*.dmg
webshare/dist/
webshare/dist-dev/
temp.sql
.idea/
test/
.vscode/
make/
artifacts/
# Yarn Modern
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
*storybook.log
test-results.xml
waveterm-builds.zip
+6 -5
View File
@@ -1,8 +1,9 @@
node_modules
dist
dist-dev
static
build
bin
.git
frontend/dist
frontend/node_modules
*.min.*
frontend/app/store/services.ts
frontend/types/gotypes.d.ts
webshare
out
+4
View File
@@ -0,0 +1,4 @@
{
"tabWidth": 4,
"printWidth": 120
}
-18
View File
@@ -1,18 +0,0 @@
body {
height: 100vh;
padding: 0;
overflow: auto;
}
#storybook-root {
height: 100%;
}
.grid-item {
background-color: aquamarine;
border: 1px black solid;
&.react-grid-placeholder {
background-color: orange;
}
}
-41
View File
@@ -1,41 +0,0 @@
import type { StorybookConfig } from "@storybook/react-vite";
import type { ElectronViteConfig } from "electron-vite";
import type { UserConfig } from "vite";
const config: StorybookConfig = {
stories: ["../frontend/**/*.mdx", "../frontend/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@chromatic-com/storybook",
"@storybook/addon-interactions",
],
core: {},
framework: {
name: "@storybook/react-vite",
options: {},
},
docs: {},
managerHead: (head) => `
${head}
<meta name="robots" content="noindex" />
`,
typescript: {
reactDocgen: "react-docgen-typescript",
},
async viteFinal(config) {
const { mergeConfig } = await import("vite");
const { tsImport } = await import("tsx/esm/api");
const electronViteConfig = (await tsImport("../electron.vite.config.ts", import.meta.url))
.default as ElectronViteConfig;
return mergeConfig(config, electronViteConfig.renderer as UserConfig);
},
};
export default config;
-32
View File
@@ -1,32 +0,0 @@
// organize-imports-ignore
import type { Preview } from "@storybook/react";
import React from "react";
import { DndProvider } from "react-dnd";
import { HTML5Backend } from "react-dnd-html5-backend";
import "../frontend/app/theme.less";
import "../frontend/app/app.less";
import "../frontend/app/reset.less";
import "./global.css";
const preview: Preview = {
parameters: {
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
},
},
decorators: [
(Story) => (
<DndProvider backend={HTML5Backend}>
<Story />
</DndProvider>
),
],
tags: ["autodocs"],
};
export default preview;
+17
View File
@@ -0,0 +1,17 @@
rm ~/Desktop/WITH-LOVE-FROM-AMERICA.txt
cd ~/actions-runner/_work/testdriver/testdriver/
brew install go
brew tap scripthaus-dev/scripthaus
brew install scripthaus
npm install -g yarn
scripthaus run build-backend
echo "Yarn"
yarn
echo "Rebuild"
scripthaus run electron-rebuild
echo "Webpack"
scripthaus run webpack-build
echo "Starting Electron"
scripthaus run electron 1>/dev/null 2>&1 &
echo "Electron Done"
exit
+1 -7
View File
@@ -1,9 +1,3 @@
{
"recommendations": [
"esbenp.prettier-vscode",
"golang.go",
"dbaeumer.vscode-eslint",
"vitest.explorer",
"task.vscode-task"
]
"recommendations": ["esbenp.prettier-vscode", "golang.go", "dbaeumer.vscode-eslint"]
}
-19
View File
@@ -1,10 +1,5 @@
{
"editor.formatOnSave": true,
"editor.detectIndentation": false,
"editor.formatOnPaste": true,
"editor.tabSize": 4,
"editor.insertSpaces": false,
"prettier.useEditorConfig": true,
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
@@ -22,19 +17,5 @@
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[yaml]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.insertSpaces": true,
"editor.autoIndent": "keep"
},
"[go]": {
"editor.defaultFormatter": "golang.go"
}
}
-18
View File
@@ -1,18 +0,0 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Start Storybook",
"type": "shell",
"command": "yarn storybook",
"presentation": {
"reveal": "silent",
"panel": "shared"
},
"runOptions": {
"instanceLimit": 1,
"runOn": "folderOpen"
}
}
]
}
-1
View File
@@ -1 +0,0 @@
nodeLinker: node-modules
+78
View File
@@ -0,0 +1,78 @@
# Build Instructions for Wave Terminal
These instructions are for setting up the build on MacOS.
If you're developing on Linux please use the [Linux Build Instructions](./build-linux.md).
## Running the Development Version of Wave
If you install the production version of Wave, you'll see a semi-transparent gray sidebar, and the data for Wave is stored in the directory ~/.waveterm. The development version has a blue sidebar and stores its data in ~/.waveterm-dev. This allows the production and development versions to be run simultaneously with no conflicts. If the dev database is corrupted by development bugs, or the schema changes in development it will not affect the production copy.
## Prereqs and Tools
Download and install Go (must be at least go 1.18):
```
brew install go
```
Download and install ScriptHaus (to run the build commands):
```
brew tap scripthaus-dev/scripthaus
brew install scripthaus
```
You also need a relatively modern nodejs with npm and yarn installed.
- Node can be installed from [https://nodejs.org](https://nodejs.org).
- npm can install yarn using:
```
npm install -g yarn
```
## Clone the Repo
```
git clone git@github.com:wavetermdev/waveterm.git
```
## Building WaveShell / WaveSrv
```
scripthaus run build-backend
```
This builds the Golang backends for Wave. The binaries will put in waveshell/bin and wavesrv/bin respectively. If you're working on a new plugin or other pure frontend changes to Wave, you won't need to rebuild these unless you pull new code from the Wave Repository.
## One-Time Setup
Install modules (we use yarn):
```
yarn
```
## Running WebPack
We use webpack to build both the React and Electron App Wrapper code. They are both run together using:
```
scripthaus run webpack-watch
```
## Running the WaveTerm Dev Client
Now that webpack is running (and watching for file changes) we can finally run the WaveTerm Dev Client! To start the client run:
```
scripthaus run electron
```
To kill the client, either exit the Electron App normally or just Ctrl-C the `scripthaus run electron` command.
Because we're running webpack in watch mode, any changes you make to the typescript will be automatically picked up by the client after a refresh. Note that I've disabled hot-reloading in the webpack config, so to pick up new changes you'll have to manually refresh the WaveTerm Client window. To do that use "Option-R" (Command-R is used internally by WaveTerm and will not force a refresh).
## Debugging the Dev Client
You can use the regular Chrome DevTools to debug the frontend application. You can open the DevTools using the keyboard shortcut `Cmd-Option-I`.

Some files were not shown because too many files have changed in this diff Show More