Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
95 lines
2.2 KiB
Go
95 lines
2.2 KiB
Go
package framework
|
|
|
|
import (
|
|
"context"
|
|
|
|
cliservice "github.com/tutti-os/tutti/services/tuttid/service/cli"
|
|
)
|
|
|
|
type CommandKind string
|
|
|
|
const (
|
|
KindList CommandKind = "list"
|
|
KindGet CommandKind = "get"
|
|
KindAction CommandKind = "action"
|
|
)
|
|
|
|
type OutputView string
|
|
|
|
const (
|
|
ViewSummary OutputView = "summary"
|
|
ViewDetail OutputView = "detail"
|
|
)
|
|
|
|
type WorkspacePolicy string
|
|
|
|
const (
|
|
WorkspaceOptional WorkspacePolicy = "optional"
|
|
WorkspaceStartupDefault WorkspacePolicy = "startup-default"
|
|
WorkspaceRequired WorkspacePolicy = "required"
|
|
)
|
|
|
|
type InvokeContext struct {
|
|
Request cliservice.InvokeRequest
|
|
WorkspaceID string
|
|
}
|
|
|
|
type CommandSpec[T any] struct {
|
|
ID string
|
|
Path []string
|
|
Summary string
|
|
Description string
|
|
Kind CommandKind
|
|
Visibility cliservice.CapabilityVisibility
|
|
Workspace WorkspacePolicy
|
|
Workspaces cliservice.WorkspaceCatalog
|
|
Inputs InputSpec
|
|
Output OutputSpec
|
|
Execution *cliservice.CommandExecution
|
|
Source cliservice.CapabilitySource
|
|
Run func(context.Context, InvokeContext, T) (any, error)
|
|
}
|
|
|
|
type FieldSpec struct {
|
|
Name string
|
|
Type string
|
|
Description string
|
|
Hidden bool
|
|
// AdvertisedRequired keeps the canonical capability contract strict while
|
|
// allowing a hidden compatibility selector to satisfy runtime validation.
|
|
AdvertisedRequired bool
|
|
Required bool
|
|
Hint string
|
|
Min *int64
|
|
Max *int64
|
|
Enum []string
|
|
Default any
|
|
}
|
|
|
|
type InputSpec struct {
|
|
Fields []FieldSpec
|
|
InputType string
|
|
AcceptsInput bool
|
|
}
|
|
|
|
type OutputSpec struct {
|
|
DefaultMode cliservice.OutputMode
|
|
DefaultView OutputView
|
|
JSON bool
|
|
Table *TableOutputSpec
|
|
JSONViews map[OutputView]func(any) map[string]any
|
|
JSONValue func(any) map[string]any
|
|
RawJSON bool
|
|
RawJSONReason string
|
|
PlainText func(any) string
|
|
Markdown func(any) string
|
|
ListCompact bool
|
|
Warnings func(any) []cliservice.CommandWarning
|
|
Continuation func(any) *cliservice.CommandContinuation
|
|
}
|
|
|
|
type TableOutputSpec struct {
|
|
Columns []cliservice.TableColumn
|
|
Rows func(any) []map[string]any
|
|
}
|