Ctrl K
ComunidadGuías…

internal/approvalgate/workspace_files.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package approvalgate

import (
	"context"

	"github.com/yeomyeonggeori/blueprotocol/toolcontract"
)

type WorkspaceFileCarrier func(context.Context) (map[string]any, *toolcontract.ToolResult)

type workspaceFileCarrierKey struct{}

func WithWorkspaceFileCarrier(ctx context.Context, carrier WorkspaceFileCarrier) context.Context {
	return context.WithValue(ctx, workspaceFileCarrierKey{}, carrier)
}

func CarriedWorkspaceFiles(ctx context.Context) (map[string]any, *toolcontract.ToolResult) {
	carrier, isCarried := ctx.Value(workspaceFileCarrierKey{}).(WorkspaceFileCarrier)
	if !isCarried || carrier == nil {
		return nil, nil
	}
	return carrier(ctx)
}