-
Notifications
You must be signed in to change notification settings - Fork 3
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: dagger/dagger-go-sdk
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.16.3
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: dagger/dagger-go-sdk
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.17.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 4 commits
- 10 files changed
- 22 contributors
Commits on Mar 17, 2025
-
fix incorrect Go SDK version.gen.go path (#9868)
A recent change modified the path of the version.gen.go file the Go SDK uses to know which version of the CLI to autodownload. However, the path that our release CI uses was not changed, so we ended up in a situation where the new path wasn't changed (stayed on v0.16.2) but the old (unused) one was. This manually corrects the version.gen.go file and updates CI with the correct path. Signed-off-by: Erik Sipsma <erik@sipsma.dev>
Configuration menu - View commit details
-
Copy full SHA for eed2961 - Browse repository at this point
Copy the full SHA eed2961View commit details
Commits on Mar 19, 2025
-
chore(deps): bump the engine group across 2 directories with 5 update…
…s (#9873) Bumps the engine group with 4 updates in the / directory: [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen), [github.com/charmbracelet/glamour](https://github.com/charmbracelet/glamour), [github.com/goproxy/goproxy](https://github.com/goproxy/goproxy) and [modernc.org/sqlite](https://gitlab.com/cznic/sqlite). Bumps the engine group with 1 update in the /sdk/go directory: [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen). Updates `github.com/99designs/gqlgen` from 0.17.66 to 0.17.68 - [Release notes](https://github.com/99designs/gqlgen/releases) - [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md) - [Commits](99designs/gqlgen@v0.17.66...v0.17.68) Updates `github.com/charmbracelet/glamour` from 0.8.0 to 0.9.0 - [Release notes](https://github.com/charmbracelet/glamour/releases) - [Changelog](https://github.com/charmbracelet/glamour/blob/master/.goreleaser.yml) - [Commits](charmbracelet/glamour@v0.8.0...v0.9.0) Updates `github.com/charmbracelet/lipgloss` from 1.0.0 to 1.1.0 - [Release notes](https://github.com/charmbracelet/lipgloss/releases) - [Changelog](https://github.com/charmbracelet/lipgloss/blob/master/.goreleaser.yml) - [Commits](charmbracelet/lipgloss@v1.0.0...v1.1.0) Updates `github.com/goproxy/goproxy` from 0.19.2 to 0.20.0 - [Release notes](https://github.com/goproxy/goproxy/releases) - [Changelog](https://github.com/goproxy/goproxy/blob/master/CHANGELOG.md) - [Commits](goproxy/goproxy@v0.19.2...v0.20.0) Updates `modernc.org/sqlite` from 1.36.0 to 1.36.1 - [Commits](https://gitlab.com/cznic/sqlite/compare/v1.36.0...v1.36.1) Updates `github.com/99designs/gqlgen` from 0.17.66 to 0.17.68 - [Release notes](https://github.com/99designs/gqlgen/releases) - [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md) - [Commits](99designs/gqlgen@v0.17.66...v0.17.68) --- updated-dependencies: - dependency-name: github.com/99designs/gqlgen dependency-type: direct:production update-type: version-update:semver-patch dependency-group: engine - dependency-name: github.com/charmbracelet/glamour dependency-type: direct:production update-type: version-update:semver-minor dependency-group: engine - dependency-name: github.com/charmbracelet/lipgloss dependency-type: direct:production update-type: version-update:semver-minor dependency-group: engine - dependency-name: github.com/goproxy/goproxy dependency-type: direct:production update-type: version-update:semver-minor dependency-group: engine - dependency-name: modernc.org/sqlite dependency-type: direct:production update-type: version-update:semver-patch dependency-group: engine - dependency-name: github.com/99designs/gqlgen dependency-type: direct:production update-type: version-update:semver-patch dependency-group: engine ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for cbf050e - Browse repository at this point
Copy the full SHA cbf050eView commit details -
POC: native LLM support (#9628)
* bugfix; API tweaks: asAgent->agent; asObject->state Signed-off-by: Solomon Hykes <solomon@dagger.io> * 1) Basic chaining works. 2) only flatten types that we have returned Signed-off-by: Solomon Hykes <solomon@dagger.io> * agent: small fixes * agent: prompt engineering to protect IDs; and send errors back to model for self-correction Signed-off-by: Solomon Hykes <solomon@dagger.io> * agent: extra tracing and debugging Signed-off-by: Solomon Hykes <solomon@dagger.io> * agent: remove old schema code Signed-off-by: Solomon Hykes <solomon@dagger.io> * agent: clean driver pattern for BBI Signed-off-by: Solomon Hykes <solomon@dagger.io> * fix module object state field type Signed-off-by: Alex Suraci <alex@dagger.io> * agent: support secret provider URIs in .env to configure LLM_KEY Signed-off-by: Solomon Hykes <solomon@dagger.io> * agent: load .env more securely thanks to secret providers Signed-off-by: Solomon Hykes <solomon@dagger.io> * agent: telemetry and history show tool calls & result. Signed-off-by: Solomon Hykes <solomon@dagger.io> * wip * llm: native LLM support for Dagger Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm: cleanup state management API Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm: bring back simplified middleware (disabled) Signed-off-by: Solomon Hykes <solomon@dagger.io> * re-enable object middleware. This causes module load to fail Signed-off-by: Solomon Hykes <solomon@dagger.io> * bbi/flat: don't crash on empty state Signed-off-by: Solomon Hykes <solomon@dagger.io> * Llm.tools(): dump tools available to the llm Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm: fix bug in auto-chaining Signed-off-by: Solomon Hykes <solomon@dagger.io> * follow-up fix Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm: fix "no field withExec in type Container" Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm: make model function calls synced if possible Signed-off-by: Solomon Hykes <solomon@dagger.io> * skip LLM fields for types hidden from modules Signed-off-by: Alex Suraci <alex@dagger.io> * llm: fix JSON number unmarshalling Signed-off-by: Andrea Luzzardi <al@dagger.io> * support dynamically updating core typedefs Signed-off-by: Alex Suraci <alex@dagger.io> * add .refresh command Signed-off-by: Alex Suraci <alex@dagger.io> * fix sync call Signed-off-by: Alex Suraci <alex@dagger.io> * pass around current dagql server instead of object state Signed-off-by: Erik Sipsma <erik@sipsma.dev> * Refactor LLM Core and Schema: - Add support for variable expansion in `WithPrompt`. - Introduce `WithPromptFile` for reading prompts from a file. - Rename `Run` method to `Sync` for clarity. - Extend arg documentation for core and schema functions. - Remove unused method `Please`. - Enhance `sync` function with optional `maxLoops` argument. Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm: send span on user message Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm.withPromptVar Signed-off-by: Solomon Hykes <solomon@dagger.io> * fix typo in withPromptVar schema Signed-off-by: kpenfound <kyle@dagger.io> * reveal llm spans Signed-off-by: Alex Suraci <alex@dagger.io> * rework LLM using new UI features * reveal: promotes a span from anywhere in the tree up to its containing toplevel span * actor: an emoji to display to the left of the span * message: indicates that the span represents a message, so the UI can e.g. render its logs as markdown (which is also covered via a content-type attribute) * also use passthrough + reveal to show functions corresponding to tool calls Signed-off-by: Alex Suraci <alex@dagger.io> * better error when id arg not provided Signed-off-by: Alex Suraci <alex@dagger.io> * durable to empty Choices response blind guess Signed-off-by: Alex Suraci <alex@dagger.io> * LLM API changes based on demo feedback - LLM.withPrompt() and LLM.withPromptFile() are always lazy - LLM.loop() actually runs the agent loop: send context, process replies and tool calls, repeat - LLM.ask(): removed Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm() supports model selection (openai only for now) Examples: - `llm(model: "gpt-4o")`: same as default - `llm(model: "gpt-3.5-turbo")` - `llm(model: "o1")` Signed-off-by: Solomon Hykes <solomon@dagger.io> * improved LLM routing When calling llm(): 1. If no model is specified, a default model is used, taking into account standard env variables OPENAI_MODEL and ANTHROPIC_MODEL 2. In all cases, models are routed to the correct endpoint using OPENAI_API_KEY, OPENAI_BASE_URL, ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL Additionally: - Variables may be overridden with a .env file in the current directory. - Variables for secret values (OPENAI_API_KEY, ANTHROPIC_API_KEY) may either contain the secret plaintext (basic convention) or a reference to the secret in 1password (op://...), hashicorp vault (vault://...), or a file (file://...) Note: all API endpoints are still queried by the standard OpenAI client library. This will break Anthropic endpoints, and will be fixed in a follow-up commit. Signed-off-by: Solomon Hykes <solomon@dagger.io> * chore: remove unused releaser/.dagger Signed-off-by: Justin Chadwell <me@jedevc.com> * fix(rust): allow loop keyword used in func names Signed-off-by: Justin Chadwell <me@jedevc.com> * llm router: send OPENAI_API_KEY to "other" model endpoints Signed-off-by: Solomon Hykes <solomon@dagger.io> * safely check res.Changes in openai streaming response Signed-off-by: kpenfound <kyle@dagger.io> * Clean up LLM config (does not work yet) Signed-off-by: Solomon Hykes <solomon@dagger.io> * Clean up LLM config, part 2 Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm(maxApiCalls): cap number of API calls per LLM instance Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm: laziness works like the rest of the Dagger API - LLM.sync() works like Container.sync(), Directory.sync(), etc - LLM.loop() still works but is deprecated by sync() - LLM.withPrompt, LLM.withPromptFile, LLM.withPromptVar, and all state setter functions, are lazy - LLM.lastReply, LLM.history, and all state getter functions, trigger a sync Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm: fix side-effect of laziness change, which broke BBI for module objects Signed-off-by: Solomon Hykes <solomon@dagger.io> * feat: introduce Anthropic support to `llm` type (#9656) * feat: add support to other llm clients Current codebase is currently very tied to openai library, which works for most of models as they are retrocompatible. However, Anthropic is not. This gives us the opportunity to implement the model-agnostic way of sending queries This is a hard rebase from shykes/dagger#297, implemented by samalba Porting the implementation led to a mismatch in the sendQuery function, introducing a segfault. This fixes it Signed-off-by: Guillaume de Rouville <guillaume@dagger.io> * feat: add anthropic support Signed-off-by: Guillaume de Rouville <guillaume@dagger.io> * chore: update dependencies Signed-off-by: Guillaume de Rouville <guillaume@dagger.io> --------- Signed-off-by: Guillaume de Rouville <guillaume@dagger.io> Co-authored-by: Sam Alba <216487+samalba@users.noreply.github.com> * use attr consts, fix emojis Signed-off-by: Alex Suraci <alex@dagger.io> * properly send tool results back to model previously we were recording tool results as plain messages from the assistant, and we weren't including tool calls in the history. now we send both. along the way: * keep function args map[string]any since Anthropic accepts it in that form anyway * explicitly keep track of whether a tool call errored, since Anthropic accepts an extra bool param for that. for OpenAI, just put error: in front. Signed-off-by: Alex Suraci <alex@dagger.io> * anthropic: fix calling 0-arity tools Signed-off-by: Alex Suraci <alex@dagger.io> * llm: include stdout/stderr in exec errors Signed-off-by: Alex Suraci <alex@dagger.io> * tweak stdout/stderr spacing Signed-off-by: Alex Suraci <alex@dagger.io> * fix openai error with no tool calls Signed-off-by: Alex Suraci <alex@dagger.io> * add yet another stream.Err check Signed-off-by: Alex Suraci <alex@dagger.io> * fix(llm/anthropic): add workaround to Anthropic API glitch Anthropic's API sometimes returns an empty content whilst not accepting it: `anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'messages: text content blocks must be non-empty'}}` This workaround overwrites the empty content to space character. As soon as this issue is resolved, we can remove this hack: anthropics/anthropic-sdk-python#461 (comment). Signed-off-by: Guillaume de Rouville <guillaume@dagger.io> Co-authored-by: Tibor Vass <teabee89@gmail.com> * correct sync API "shape" to be consistent with all other syncers, this has to return the ID, not the object Signed-off-by: Alex Suraci <alex@dagger.io> * llm: lowercase type getters Signed-off-by: Alex Suraci <alex@dagger.io> * feat: gemini llm provider Signed-off-by: kpenfound <kyle@dagger.io> * genai: fixes for parameterless functions and unknown format values Signed-off-by: kpenfound <kyle@dagger.io> * gemini: check msg Role for valid roles and only look at Candidate 0 Signed-off-by: kpenfound <kyle@dagger.io> * fix .refresh command Signed-off-by: Alex Suraci <alex@dagger.io> * display token usage metrics, cache anthropic * show llm token usage by default via per-metric verbosity * implement prompt caching for anthropic * always emit a span for LLM requests, instead of just when there's a message * tweak metrics display in TUI * bump openai and anthropic client deps Signed-off-by: Alex Suraci <alex@dagger.io> * tiny refactor Signed-off-by: Alex Suraci <alex@dagger.io> * fix span stdio eof causing tui empty log glitch Signed-off-by: Alex Suraci <alex@dagger.io> * core: support storing values on errors * add Error.withValue which adds a named arbitrary JSON value * Error values get translated to GraphQL error extensions * SDKs convert GraphQL extensions back into proper Error * LLM now prints all error extension values as <tags> rather than special casing buildkit.ExecError now we have rich error propagation without having to be stringly typed! Signed-off-by: Alex Suraci <alex@dagger.io> * remove unnecessary branch Signed-off-by: Alex Suraci <alex@dagger.io> * don't print error logs when exiting shell also reduce spacing above error trace link Signed-off-by: Alex Suraci <alex@dagger.io> * python: support sending error values Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com> * GC dead code this is causing problems, not sure why it was needed, but it's probably not needed anymore, guessing it predates the switch to DecodeInput Signed-off-by: Alex Suraci <alex@dagger.io> * tui: look up calls by output digest, too Currently for uploaded local dirs the UI shows the raw digest or a placeholder instead of the Host.directory call that created it. This is because the server's Host.directory actually returns a call with a custom content digest of the blob, rather than the call digest of the Host.directory call. Now when querying the DB for a call we'll also look for spans that had the digest as an output. Signed-off-by: Alex Suraci <alex@dagger.io> * add golden test for directory args Signed-off-by: Alex Suraci <alex@dagger.io> * flush only when running new command otherwise when the command exceeds screen height it just gets flushed to the scrollback leaving the prompt at the top of an empty screen Signed-off-by: Alex Suraci <alex@dagger.io> * more complete incompleteness detection The previous approach didn't work at all, and only looked for pipes at the end. Now we just YOLO parse the input and check for an IsIncomplete error. Signed-off-by: Alex Suraci <alex@dagger.io> * shell: print logs _after_ printing child rows Signed-off-by: Alex Suraci <alex@dagger.io> * fix: gemini tool call result was lost if last message was tool call (#9765) Signed-off-by: kpenfound <kyle@dagger.io> * more complete incompleteness detection The previous approach didn't work at all, and only looked for pipes at the end. Now we just YOLO parse the input and check for an IsIncomplete error. Signed-off-by: Alex Suraci <alex@dagger.io> * shell: print logs _after_ printing child rows Signed-off-by: Alex Suraci <alex@dagger.io> * fix two bugs preventing spans from being revealed Turns out the web UI has been skirting over these issues since it shows completed spans by default. We actually need to carefully convey Reveal through to Passthrough children. Also, if a span arrived in the same batch as its parent, before its parent, the RevealedSpans addition would not propagate upward. Now we do the propagation after processing the batch. Signed-off-by: Alex Suraci <alex@dagger.io> * Revert "flush only when running new command" this felt even worse since it left the current command chopped off at the top This reverts commit 4159158767398bd147df621f922f6c165e0c704b. Signed-off-by: Alex Suraci <alex@dagger.io> * fix double-printing output, by consolidating Signed-off-by: Alex Suraci <alex@dagger.io> * regen go sdk Signed-off-by: Alex Suraci <alex@dagger.io> * add dagger llm * like dagger shell, but accepts LLM prompts instead * builds up a Llm.withPrompt chain * use /with command to set the current Llm state + tools Signed-off-by: Alex Suraci <alex@dagger.io> * more accurate description for test/bench Signed-off-by: Alex Suraci <alex@dagger.io> * llm: support autocomplete, fix completion check Signed-off-by: Alex Suraci <alex@dagger.io> * chore: remove dead code This code isn't used anywhere - additionally the gql bbi has fundamental compile errors in it, I think this would need to be fundamentally reworked anyway given the more recent changes - so just removing it for now, it'll still be in the git history. Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: fix linter errors Signed-off-by: Justin Chadwell <me@jedevc.com> * llm: refactor slash commands, support --no-mod Signed-off-by: Alex Suraci <alex@dagger.io> * gemini: support streaming, instrument Signed-off-by: Alex Suraci <alex@dagger.io> * fixup google Signed-off-by: Alex Suraci <alex@dagger.io> * llm: add mode switching, /compact, /clear, /history Signed-off-by: Alex Suraci <alex@dagger.io> * fix occasional progress vomit Signed-off-by: Alex Suraci <alex@dagger.io> * llm: show connect/initialization progress Signed-off-by: Alex Suraci <alex@dagger.io> * llm: fix history never being flushed Signed-off-by: Alex Suraci <alex@dagger.io> * add debug helpers, slight refactor Signed-off-by: Alex Suraci <alex@dagger.io> * llm: add /model, Llm.withModel Signed-off-by: Alex Suraci <alex@dagger.io> * fix flushing too early Signed-off-by: Alex Suraci <alex@dagger.io> * keep new model through /clear Signed-off-by: Alex Suraci <alex@dagger.io> * fix flushing child spans too early TODO: fix blank line Signed-off-by: Alex Suraci <alex@dagger.io> * llm: show current model in prompt also, get rid of Model field, which wasn't being updated Signed-off-by: Alex Suraci <alex@dagger.io> * Llm.model: don't append provider, add .provider Signed-off-by: Alex Suraci <alex@dagger.io> * tui: flush whole trees at a time also ensure we don't miss logs from them not arriving quickly enough Signed-off-by: Alex Suraci <alex@dagger.io> * tuck away Secret.plaintext errors Signed-off-by: Alex Suraci <alex@dagger.io> * another attempt at reasonable scrollback behavior * instead of flushing all content, only flush things that don't fit onscreen anymore * only set highlight background when the tree is focused, otherwise it gets pretty confusing. this results in fewer artifacts too. Signed-off-by: Alex Suraci <alex@dagger.io> * add support for Azure OpenAI client Signed-off-by: kpenfound <kyle@dagger.io> * support LIGHT=1 for overriding markdown Signed-off-by: Alex Suraci <alex@dagger.io> * yet another attempt at reasonable scrollback * maintain scrollback buffer to ensure it doesn't all get pushed offscreen * flush content offscreen line-by-line * enter alt screen only when there's >50% scrollback to avoid jarring behavior TODO: * might be better to move all the alt screen switching into flushScrollback Signed-off-by: Alex Suraci <alex@dagger.io> * remove redundant code + comment Signed-off-by: Alex Suraci <alex@dagger.io> * tui: don't use alt screen this brings its own jank, and seems mostly unnecessary anyway now that the scrollback doesn't get consumed by the view height changing. if you scroll up while something is running you'll see weird stuff on the boundary, but i think that's just about the best we can do. Signed-off-by: Alex Suraci <alex@dagger.io> * get rid of obnoxious background causing too much jank, reduces contrast Signed-off-by: Alex Suraci <alex@dagger.io> * flush scrollback on final render, add spacing that blank line changed to being printed above new toplevel items instead Signed-off-by: Alex Suraci <alex@dagger.io> * chore(sdk/java): improve versioning (#9767) * chore(sdk/java): set version of java sdk Update all the pom.xml files when calling `sdk | java | bump` This is in preparation to release the dependencies to maven central. Signed-off-by: Yves Brissaud <gh@lgtd.io> * chore(sdk/java): fix version in user module Build the module dependencies using the version of the engine and use that version in the user module pom.xml. Signed-off-by: Yves Brissaud <gh@lgtd.io> * fix(sdk/java): fix replacement of placeholder the `dagger-module` placeholder was in conflict with a real `dagger-module` entry (generated sources) so make it more clear one is a placeholder to be sure to edit the right one Signed-off-by: Yves Brissaud <gh@lgtd.io> * update integration tests Signed-off-by: Yves Brissaud <gh@lgtd.io> --------- Signed-off-by: Yves Brissaud <gh@lgtd.io> * docs: Update docs recorder module (#9580) * docs: Add recording steps Signed-off-by: Vikram Vaswani <vikram@dagger.io> * Updated code Signed-off-by: Vikram Vaswani <vikram@dagger.io> * Removed old img module Signed-off-by: Vikram Vaswani <vikram@dagger.io> * Updated instructions Signed-off-by: Vikram Vaswani <vikram@dagger.io> * Updated code Signed-off-by: Vikram Vaswani <vikram@dagger.io> * Updated code Signed-off-by: Vikram Vaswani <vikram@dagger.io> * Fix linter Signed-off-by: Vikram Vaswani <vikram@dagger.io> * Updated code Signed-off-by: Vikram Vaswani <vikram@dagger.io> * Updated code Signed-off-by: Vikram Vaswani <vikram@dagger.io> --------- Signed-off-by: Vikram Vaswani <vikram@dagger.io> * alpine: update busybox symlink install hack (#9802) Did a bit more research and realized the hack to ensure busybox symlinks exist in time for glibc's trigger actually may be necessary to get compatibility w/ apko's behavior. The comment added in the code explains more. Signed-off-by: Erik Sipsma <erik@sipsma.dev> * docs: update list of features (#9807) * docs: update list of features Signed-off-by: Jeremy Adams <jeremy@dagger.io> * chore: update readme features Signed-off-by: Jeremy Adams <jeremy@dagger.io> --------- Signed-off-by: Jeremy Adams <jeremy@dagger.io> Co-authored-by: Greg Kogan <greg.ny@gmail.com> * notify discord on benchmark failure (#9477) * notify discord on benchmark failure Signed-off-by: Connor Braa <connor@dagger.io> do not merge: testing with secrets provider Signed-off-by: Connor Braa <connor@dagger.io> disable cancel-in-progress? Signed-off-by: Connor Braa <connor@dagger.io> pass dagger cloud token explicitly Signed-off-by: Connor Braa <connor@dagger.io> try to appease linter Signed-off-by: Connor Braa <connor@dagger.io> add op token wiring Signed-off-by: Connor Braa <connor@dagger.io> add discord webhook Signed-off-by: Connor Braa <connor@dagger.io> secret passing Signed-off-by: Connor Braa <connor@dagger.io> remove test error Signed-off-by: Connor Braa <connor@dagger.io> * add conditional to only send notifications for non-PR runs Signed-off-by: Connor Braa <connor@dagger.io> * in the op secretprovider, handle OP_SERVICE_ACCOUNT_TOKEN= as though it were unset Signed-off-by: Connor Braa <connor@dagger.io> --------- Signed-off-by: Connor Braa <connor@dagger.io> * LLM.withLLM(): allow a LLM to prompt another LLM. Works from the shell, too :) Signed-off-by: Solomon Hykes <solomon@dagger.io> * openai: enable token usage stats Signed-off-by: Alex Suraci <alex@dagger.io> * WIP: multi-object llm env Signed-off-by: Solomon Hykes <solomon@dagger.io> * llm: telemetry for builtin tool calls * Llm.setString, deprecate separate "prompt vars". Signed-off-by: Solomon Hykes <solomon@dagger.io> * wip: shell vars -> llm Signed-off-by: Alex Suraci <alex@dagger.io> * fix glob, revise prompt Signed-off-by: Alex Suraci <alex@dagger.io> * checkpoint: loading all tools, use Type@digest everywhere Signed-off-by: Alex Suraci <alex@dagger.io> * tui: don't flush pending spans otherwise they can never become active Signed-off-by: Alex Suraci <alex@dagger.io> * reveal calls Signed-off-by: Alex Suraci <alex@dagger.io> * consistently use Type@hash syntax Signed-off-by: Alex Suraci <alex@dagger.io> * fix module usage by passing around *dagql.Server Signed-off-by: Alex Suraci <alex@dagger.io> * back to single-toolset, _load -> _selectTools only tested twice but the more explicit name seems to help the model Signed-off-by: Alex Suraci <alex@dagger.io> * openai: disable parallel tool calls this is neat, but breaks chaining - maybe tune later Signed-off-by: Alex Suraci <alex@dagger.io> * fix _selectTools dumping object Signed-off-by: Alex Suraci <alex@dagger.io> * add tool arg descriptions, remove _type * don't think we need _type, doesn't seem worth a tool slot * clarifies that the object can skip the _objects call to get a variable name, and instead just pass a hash directly to _selectTools Signed-off-by: Alex Suraci <alex@dagger.io> * tweak description again Signed-off-by: Alex Suraci <alex@dagger.io> * more linting fixes Signed-off-by: Justin Chadwell <me@jedevc.com> * automatically call 'sync' on call results the model doesn't understand laziness, probably not worth trying to teach it Signed-off-by: Alex Suraci <alex@dagger.io> * syncing llm vars => shell Signed-off-by: Alex Suraci <alex@dagger.io> * fix _current dumping object response Signed-off-by: Alex Suraci <alex@dagger.io> * fix error values not propagating Signed-off-by: Alex Suraci <alex@dagger.io> * remove 'self' arg, back to relying on .current this was only added for the 'load all relevant tools' model, which has been removed. as-is this just confuses the model into calling functions against the same value expecting mutation. Signed-off-by: Alex Suraci <alex@dagger.io> * chore: add missing dagql golden tests Signed-off-by: Justin Chadwell <me@jedevc.com> * dagql: fix nil panic when Server.Select returns nil This is a little fraught - turns out Instance.Select will return nil for a nullable value (that's actually null). Briefly considered changing that, but a bunch of unit tests told me not to. Signed-off-by: Alex Suraci <alex@dagger.io> * refactor: add ShellHandler interface easier to maintain than passing around a huge bag of functions Signed-off-by: Alex Suraci <alex@dagger.io> * llm: support "one-shot" mode switching * press * to run a prompt * press ! to run shell * keep track of modes in history Signed-off-by: Alex Suraci <alex@dagger.io> * remove dead code Signed-off-by: Alex Suraci <alex@dagger.io> * llm: fix shell completion Signed-off-by: Alex Suraci <alex@dagger.io> * support swapping mode after-the-fact Signed-off-by: Alex Suraci <alex@dagger.io> * reset oneshot mode with backspace Signed-off-by: Alex Suraci <alex@dagger.io> * render our own keymap, not editline's editline's keymap is mostly intuitive, following readline/etc. - let the user discover them naturally. instead, let the user know about the !/* mode switching and not much else Signed-off-by: Alex Suraci <alex@dagger.io> * fix prompt having 'sticky' background color Signed-off-by: Alex Suraci <alex@dagger.io> * bump bubbline Signed-off-by: Alex Suraci <alex@dagger.io> * fixup merge Signed-off-by: Alex Suraci <alex@dagger.io> * fix var syncing in the brave new ShellState world Signed-off-by: Alex Suraci <alex@dagger.io> * avoid dumping large IDs to the model Signed-off-by: Alex Suraci <alex@dagger.io> * minor cleanups Signed-off-by: Alex Suraci <alex@dagger.io> * switch llm prompt from * to > Signed-off-by: Alex Suraci <alex@dagger.io> * llm: document all possible LLM configuration variables also removes the .env experimental docs about being able to pass secret provider URLs Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com> * begin assimilating llm into shell * fear not, llm stuff is lazily initialized * TODO: replace slash commands with builtins * TODO: implement >> and !! for persistent switching Signed-off-by: Alex Suraci <alex@dagger.io> * replace slash commands with builtins Signed-off-by: Alex Suraci <alex@dagger.io> * chore: refactor dagql middlewares into install hooks This simplifies the dagql middlewares into install hooks - once the object has been installed, a hook can make changes to the server *afterwards*. Additionally, we add tests for this behavior, since it's a bit fiddly. The main logic for doing this was to solve the locking problem. What was happening before this was: - Attempt to install an object (takes the lock) - Run a middleware for this installation - The middleware attempts to install it's own objects, or modify existing objects (attempts to take the lock, and deadlocks because this thread already has it) It wasn't really possible to untangle this without adding additional thread unsafety: we need to hold the lock for the duration of the install. By refactoring, we can install the object, and then just hook - importantly, the hook can't influence whether the object gets installed, which allows us to release the lock before running the middleware, which solves our weird dependency problem. Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: remove unused dagql/demo.cast Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: replace new uses of interface{} with any Signed-off-by: Justin Chadwell <me@jedevc.com> * sidequest: more elegant chaining for dumped IDs before: ● Attaching terminal: container: Container! Container.from(address: "docker.io/library/golang:latest@sha256:8678013a2add364dc3d5df2acc2b36893fbbd60ebafa5d5149bc22158512f021"): Container! Container.withExec(args: ["go", "version"]): Container! after: ● Attaching terminal: container: Container! .from(address: "docker.io/library/golang:latest@sha256:8678013a2add364dc3d5df2acc2b36893fbbd60ebafa5d5149bc22158512f021"): Container! .withExec(args: ["go", "version"]): Container! Signed-off-by: Alex Suraci <alex@dagger.io> * fix: ensure rust sdk always correctly formats id scalars Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: rename Llm to LLM Signed-off-by: Justin Chadwell <me@jedevc.com> * render step errors beneath logs otherwise these are super easy to miss Signed-off-by: Alex Suraci <alex@dagger.io> * llm: add basic tests to check llm config loading (#9861) it checks all the current supported variables are being parsed correctly as well as the fact that the file://.env is being parsed also Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com> * refactor a bit, check returned type from getFoo Signed-off-by: Alex Suraci <alex@dagger.io> * fix straggling loadLlmFromID Signed-off-by: Alex Suraci <alex@dagger.io> * partial support for selecting array results TODO: support selecting the Nth value in an array Signed-off-by: Alex Suraci <alex@dagger.io> * initial backwards compatibility * feature-flag multi-object (default true for now) * bring back withFoo, foo * fix a few acronym cases Signed-off-by: Alex Suraci <alex@dagger.io> * openai: only set parallel_tool_calls with tools Signed-off-by: Alex Suraci <alex@dagger.io> * add variable changes to message history Signed-off-by: Alex Suraci <alex@dagger.io> * always persist mode switch Signed-off-by: Alex Suraci <alex@dagger.io> * fix prompt var completion Signed-off-by: Alex Suraci <alex@dagger.io> * shell: syntax highlight spans Signed-off-by: Alex Suraci <alex@dagger.io> * fix Ctrl+L to clear virtual scrollback too annoyingly that 100ms sleep seems necessary, even tried adding a message in between Signed-off-by: Alex Suraci <alex@dagger.io> * shorten LLM metric labels Signed-off-by: Alex Suraci <alex@dagger.io> * de-jank passing variables to first prompt * now that we lazily initialize, we were ignoring any vars set before the first prompt * clean up syncVarsToLLM and make it modify in-place, otherwise we lose the synced vars Signed-off-by: Alex Suraci <alex@dagger.io> * sidequest: word-wrap errors Signed-off-by: Alex Suraci <alex@dagger.io> * better UI for builtin tool calling * create a Call representing the tool call * support actor emoji on non-message spans * consolidate otel setup; consolidate the one from common LLM code down into Env Signed-off-by: Alex Suraci <alex@dagger.io> * llm: add basic tests to check llm config loading (#9861) it checks all the current supported variables are being parsed correctly as well as the fact that the file://.env is being parsed also Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com> * llm: fix gemini text response (#9862) Signed-off-by: kpenfound <kyle@dagger.io> * tests: fix scripts tests Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: more refactoring Some little FIXMEs and TODOs resolved. Also changed `MainServer` to just `Server` - this makes it more composable for other things in the future (I have a memory somewhere of needing this *somewhere* else, so figured it would be nice to expose it like this). Signed-off-by: Justin Chadwell <me@jedevc.com> * add .llm builtin for read/write to LLM state * piping to it sets the value as the current LLM context * returns the current LLM object, which you can grab state from Signed-off-by: Alex Suraci <alex@dagger.io> * avoid nil panic when there's no state Signed-off-by: Alex Suraci <alex@dagger.io> * undo regens Signed-off-by: Alex Suraci <alex@dagger.io> * undo docs regens Signed-off-by: Alex Suraci <alex@dagger.io> * avoid panic in plain frontend Signed-off-by: Alex Suraci <alex@dagger.io> * sdk/rust: handle LLMID, LLM.loop * check original type name instead of converted one, which ends up converting LLMID to Llmid * add "loop" to the name exceptions conversion Signed-off-by: Alex Suraci <alex@dagger.io> * regenerate sdk and docs Signed-off-by: Alex Suraci <alex@dagger.io> * bring back withPromptVar Signed-off-by: Alex Suraci <alex@dagger.io> * regen Signed-off-by: Alex Suraci <alex@dagger.io> * only enable multi-object when a var is set Signed-off-by: Alex Suraci <alex@dagger.io> * fix llm state accessors: sync llm state Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * ensure history parent dir exists otherwise history is silently never saved Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * avoid nil panic when describing value seems reasonable to handle this, not just defensive. for example, an API might return a nullable object type. Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * chore: fix llm acronym Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: change content to string type Signed-off-by: Justin Chadwell <me@jedevc.com> * fix: ensure llm gets cloned correctly Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: regen Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: lint fixes Signed-off-by: Justin Chadwell <me@jedevc.com> * feat: add flag to limit LLM access (#9847) * flag to control llm access in shell Signed-off-by: Connor Braa <connor@dagger.io> * wiring working, fails without passing the flag Signed-off-by: Connor Braa <connor@dagger.io> * session attachable without actual prompting or the code that figures out the calling module for the prompt text Signed-off-by: Connor Braa <connor@dagger.io> * working remote-module-flag and calling module detection TODO:frontend side of prompting - call wiring Signed-off-by: Connor Braa <connor@dagger.io> * support for dagger call and plural allow-llms Signed-off-by: Connor Braa <connor@dagger.io> * add llm-allow prompt history Signed-off-by: Connor Braa <connor@dagger.io> * wip: prompting in frontend * generalize prompt caching mechanic * implement prompting in pretty + plain frontends TODO: UI polish Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * better prompting, render markdown Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * remove prompt timeout reasoning: might be alt-tabbed for a while Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * more prompt bubble polish * show underline beneath Y and N to indicate keybind * show as message bubble Signed-off-by: Alex Suraci <suraci.alex@gmail.com> --------- Signed-off-by: Connor Braa <connor@dagger.io> Signed-off-by: Alex Suraci <suraci.alex@gmail.com> Co-authored-by: Alex Suraci <suraci.alex@gmail.com> * support light/dark overrides, unify with lipgloss Couldn't decide on an env var so decided to support a few different schemes. Can adjust later. Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * fix lints Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * dagql: fix Server.Select with non-objects Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * fix: failing llm config tests Signed-off-by: Justin Chadwell <me@jedevc.com> * tests: add super basic test structure Signed-off-by: Justin Chadwell <me@jedevc.com> * add shell script subtest & LLMReplayer failure diffs Signed-off-by: Connor Braa <connor@dagger.io> * add TestApiLimit and a toy-workspace dagger_shell subtest Signed-off-by: Connor Braa <connor@dagger.io> * fix: update model replay and improve tests Signed-off-by: Justin Chadwell <me@jedevc.com> * tests: table tests for llm suite Signed-off-by: Justin Chadwell <me@jedevc.com> * regen Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: fix test linting Signed-off-by: Justin Chadwell <me@jedevc.com> * couple little refactors Signed-off-by: Justin Chadwell <me@jedevc.com> * fix anthropic tool calling Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * un-handroll TestLLM/TestAPILimit golden fixture Signed-off-by: Connor Braa <connor@dagger.io> * fix _undo returning giant JSON object Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * chore: improved scrubbing for disk-metrics test Signed-off-by: Justin Chadwell <me@jedevc.com> * fix error word wrapping when no width known 20 is a goofy default, I blame AI. this was breaking the golden tests Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * fix markdown specimen golden test we no longer force a particular text color Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * include microseconds rip Signed-off-by: Justin Chadwell <me@jedevc.com> * shell: add 'loading' phase for LLM initialization Signed-off-by: Alex Suraci <suraci.alex@gmail.com> * avoid panic in cycle detection when span==nil Signed-off-by: Alex Suraci <suraci.alex@gmail.com> --------- Signed-off-by: Solomon Hykes <solomon@dagger.io> Signed-off-by: Alex Suraci <alex@dagger.io> Signed-off-by: Andrea Luzzardi <al@dagger.io> Signed-off-by: Erik Sipsma <erik@sipsma.dev> Signed-off-by: kpenfound <kyle@dagger.io> Signed-off-by: Justin Chadwell <me@jedevc.com> Signed-off-by: Guillaume de Rouville <guillaume@dagger.io> Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com> Signed-off-by: Yves Brissaud <gh@lgtd.io> Signed-off-by: Vikram Vaswani <vikram@dagger.io> Signed-off-by: Jeremy Adams <jeremy@dagger.io> Signed-off-by: Connor Braa <connor@dagger.io> Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com> Signed-off-by: Alex Suraci <suraci.alex@gmail.com> Co-authored-by: Alex Suraci <alex@dagger.io> Co-authored-by: Andrea Luzzardi <al@dagger.io> Co-authored-by: Erik Sipsma <erik@sipsma.dev> Co-authored-by: kpenfound <kyle@dagger.io> Co-authored-by: Justin Chadwell <me@jedevc.com> Co-authored-by: Guillaume de Rouville <31691250+grouville@users.noreply.github.com> Co-authored-by: Sam Alba <216487+samalba@users.noreply.github.com> Co-authored-by: Guillaume de Rouville <guillaume@dagger.io> Co-authored-by: Tibor Vass <teabee89@gmail.com> Co-authored-by: Helder Correia <174525+helderco@users.noreply.github.com> Co-authored-by: Yves Brissaud <gh@lgtd.io> Co-authored-by: vikram-dagger <112123850+vikram-dagger@users.noreply.github.com> Co-authored-by: Erik Sipsma <erik@dagger.io> Co-authored-by: Jeremy Adams <jeremy@dagger.io> Co-authored-by: Greg Kogan <greg.ny@gmail.com> Co-authored-by: Connor Braa <3478454+cwlbraa@users.noreply.github.com> Co-authored-by: Marcos Lilljedahl <marcosnils@gmail.com> Co-authored-by: Marcos Nils <1578458+marcosnils@users.noreply.github.com> Co-authored-by: Alex Suraci <suraci.alex@gmail.com> Co-authored-by: Connor Braa <connor@dagger.io>
Configuration menu - View commit details
-
Copy full SHA for 73d5bb3 - Browse repository at this point
Copy the full SHA 73d5bb3View commit details
Commits on Mar 20, 2025
-
chore: prep for v0.17.0 (#9918)
* chore: bump dependencies to v0.17.0 Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: add release notes for v0.17.0 Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: bump next release to v0.17.1 Signed-off-by: Justin Chadwell <me@jedevc.com> * ci: skip docs auto-publish for v0.17.0 Signed-off-by: Justin Chadwell <me@jedevc.com> * chore: update releasing with next version detection Signed-off-by: Justin Chadwell <me@jedevc.com> --------- Signed-off-by: Justin Chadwell <me@jedevc.com>
Configuration menu - View commit details
-
Copy full SHA for ac39efd - Browse repository at this point
Copy the full SHA ac39efdView commit details
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.