35 | {/* Image Section */}
36 | {imageUrl && (
37 |
38 |

43 |
44 | )}
45 |
46 | {/* Content Section */}
47 |
48 |
49 | {title}
50 |
51 |
52 | {description && (
53 |
54 | {description}
55 |
56 | )}
57 |
58 | {children && (
59 |
60 | {children}
61 |
62 | )}
63 |
64 |
65 | {/* Footer Section */}
66 | {footer && (
67 |
68 | {footer}
69 |
70 | )}
71 |
72 | );
73 | };
74 |
75 | export default ComponentName;
76 |
--------------------------------------------------------------------------------
/testdata/oai-skills/spreadsheets/examples/features/create_doughnut_chart.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | from pathlib import Path
4 |
5 | from oaiproto.coworker.pptx.chart_pb2 import Chart, LegendPosition
6 |
7 | from artifact_tool import FileOutputType, SpreadsheetArtifact
8 |
9 |
10 | def main() -> None:
11 | # New spreadsheet artifact
12 | spreadsheet = SpreadsheetArtifact("Scores")
13 | first_game_sheet = spreadsheet.sheet("Game1")
14 |
15 | # Seed some data
16 | first_game_sheet["A1:C1"].values = [["Player", "Game 1", "Game 2"]]
17 | first_game_sheet["A2:C5"].values = [
18 | ["Vicky", 120, 100],
19 | ["Emily", 134, 95],
20 | ["Dibyo", 95, 110],
21 | ["Bobby", 105, 105],
22 | ]
23 |
24 | # Set up some ranges to use as labels (categories) and values for the charts
25 | labels = first_game_sheet.range("A2:A5")
26 | game1 = first_game_sheet.range("B2:B5")
27 |
28 | # Add a doughnut chart to the cell range E2:I14
29 | chart1 = first_game_sheet.charts.add(
30 | first_game_sheet.range("E2:I14"),
31 | Chart.ChartType.CHART_TYPE_DOUGHNUT,
32 | title="Game Scores",
33 | )
34 | chart1.add_series("Game 1", categories_range=labels, values_range=game1)
35 |
36 | # Show the legend and position it to the right
37 | chart1.legend.visible = True
38 | chart1.legend.position = LegendPosition.LEGEND_POSITION_RIGHT
39 |
40 | output_dir = (
41 | Path(__file__).resolve().parent / "golden_rendered_images" / "create_doughnut_chart"
42 | )
43 | output_path = spreadsheet.render(output=output_dir)
44 | print(f"Spreadsheet rendered to {output_path}")
45 |
46 | spreadsheet.save(
47 | file_type=FileOutputType.C_STAR_PROTO_JSON,
48 | filename=output_dir / "workbook__auto.json",
49 | overwrite=True,
50 | )
51 |
52 | # output_path = spreadsheet.export()
53 | # print(f"Spreadsheet exported to {output_path}")
54 |
55 |
56 | if __name__ == "__main__":
57 | main()
58 |
--------------------------------------------------------------------------------
/log/golog_logger.go:
--------------------------------------------------------------------------------
1 | package log
2 |
3 | import (
4 | "github.com/kataras/golog"
5 | )
6 |
7 | // GologLogger implements Logger interface using kataras/golog
8 | type GologLogger struct {
9 | logger *golog.Logger
10 | level LogLevel
11 | }
12 |
13 | var _ Logger = (*GologLogger)(nil)
14 |
15 | // NewGologLogger creates a new logger using an existing golog.Logger
16 | func NewGologLogger(logger *golog.Logger) *GologLogger {
17 | return &GologLogger{
18 | logger: logger,
19 | level: LogLevelInfo, // default level
20 | }
21 | }
22 |
23 | // Debug logs debug messages
24 | func (l *GologLogger) Debug(format string, v ...any) {
25 | if l.level <= LogLevelDebug {
26 | args := append([]any{format}, v...)
27 | l.logger.Debug(args...)
28 | }
29 | }
30 |
31 | // Info logs informational messages
32 | func (l *GologLogger) Info(format string, v ...any) {
33 | if l.level <= LogLevelInfo {
34 | args := append([]any{format}, v...)
35 | l.logger.Info(args...)
36 | }
37 | }
38 |
39 | // Warn logs warning messages
40 | func (l *GologLogger) Warn(format string, v ...any) {
41 | if l.level <= LogLevelWarn {
42 | args := append([]any{format}, v...)
43 | l.logger.Warn(args...)
44 | }
45 | }
46 |
47 | // Error logs error messages
48 | func (l *GologLogger) Error(format string, v ...any) {
49 | if l.level <= LogLevelError {
50 | args := append([]any{format}, v...)
51 | l.logger.Error(args...)
52 | }
53 | }
54 |
55 | // SetLevel sets the log level
56 | func (l *GologLogger) SetLevel(level LogLevel) {
57 | l.level = level
58 |
59 | // Convert to golog level string
60 | gologLevel := "info"
61 | switch level {
62 | case LogLevelDebug:
63 | gologLevel = "debug"
64 | case LogLevelInfo:
65 | gologLevel = "info"
66 | case LogLevelWarn:
67 | gologLevel = "warn"
68 | case LogLevelError:
69 | gologLevel = "error"
70 | case LogLevelNone:
71 | gologLevel = "disable"
72 | }
73 |
74 | l.logger.SetLevel(gologLevel)
75 | }
76 |
77 | // GetLevel returns the current log level
78 | func (l *GologLogger) GetLevel() LogLevel {
79 | return l.level
80 | }
81 |
--------------------------------------------------------------------------------
/tool/python_tool.go:
--------------------------------------------------------------------------------
1 | package tool
2 |
3 | import (
4 | "bytes"
5 | "fmt"
6 |
7 | "os"
8 | "os/exec"
9 | "text/template"
10 | )
11 |
12 | type PythonTool struct {
13 | }
14 |
15 | func (t *PythonTool) Run(args map[string]any, code string) (string, error) {
16 | tmpl, err := template.New("python").Parse(code)
17 | if err != nil {
18 | return "", fmt.Errorf("failed to parse python template: %w", err)
19 | }
20 |
21 | var script bytes.Buffer
22 | err = tmpl.Execute(&script, args)
23 | if err != nil {
24 | return "", fmt.Errorf("failed to execute python template: %w", err)
25 | }
26 |
27 | tmpfile, err := os.CreateTemp("", "python-*.py")
28 | if err != nil {
29 | return "", fmt.Errorf("failed to create temp file: %w", err)
30 | }
31 | defer os.Remove(tmpfile.Name())
32 |
33 | if _, err := tmpfile.Write(script.Bytes()); err != nil {
34 | return "", fmt.Errorf("failed to write to temp file: %w", err)
35 | }
36 | if err := tmpfile.Close(); err != nil {
37 | return "", fmt.Errorf("failed to close temp file: %w", err)
38 | }
39 |
40 | return RunPythonScript(tmpfile.Name(), nil)
41 | }
42 |
43 | // RunPythonScript executes a Python script and returns its combined stdout and stderr.
44 | // It tries to use 'python3' first, then falls back to 'python'.
45 | func RunPythonScript(scriptPath string, args []string) (string, error) {
46 | pythonExe, err := exec.LookPath("python3")
47 | if err != nil {
48 | pythonExe, err = exec.LookPath("python")
49 | if err != nil {
50 | return "", fmt.Errorf("failed to find python3 or python in PATH: %w", err)
51 | }
52 | }
53 |
54 | cmd := exec.Command(pythonExe, append([]string{scriptPath}, args...)...)
55 | cmd.Env = os.Environ()
56 | var stdout, stderr bytes.Buffer
57 | cmd.Stdout = &stdout
58 | cmd.Stderr = &stderr
59 |
60 | err = cmd.Run()
61 | if err != nil {
62 | return "", fmt.Errorf("failed to run python script '%s' with '%s': %w\nStdout: %s\nStderr: %s", scriptPath, pythonExe, err, stdout.String(), stderr.String())
63 | }
64 |
65 | return stdout.String() + stderr.String(), nil
66 | }
67 |
--------------------------------------------------------------------------------
/testdata/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd:
--------------------------------------------------------------------------------
1 |
2 |