• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kshard / thinker / 15082283232

17 May 2025 05:53AM UTC coverage: 33.807% (-24.4%) from 58.222%
15082283232

Pull #20

github

fogfish
establish agent taxonomy - prompter, manifold, automata
Pull Request #20: establish agent taxonomy - prompter, manifold, automata

241 of 611 new or added lines in 28 files covered. (39.44%)

145 existing lines in 5 files now uncovered.

381 of 1127 relevant lines covered (33.81%)

0.36 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/command/cmd.go
1
package command
2

3
import (
4
        "bytes"
5
        "encoding/json"
6
        "fmt"
7
        "os/exec"
8
        "strings"
9
        "text/template"
10

11
        "github.com/kshard/thinker"
12
)
13

NEW
14
func Cmd(dir string, spec thinker.Cmd) thinker.Cmd {
×
NEW
15
        spec.Run = cmd(dir, spec)
×
NEW
16
        return spec
×
NEW
17
}
×
18

NEW
19
func cmd(dir string, spec thinker.Cmd) func(json.RawMessage) ([]byte, error) {
×
NEW
20
        t := template.Must(template.New(spec.Cmd).Parse(spec.Syntax))
×
NEW
21

×
NEW
22
        return func(command json.RawMessage) ([]byte, error) {
×
NEW
23
                var in map[string]any
×
NEW
24
                if err := json.Unmarshal(command, &in); err != nil {
×
NEW
25
                        err := thinker.Feedback(
×
NEW
26
                                "The input does not contain valid JSON object",
×
NEW
27
                                "JSON parsing has failed with an error "+err.Error(),
×
NEW
28
                        )
×
NEW
29
                        return []byte(err.Error()), nil
×
NEW
30
                }
×
31

NEW
32
                var sb strings.Builder
×
NEW
33
                if err := t.Execute(&sb, in); err != nil {
×
NEW
34
                        return nil, err
×
NEW
35
                }
×
36

NEW
37
                cmd := exec.Command("bash", "-c", sb.String())
×
NEW
38
                var stdout bytes.Buffer
×
NEW
39
                var stderr bytes.Buffer
×
NEW
40
                cmd.Dir = dir
×
NEW
41
                cmd.Stdout = &stdout
×
NEW
42
                cmd.Stderr = &stderr
×
NEW
43

×
NEW
44
                if err := cmd.Run(); err != nil {
×
NEW
45
                        err = thinker.Feedback(
×
NEW
46
                                fmt.Sprintf("The tool %s has failed, improve the response based on feedback:", spec.Cmd),
×
NEW
47

×
NEW
48
                                "Execution of the tool is failed with the error: "+err.Error(),
×
NEW
49
                                "The stderr is "+stderr.String(),
×
NEW
50
                        )
×
NEW
51

×
NEW
52
                        return nil, err
×
NEW
53
                }
×
54

NEW
55
                return stdout.Bytes(), nil
×
56
        }
57
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc