Skip to content

Examples

Wire Envelope

import "github.com/jonwraymond/toolprotocol/wire"

msg := wire.Envelope{
  Version: "1.0",
  Type:    "discover.request",
  Payload: map[string]any{
    "query": "create issue",
  },
}

Stream

import "github.com/jonwraymond/toolprotocol/stream"

s := stream.NewDefaultStream()

go func() {
  _ = s.Send(stream.Event{Type: "progress", Data: map[string]any{"pct": 50}})
  _ = s.Close()
}()

for ev := range s.Events() {
  _ = ev
}

Session

import "github.com/jonwraymond/toolprotocol/session"

sess := session.New(session.Config{ID: "session-1"})
ctx := sess.Context()
_ = ctx

Content Blocks

import "github.com/jonwraymond/toolprotocol/content"

block := content.Block{
  Type: "text",
  Data: map[string]any{"text": "hello"},
}