Skip to content

Commit 4f17ef4

Browse files
committed
snapshot
1 parent 0d51e83 commit 4f17ef4

File tree

4 files changed

+15
-56
lines changed

4 files changed

+15
-56
lines changed

app/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ require (
99
github.com/charmbracelet/glamour v0.10.0
1010
github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834
1111
github.com/openai/openai-go v1.12.0
12-
github.com/ulikunitz/xz v0.5.14
12+
github.com/ulikunitz/xz v0.5.15
1313
gopkg.in/yaml.v3 v3.0.1
1414
)
1515

@@ -20,7 +20,7 @@ require (
2020
github.com/charmbracelet/colorprofile v0.3.2 // indirect
2121
github.com/charmbracelet/x/ansi v0.10.1 // indirect
2222
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
23-
github.com/charmbracelet/x/exp/slice v0.0.0-20250821175832-f235fab04313 // indirect
23+
github.com/charmbracelet/x/exp/slice v0.0.0-20250829135019-44e44e21330d // indirect
2424
github.com/charmbracelet/x/term v0.2.1 // indirect
2525
github.com/dlclark/regexp2 v1.11.5 // indirect
2626
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect

app/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ
2828
github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
2929
github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91 h1:payRxjMjKgx2PaCWLZ4p3ro9y97+TVLZNaRZgJwSVDQ=
3030
github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
31-
github.com/charmbracelet/x/exp/slice v0.0.0-20250821175832-f235fab04313 h1:pRcKW226AkTTlE1oo5U59RbD4g/dac+i4kshf51rjMs=
32-
github.com/charmbracelet/x/exp/slice v0.0.0-20250821175832-f235fab04313/go.mod h1:vI5nDVMWi6veaYH+0Fmvpbe/+cv/iJfMntdh+N0+Tms=
31+
github.com/charmbracelet/x/exp/slice v0.0.0-20250829135019-44e44e21330d h1:H2oh4WlSsXy8qwLd7I3eAvPd/X3S40aM9l+h47WF1eA=
32+
github.com/charmbracelet/x/exp/slice v0.0.0-20250829135019-44e44e21330d/go.mod h1:vI5nDVMWi6veaYH+0Fmvpbe/+cv/iJfMntdh+N0+Tms=
3333
github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
3434
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
3535
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@@ -81,8 +81,8 @@ github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
8181
github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
8282
github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY=
8383
github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28=
84-
github.com/ulikunitz/xz v0.5.14 h1:uv/0Bq533iFdnMHZdRBTOlaNMdb1+ZxXIlHDZHIHcvg=
85-
github.com/ulikunitz/xz v0.5.14/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
84+
github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY=
85+
github.com/ulikunitz/xz v0.5.15/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
8686
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
8787
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
8888
github.com/yuin/goldmark v1.7.13 h1:GPddIs617DnBLFFVJFgpo1aBfe/4xcvMc3SB5t/D0pA=

app/playbook.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
11
package main
22

3-
import _ "embed"
4-
5-
//go:embed playbooks/60-second-linux.yaml
6-
var playbook60SecondLinux []byte
7-
8-
func embeddedPlaybook() []byte {
9-
return playbook60SecondLinux
10-
}
11-
12-
// PlaybookConfig mirrors the structure of the embedded playbook YAML.
133
type PlaybookConfig struct {
144
Nixpkgs struct {
155
Version string `yaml:"version"`
@@ -19,7 +9,6 @@ type PlaybookConfig struct {
199
Commands []PlaybookCommand `yaml:"commands"`
2010
}
2111

22-
// PlaybookCommand describes a single command entry in a playbook.
2312
type PlaybookCommand struct {
2413
Command string `yaml:"command"`
2514
Description string `yaml:"description"`

app/toolbox.go

Lines changed: 9 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,18 @@ func (t *Toolbox) GetDiagnosticCommands() ([]DiagnosticCommand, error) {
157157
return []DiagnosticCommand{}, nil
158158
}
159159

160-
cfg, err := loadDiagnosticsConfigEmbedded()
160+
// Load playbook from the extracted toolbox archive only
161+
playbookPath := filepath.Join(t.TempDir, "toolbox", "playbook.yaml")
162+
data, err := os.ReadFile(playbookPath)
161163
if err != nil {
162-
return []DiagnosticCommand{}, err
164+
return []DiagnosticCommand{}, fmt.Errorf("failed to read playbook.yaml from toolbox: %w", err)
165+
}
166+
var cfg PlaybookConfig
167+
if err := yaml.Unmarshal(data, &cfg); err != nil {
168+
return []DiagnosticCommand{}, fmt.Errorf("failed to parse playbook.yaml: %w", err)
163169
}
164170
// Store playbook on toolbox for later use (e.g., system prompt)
165-
t.Playbook = cfg
171+
t.Playbook = &cfg
166172

167173
toolboxPath := path.Join(t.TempDir, "toolbox")
168174
storeDir := filepath.Join(toolboxPath, "nix", "store")
@@ -228,42 +234,6 @@ func (t *Toolbox) GetDiagnosticCommands() ([]DiagnosticCommand, error) {
228234
return result, nil
229235
}
230236

231-
// loadDiagnosticsConfig reads diagnostics.yaml from the working directory or alongside the executable.
232-
func loadDiagnosticsConfig() (*PlaybookConfig, error) {
233-
pathsToTry := []string{"diagnostics.yaml"}
234-
if exe, err := os.Executable(); err == nil {
235-
pathsToTry = append(pathsToTry, filepath.Join(filepath.Dir(exe), "diagnostics.yaml"))
236-
}
237-
238-
var data []byte
239-
var readErr error
240-
for _, p := range pathsToTry {
241-
data, readErr = os.ReadFile(p)
242-
if readErr == nil {
243-
break
244-
}
245-
}
246-
if readErr != nil {
247-
return nil, readErr
248-
}
249-
250-
var cfg PlaybookConfig
251-
if err := yaml.Unmarshal(data, &cfg); err != nil {
252-
return nil, err
253-
}
254-
return &cfg, nil
255-
}
256-
257-
// loadDiagnosticsConfigEmbedded unmarshals the embedded 60-second playbook
258-
func loadDiagnosticsConfigEmbedded() (*PlaybookConfig, error) {
259-
data := embeddedPlaybook()
260-
var cfg PlaybookConfig
261-
if err := yaml.Unmarshal(data, &cfg); err != nil {
262-
return nil, err
263-
}
264-
return &cfg, nil
265-
}
266-
267237
// ExecuteDiagnosticCommand executes a single diagnostic command and returns its output
268238
func (t *Toolbox) ExecuteDiagnosticCommand(cmd DiagnosticCommand) (string, error) {
269239
if t.TempDir == "" {

0 commit comments

Comments
 (0)