Commit Graph
100 Commits
Author SHA1 Message Date
William Casarin 1668b3701c dave: add screenshot to readme 2025-04-30 08:44:42 -07:00
William Casarin 3dccdf2bad chrome: use actual columns noteaction executor
there is code duplication here and it is causing bugs
2025-04-22 19:07:25 -07:00
William Casarin e8a1233174 dave: bubble note actions to chrome
This allows chrome to pass note actions to other apps
2025-04-22 18:42:12 -07:00
William Casarin 4cedea9fdb dave: more flexible env config
With this I was able to get openrouter working:

DAVE_API_KEY=$OPENROUTER_API_KEY
DAVE_ENDPOINT=https://openrouter.ai/api/v1
DAVE_MODEL="google/gemini-2.0-flash-001"
RUST_LOG=async_openai=debug,notedeck_dave=debug

./target/release/notedeck
2025-04-22 16:46:38 -07:00
William Casarin 5c0874ab85 dave: give present notes a proper tool response
so the ai know we actually did something
2025-04-22 16:20:26 -07:00
William Casarin 56f5151739 dave: return tool errors back to the ai
So that it can correct itself
2025-04-22 16:05:54 -07:00
William Casarin 9692b6b9fe dave: add query rendering, fix author queries 2025-04-22 10:50:58 -07:00
William Casarin 5c8fba220c ui: add ProfilePic::from_profile_or_default
This is yet another helper, I really need to clean this
ui widget up in terms of its possible constructors...
2025-04-22 10:50:58 -07:00
William Casarin c4084a1fb5 ui: add note truncation
Truncate notes by default. We still need a show more button though
2025-04-22 10:50:58 -07:00
William Casarin e4658df847 name: display_name before name in NostrName
This is technically more currect. name is more of a username for
tagging.
2025-04-22 10:47:14 -07:00
William Casarin ba4198eeec enostr: rename to_bech to npub
a bit more clear as to what this is
2025-04-22 10:46:51 -07:00
William Casarin 88aa78dc03 dave: ensure system prompt is included when reset 2025-04-21 17:27:38 -07:00
William Casarin d4681801e8 dave: add new chat button 2025-04-21 17:10:03 -07:00
William Casarin 9ec5f1efa2 docs: improve top-level docs
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-21 13:36:36 -07:00
William Casarin 405b62c15a docs: add notedeck_chrome docs
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-21 13:31:47 -07:00
William Casarin f7e47dedee docs: add notedeck_columns readme
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-21 13:26:02 -07:00
William Casarin 5f6a69b4b3 docs: add notedeck docs
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-21 13:21:45 -07:00
William Casarin 82c0bc0718 docs: add tokenator docs
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-21 13:16:18 -07:00
William Casarin 310a835b27 docs: remove test hallucination
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-21 13:12:29 -07:00
William Casarin d617b688f1 docs: add some ui-related guides
generated using code2prompt + claude 3.7 sonnet

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-21 13:10:20 -07:00
William Casarin 0d51e25ab0 dave: improve docs with ai
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-21 12:48:33 -07:00
William Casarin 6601747eb4 dave: add readme
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-21 12:26:50 -07:00
William Casarin 2fdb36475a dave: add a few docs
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-21 12:11:21 -07:00
William Casarin 04a11fd45d dave: cleanly separate ui from logic
This is a good demo of how easy it is to build a notedeck app,
so let's detangle the ui from logic to showcase this

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-21 12:05:27 -07:00
William Casarin 5811a5f4e6 dave: improve multi-note display 2025-04-20 09:05:02 -07:00
William Casarin a33aad1f62 note: fix from_hex crash on bad note ids 2025-04-19 19:34:12 -07:00
William Casarin f496d4b8c4 dave: initial note rendering
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-18 17:03:59 -07:00
William Casarin 43310b271e ci: bump ubuntu runner
Since our current runner was deprecated

