Skip to content

WorkspaceReader

WorkspaceReader 用于读取工作区特定的数据。

创建

NewWorkspaceReader

通过 CursorClient 创建:

go
workspace, err := client.Workspace("/path/to/workspace")
if err != nil {
    log.Fatal(err)
}
defer workspace.Close()

方法

GetWorkspaceInfo

获取工作区信息。

go
func (r *WorkspaceReader) GetWorkspaceInfo() (*Workspace, error)

返回值:

  • *Workspace - 工作区信息
  • error - 错误信息

示例:

go
info, err := workspace.GetWorkspaceInfo()
if err != nil {
    log.Fatal(err)
}

fmt.Printf("Path: %s\n", info.Path)
fmt.Printf("Name: %s\n", info.Name)

GetComposers

获取工作区的 Composer 数据。

go
func (r *WorkspaceReader) GetComposers() ([]Composer, error)

返回值:

  • []Composer - Composer 列表
  • error - 错误信息

示例:

go
composers, err := workspace.GetComposers()
if err != nil {
    log.Fatal(err)
}

for _, composer := range composers {
    fmt.Printf("Composer: %s\n", composer.ID)
}

GetAIGenerations

获取 AI 生成记录。

go
func (r *WorkspaceReader) GetAIGenerations() ([]AIGeneration, error)

返回值:

  • []AIGeneration - AI 生成记录列表
  • error - 错误信息

示例:

go
generations, err := workspace.GetAIGenerations()
if err != nil {
    log.Fatal(err)
}

for _, gen := range generations {
    fmt.Printf("Prompt: %s\n", gen.Prompt)
    fmt.Printf("Response: %s\n", gen.Response)
}

GetAIPrompts

获取 AI 提示记录。

go
func (r *WorkspaceReader) GetAIPrompts() ([]AIPrompt, error)

返回值:

  • []AIPrompt - AI 提示记录列表
  • error - 错误信息

示例:

go
prompts, err := workspace.GetAIPrompts()
if err != nil {
    log.Fatal(err)
}

for _, prompt := range prompts {
    fmt.Printf("Content: %s\n", prompt.Content)
}

数据结构

Workspace

go
type Workspace struct {
    Path string // 工作区路径
    Name string // 工作区名称
}

AIGeneration

go
type AIGeneration struct {
    ID        string    // ID
    Prompt    string    // 提示
    Response  string    // 响应
    Model     string    // 模型
    Timestamp time.Time // 时间戳
}

AIPrompt

go
type AIPrompt struct {
    ID        string    // ID
    Content   string    // 内容
    Type      string    // 类型
    Timestamp time.Time // 时间戳
}

完整示例

go
package main

import (
    "fmt"
    "log"
    
    cursor "github.com/vibe-coding-labs/go-cursor-sdk"
)

func main() {
    client, err := cursor.NewCursorClient(nil)
    if err != nil {
        log.Fatal(err)
    }
    defer client.Close()
    
    // 创建工作区 reader
    workspace, err := client.Workspace("/path/to/workspace")
    if err != nil {
        log.Fatal(err)
    }
    defer workspace.Close()
    
    // 获取工作区信息
    info, err := workspace.GetWorkspaceInfo()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("Workspace: %s\n", info.Name)
    
    // 获取 Composer 数据
    composers, err := workspace.GetComposers()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("Composers: %d\n", len(composers))
    
    // 获取 AI 生成记录
    generations, err := workspace.GetAIGenerations()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("AI Generations: %d\n", len(generations))
}

相关文档

Released under the MIT License.