MCPcopy Create free account
hub / github.com/astercloud/aster / main

Function main

examples/simple/main.go:17–169  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

15)
16
17func main() {
18 fmt.Println("🚀 Agent SDK - 简单示例")
19 fmt.Println("================================")
20
21 // 1. 创建EventBus
22 fmt.Println("\n✓ 创建EventBus...")
23 bus := events.NewEventBus()
24
25 // 订阅Progress事件
26 progressCh := bus.Subscribe([]types.AgentChannel{types.ChannelProgress}, nil)
27 go func() {
28 for event := range progressCh {
29 fmt.Printf(" [Progress] Cursor=%d, Event=%T\n", event.Cursor, event.Event)
30 }
31 }()
32
33 // 订阅Monitor事件
34 monitorCh := bus.Subscribe([]types.AgentChannel{types.ChannelMonitor}, nil)
35 go func() {
36 for event := range monitorCh {
37 fmt.Printf(" [Monitor] Cursor=%d, Event=%T\n", event.Cursor, event.Event)
38 }
39 }()
40
41 // 发送一些测试事件
42 bus.EmitProgress(&types.ProgressTextChunkStartEvent{Step: 1})
43 bus.EmitProgress(&types.ProgressTextChunkEvent{Step: 1, Delta: "Hello"})
44 bus.EmitProgress(&types.ProgressTextChunkEvent{Step: 1, Delta: " World"})
45 bus.EmitMonitor(&types.MonitorStateChangedEvent{State: types.AgentStateWorking})
46
47 time.Sleep(100 * time.Millisecond) // 等待事件处理
48
49 // 2. 创建本地沙箱
50 fmt.Println("\n✓ 创建本地沙箱...")
51 sb, err := sandbox.NewLocalSandbox(&sandbox.LocalSandboxConfig{
52 WorkDir: "./workspace",
53 EnforceBoundary: true,
54 WatchFiles: false,
55 })
56 if err != nil {
57 log.Fatalf("创建沙箱失败: %v", err)
58 }
59 defer func() { _ = sb.Dispose() }()
60
61 fmt.Printf(" Kind: %s\n", sb.Kind())
62 fmt.Printf(" WorkDir: %s\n", sb.WorkDir())
63
64 // 执行命令
65 ctx := context.Background()
66 result, err := sb.Exec(ctx, "echo 'Hello from sandbox'", nil)
67 if err != nil {
68 log.Fatalf("执行命令失败: %v", err)
69 }
70 fmt.Printf(" 执行结果: code=%d, stdout=%s\n", result.Code, result.Stdout)
71
72 // 文件系统操作
73 fs := sb.FS()
74 testPath := "test.txt"

Callers

nothing calls this directly

Calls 15

SubscribeMethod · 0.95
EmitProgressMethod · 0.95
EmitMonitorMethod · 0.95
DisposeMethod · 0.95
KindMethod · 0.95
WorkDirMethod · 0.95
ExecMethod · 0.95
FSMethod · 0.95
SaveMessagesMethod · 0.95
LoadMessagesMethod · 0.95
SaveInfoMethod · 0.95
CreateMethod · 0.95

Tested by

no test coverage detected