Link: https://github.com/actions/runner-images/issues/11101
2025-04-17 14:13:55 -07:00
William Casarin d04fc892a7 dave: constrain power for now
we will focus on more specific tools instead
2025-04-17 12:53:31 -07:00
William Casarin 8af80d7d10 ui: move note and profile rendering to notedeck_ui
We want to render notes in other apps like dave, so lets move
our note rendering to notedeck_ui. We rework NoteAction so it doesn't
have anything specific to notedeck_columns

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-17 12:34:43 -07:00
William Casarin e4bae57619 refactor: ocd unnecessary pass by value
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-17 08:39:47 -07:00
William Casarin 81ef677bf2 refactor: nevernest get_display_name
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-17 08:37:14 -07:00
William Casarin 8472a9b643 log: silence gif log
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-17 07:47:11 -07:00
William Casarin 7836bde868 dave: fix input box
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-17 00:16:55 -07:00
William Casarin fbdc2527ca dave: give up on plaintext formatting
its so heavily trained to use markdown, lets just use that

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-17 00:16:30 -07:00
William Casarin d30e4c53ee post: fix bug where send shortcut send unfocused inputs
Fixes: https://github.com/damus-io/notedeck/issues/810
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-16 23:52:34 -07:00
William Casarin b50bc2e988 dave: refactor a bit
pulling tokens isn't really a part of rendering,
so let's pull that out

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-16 22:41:41 -07:00
William Casarin bf18eb4e69 refactor: extract input_ui into its own function
too many things happening in the ui function

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-16 22:29:20 -07:00
William Casarin cc03f24920 refactor: move input buttons ui into its own fn
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-16 22:25:44 -07:00
William Casarin aa0c1012db misc: driveby fixes
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-16 22:20:00 -07:00
William Casarin 4a0e2fa347 dave: tweak prompt
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-16 20:35:39 -07:00
William Casarin 4260d3e9da nostrdb: fix on windows
had this on an older version for some reason
2025-04-15 08:53:30 -07:00
William Casarin b228411b8d columns: remove thread warning
yes threads suck, but this message is also annoying
2025-04-15 08:24:24 -07:00
William Casarin 66377351b3 ui: add some margin to chrome sidebar
Looks a bit better
2025-04-15 08:24:04 -07:00
William Casarin 4f0d96679d previews: disable for now
we don't use these much and it slows compile time
2025-04-15 08:20:25 -07:00
William Casarin 87794fae33 chrome: fix wallet button
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 16:37:22 -07:00
William Casarin e5c3bb4fe9 dave: fix bugs
fixed some bugs i introduced during the refactor

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 16:13:40 -07:00
William Casarin 39e2accbce multicast: broadcast context
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 16:02:50 -07:00
William Casarin 50dec5b5d5 context: implement note broadcasting
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 16:02:43 -07:00
William Casarin 956c557851 dave: only search non-replies
I think this makes the most sense for most queries

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 16:02:33 -07:00
William Casarin f1e359a5c3 dave: update to custom filters nostrdb
We will use this for filtering replies from most
requests

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 15:59:11 -07:00
William Casarin 2ed561579f dave: add a few tool docs
So that readers of this code can actually figure out
what these types actually mean.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 12:45:19 -07:00
William Casarin be47a692f6 dave: remove old file
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 12:38:36 -07:00
William Casarin d6c065694a dave: organize
move more things into their own modules

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 12:37:25 -07:00
William Casarin 2a9c5c7848 dave: reorganize ModelConfig
start to clean up the lib.rs a bit

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:53:52 -07:00
William Casarin b8c5423edd dave: don't make dave active yet
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:58 -07:00
William Casarin 4ca7bcec6d lint: fix clippy and fmt issues
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:24 -07:00
William Casarin b4d1265283 dave: tweak prompt
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:24 -07:00
William Casarin e6676a202a log: changed urlcache log to debug
its more of a debug log

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:24 -07:00
William Casarin 47e942be28 dave: fix ollama config if enabled
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:24 -07:00
William Casarin 403b0f7696 chrome: fix support route
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:24 -07:00
William Casarin 72312179d4 chrome: fix settings view
restore some chrome panel actions

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:24 -07:00
William Casarin 6dc68436e9 dave: improve query tool
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:24 -07:00
William Casarin 0294d2d1c8 dave: remove default property value and add to description
openai doesn't seem to support this

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:24 -07:00
William Casarin 686d8c6185 dave: add a bit of spacing, fix sned
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:24 -07:00
William Casarin 633cba8331 dave: introduce model config
so you can switch between openai and ollama models

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:24 -07:00
William Casarin 366827d335 dave: tweak search tool to include limit arg
So that dave can return single notes

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:24 -07:00
William Casarin 418e08541d notedeck: include frame history
for debugging.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:22 -07:00
William Casarin f36390d8f8 icons: add new_message icon
This is used for created new dave sessions

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:03 -07:00
William Casarin 7c58dc019b dave: extract search_call ui
A bit cleaner

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:03 -07:00
William Casarin fcd7c261bb chrome: initial action handling
still need settings and account nav

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:03 -07:00
William Casarin c6a7a50f81 dave: improve design
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:03 -07:00
William Casarin f412b1ac7b dave: better initial rotation
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:03 -07:00
William Casarin b8e2a16e3b dave: give dave a new home in the sidebar
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:03 -07:00
William Casarin 627c3ba9b3 assets: update columns app icon
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:03 -07:00
William Casarin 9c9b4199f5 ui crate and chrome sidebar
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:01 -07:00
William Casarin 415a052602 assets: add columns app icon
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:17:06 -07:00
William Casarin 6e751aa20a dave: fix android build 2025-04-14 11:17:06 -07:00
William Casarin 4469918fd2 dave: prepare for android 2025-04-14 11:17:06 -07:00
William Casarin cb7a3adacf dave: move quaternion to its own file 2025-04-14 11:16:43 -07:00
William Casarin 31aae7f315 dave: auto-reply, initial avatar anim
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:16:43 -07:00
William Casarin 80f02d829a clippy fixes
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:16:43 -07:00
William Casarin 0b4807f62d dave: tools working even better
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:16:42 -07:00
William Casarin 4dfb013d6a dave: toolcall parsing
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:16:13 -07:00
William Casarin 6e2c4cb695 dave: tweak prompt
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:16:13 -07:00
William Casarin 56534af698 dave: use local llama for testing for now
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:16:13 -07:00
William Casarin 89b96aeab3 dave: remove shader since we do it inline now
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:16:13 -07:00
William Casarin e7241353bb dave: add background to user messages
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:16:13 -07:00
William Casarin c3bdde59a9 dave: fix prompt and token concat 2025-04-14 11:16:13 -07:00
William Casarin d3d6a0c805 dave: only re-render dave if he's moving
we can be smarter about re-rendering in the future.
we really only need to re-render when he's moving
2025-04-14 11:16:13 -07:00
William Casarin 32f7d484f8 dave: rotation tweaks
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:16:13 -07:00
William Casarin 343f2ce410 dave: cube lighting
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:16:13 -07:00
William Casarin 968d9bc245 dave is alive
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:16:12 -07:00
William Casarin a701275460 nostrdb: only use 2 ingester threads
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:15:10 -07:00
William Casarin f0763b1278 zaps: fix invalid zaps
p tags needs to be the zap target
2025-04-12 15:39:07 -07:00
William Casarin 499bac5ca4 fix again 2025-03-23 18:49:04 -07:00
William Casarin 3cc46b8a7d attempt macos fix 2025-03-23 18:45:14 -07:00
William Casarin a2a119ec5c nostrdb: add author_kind index 2025-03-23 13:00:20 -07:00
William Casarin 23c93e1028 perf: reduce timeline overscan
I think I did this for image preloading, but it renders more things than
we need.
2025-03-23 11:30:18 -07:00
William Casarin a21a3c079c theme: fix window styles
the headers are way too big
2025-03-23 11:30:18 -07:00