Commit Graph

49 Commits

Author SHA1 Message Date
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
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
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
sawka
fc79da776c merge main into dev-0.5.1 2023-12-01 19:58:59 -08:00
sawka
1c9c470fec update typecheck to use tsconfig.json 2023-11-29 18:27:31 -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
d61c8c05a6 SIGKILL will also kill waveshell. clear PendingStateCmds and WaitingCmds on disconnect (remote.go) 2023-11-09 18:29:11 -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
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
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
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
940a187d34 update dmg build for Wave. Fix tab rounding 2023-10-29 20:02:57 -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
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
19bcf4f3ed update build-linux and scripthaus for linux builds 2023-10-18 14:23:40 -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
anandamarsh
805cb777d4
no brainer :) (#38) 2023-10-16 21:30:13 -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
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
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
d289026a98 update electron version, rename files to prompt.ts and prompt.less 2023-08-03 14:29:06 -07:00
sawka
f5331f989a update some js dependencies, update for new repo names 2023-07-26 14:23:04 -07:00
sawka
f9544546fc bug fixes and updates to get prod version of webshare working 2023-04-05 15:11:37 -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
99cf937ffd got terminal rendering working 2023-03-29 01:05:36 -07:00
sawka
ac08af8be0 starting on webshare website 2023-03-28 12:10:11 -07:00
sawka
2a2d356814 fix settings to always set the correct session/screen 2023-03-17 21:15:42 -07:00
sawka
037664a1c8 write the full dmg name 2023-02-23 23:47:21 -08:00
sawka
ea3e377f6c updates for client version 2023-02-23 15:19:01 -08:00
sawka
5a167961d9 set dev pcloud endpoint 2023-01-22 23:10:37 -08:00
sawka
8a7a114671 add create-dmg-m1 2023-01-11 22:20:23 -08:00
sawka
921053f1b7 don't show unknown for prompt, just show an empty prompt 2022-12-30 17:16:13 -08:00
sawka
cbf185a715 universal binary, prompt-dev home directory, create-dmg in scripthaus.md 2022-12-28 13:29:18 -08:00
sawka
71980589bb simple authkey based authentication between electron and local-server 2022-12-20 16:22:05 -08:00
sawka
83166eb8f4 update to rename scripthaus to prompt 2022-12-19 17:35:08 -08: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
5dc0e6b651 checkpoint working on electron 2022-07-09 01:37:19 -07:00
sawka
b2a1560385 fix typescript errors 2022-07-04 22:37:45 -07:00
sawka
751914196b initial commit 2022-06-07 17:25:35 -07:00