catalog

package
v3.18.39 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 14, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConfigFingerprint

func ConfigFingerprint(conf any) any

func RevisionFromSourceRevisions

func RevisionFromSourceRevisions(source map[string]string) string

func SourceRevisions

func SourceRevisions(snapshot *MetadataSnapshot, conf any, opts BuildOptions) map[string]string

Types

type BuildOptions

type BuildOptions struct {
	Sources                []Source     `json:"sources,omitempty"`
	Workflows              []Workflow   `json:"workflows,omitempty"`
	Fragments              []Fragment   `json:"fragments,omitempty"`
	SavedQueries           []SavedQuery `json:"saved_queries,omitempty"`
	EnabledTools           []string     `json:"enabled_tools,omitempty"`
	EnabledToolsKnown      bool         `json:"enabled_tools_known,omitempty"`
	WorkflowRuntime        string       `json:"workflow_runtime,omitempty"`
	WorkflowTimeoutSeconds int          `json:"workflow_timeout_seconds,omitempty"`
}

type Capability

type Capability struct {
	ID               string `json:"id"`
	Name             string `json:"name"`
	Kind             string `json:"kind"`
	Summary          string `json:"summary"`
	InputSchemaJSON  string `json:"input_schema_json,omitempty"`
	OutputSchemaJSON string `json:"output_schema_json,omitempty"`
	SafetyJSON       string `json:"safety_json,omitempty"`
}

type Card

type Card struct {
	ID               string `json:"id"`
	Kind             string `json:"kind"`
	Title            string `json:"title"`
	Summary          string `json:"summary"`
	DatabaseName     string `json:"database_name,omitempty"`
	SchemaName       string `json:"schema_name,omitempty"`
	TableName        string `json:"table_name,omitempty"`
	ColumnName       string `json:"column_name,omitempty"`
	Source           string `json:"source,omitempty"`
	SourceKind       string `json:"source_kind,omitempty"`
	OwnerSource      string `json:"owner_source,omitempty"`
	OwnerSourcesJSON string `json:"owner_sources_json,omitempty"`
	RiskLevel        string `json:"risk_level,omitempty"`
	Confidence       string `json:"confidence,omitempty"`
	Sensitive        bool   `json:"sensitive,omitempty"`
	Sensitivity      string `json:"sensitivity,omitempty"`
	EvidenceJSON     string `json:"evidence_json,omitempty"`
	ExamplesJSON     string `json:"examples_json,omitempty"`
	SuggestedNext    string `json:"suggested_next_json,omitempty"`
	DetailRef        string `json:"detail_ref,omitempty"`
	QueryJSON        string `json:"query_json,omitempty"`
	InputSchemaJSON  string `json:"input_schema_json,omitempty"`
	OutputSchemaJSON string `json:"output_schema_json,omitempty"`
	SafetyJSON       string `json:"safety_json,omitempty"`
	GraphQLQuery     string `json:"graphql_query,omitempty"`
	GraphQLMutation  string `json:"graphql_mutation,omitempty"`
	CreatedAt        string `json:"created_at,omitempty"`
	UpdatedAt        string `json:"updated_at,omitempty"`
}

type CardDetail

type CardDetail struct {
	ID       string `json:"id"`
	CardID   string `json:"card_id"`
	Section  string `json:"section"`
	Content  string `json:"content,omitempty"`
	DataJSON string `json:"data_json,omitempty"`
}

type ConfigField

type ConfigField struct {
	Path        string `json:"path"`
	Kind        string `json:"kind"`
	HasValue    bool   `json:"has_value"`
	Sensitive   bool   `json:"sensitive"`
	Sensitivity string `json:"sensitivity,omitempty"`
	Value       string `json:"value,omitempty"`
}

func ConfigFields

func ConfigFields(conf any) []ConfigField

type Edge

type Edge struct {
	ID      string `json:"id"`
	FromID  string `json:"from_id"`
	ToID    string `json:"to_id"`
	Kind    string `json:"kind"`
	Summary string `json:"summary,omitempty"`
}

type EntryPoint

type EntryPoint struct {
	ID            string `json:"id"`
	Name          string `json:"name"`
	Summary       string `json:"summary"`
	QueryJSON     string `json:"query_json,omitempty"`
	SuggestedNext string `json:"suggested_next_json,omitempty"`
}

type Feature

type Feature struct {
	ID             string
	Kind           string
	Name           string
	Scope          string
	Summary        string
	Arguments      []FeatureArg
	AppliesTo      []string
	DialectSupport string
	Examples       []string
	CommonMistakes []string
	ReplacementFor []string
	SuggestedNext  []string
}

func LanguageFeatures

func LanguageFeatures() []Feature

type FeatureArg

type FeatureArg struct {
	Name     string
	Type     string
	Required bool
	Values   []string
	Summary  string
}

type Fragment added in v3.18.20

type Fragment struct {
	Name       string `json:"name"`
	Namespace  string `json:"namespace,omitempty"`
	Definition string `json:"definition,omitempty"`
	On         string `json:"on,omitempty"`
	SourceHash string `json:"source_hash,omitempty"`
}

type Match

type Match struct {
	Score         float64  `json:"score"`
	MatchedFields []string `json:"matched_fields,omitempty"`
	MatchedTerms  []string `json:"matched_terms,omitempty"`
	Why           string   `json:"why,omitempty"`
}

type MetadataColumn

type MetadataColumn struct {
	ID           string
	TableID      string
	DatabaseName string
	SchemaName   string
	TableName    string
	ColumnName   string
	Type         string
	Array        bool
	NotNull      bool
	PrimaryKey   bool
	UniqueKey    bool
	Indexed      bool
	IndexName    string
	DefaultValue string
	Comment      string
	Ordinal      int
	TableKey     string
	ColumnKey    string
}

type MetadataDatabase

type MetadataDatabase struct {
	ID        string
	Name      string
	Type      string
	IsDefault bool
	ReadOnly  bool
}

type MetadataFunction

type MetadataFunction struct {
	ID           string
	DatabaseName string
	SchemaName   string
	Name         string
	ReturnType   string
	Aggregate    bool
	Comment      string
}

type MetadataIndex

type MetadataIndex struct {
	ID           string
	DatabaseName string
	SchemaName   string
	TableName    string
	ColumnName   string
	Name         string
	Unique       bool
}

type MetadataRelationship

type MetadataRelationship struct {
	ID               string
	FromDatabaseName string
	FromSchemaName   string
	FromTableName    string
	FromColumnName   string
	FromColumnID     string
	ToDatabaseName   string
	ToSchemaName     string
	ToTableName      string
	ToColumnName     string
	ToColumnID       string
	RelType          string
	IsCrossDatabase  bool
	Source           string
}

type MetadataSnapshot

type MetadataSnapshot struct {
	Databases     []MetadataDatabase
	Tables        []MetadataTable
	Columns       []MetadataColumn
	Relationships []MetadataRelationship
	Functions     []MetadataFunction
	Indexes       []MetadataIndex
}

type MetadataTable

type MetadataTable struct {
	ID           string
	DatabaseName string
	SchemaName   string
	TableName    string
	Type         string
	Comment      string
	PrimaryKey   string
	ColumnCount  int
	TableKey     string
}

type Node

type Node struct {
	ID      string `json:"id"`
	Kind    string `json:"kind"`
	Name    string `json:"name"`
	Summary string `json:"summary,omitempty"`
	CardID  string `json:"card_id,omitempty"`
}

type Query

type Query struct {
	Search  string            `json:"search,omitempty"`
	Where   map[string]any    `json:"where,omitempty"`
	OrderBy map[string]string `json:"order_by,omitempty"`
	Limit   int               `json:"limit,omitempty"`
	Explain bool              `json:"explain,omitempty"`

	// Shorthand fields are kept for compatibility with the first catalog MCP
	// surface. Query combines these with Where using an implicit AND.
	Kind     string `json:"kind,omitempty"`
	Database string `json:"database,omitempty"`
	Schema   string `json:"schema,omitempty"`
	Table    string `json:"table,omitempty"`
	Column   string `json:"column,omitempty"`
}

type QueryResult

type QueryResult struct {
	Cards   []Card           `json:"cards"`
	Matches map[string]Match `json:"matches,omitempty"`
}

type SavedQuery added in v3.18.20

type SavedQuery struct {
	Name       string         `json:"name"`
	Namespace  string         `json:"namespace,omitempty"`
	Operation  string         `json:"operation,omitempty"`
	Query      string         `json:"query,omitempty"`
	Variables  map[string]any `json:"variables,omitempty"`
	SourceHash string         `json:"source_hash,omitempty"`
}

type Snapshot

type Snapshot struct {
	GeneratedAt     time.Time         `json:"generated_at"`
	Revision        string            `json:"revision,omitempty"`
	SourceRevisions map[string]string `json:"source_revisions,omitempty"`
	Cards           []Card            `json:"cards"`
	Details         []CardDetail      `json:"details,omitempty"`
	Nodes           []Node            `json:"nodes,omitempty"`
	Edges           []Edge            `json:"edges,omitempty"`
	EntryPoints     []EntryPoint      `json:"entrypoints,omitempty"`
	Capabilities    []Capability      `json:"capabilities,omitempty"`
	// contains filtered or unexported fields
}

Snapshot is the AI-facing catalog projection of GraphJin's own world: database schema, language features, config, and callable capabilities.

func Build

func Build(snapshot *MetadataSnapshot, conf any) *Snapshot

func BuildWithOptions

func BuildWithOptions(snapshot *MetadataSnapshot, conf any, opts BuildOptions) *Snapshot

func (*Snapshot) Query

func (s *Snapshot) Query(q Query) (QueryResult, error)

Query searches and filters catalog cards using GraphJin-shaped arguments: search for ranked full text, where for precise filtering, order_by for deterministic sorting, and limit for result size.

type Source added in v3.18.20

type Source struct {
	Name         string          `json:"name"`
	Kind         string          `json:"kind"`
	Type         string          `json:"type,omitempty"`
	Default      bool            `json:"default,omitempty"`
	ReadOnly     bool            `json:"read_only,omitempty"`
	Capabilities map[string]bool `json:"capabilities,omitempty"`
}

type Workflow

type Workflow struct {
	Name           string             `json:"name"`
	Description    string             `json:"description,omitempty"`
	Tags           []string           `json:"tags,omitempty"`
	Variables      []WorkflowVariable `json:"variables,omitempty"`
	Path           string             `json:"path,omitempty"`
	SourceHash     string             `json:"source_hash,omitempty"`
	Runtime        string             `json:"runtime,omitempty"`
	TimeoutSeconds int                `json:"timeout_seconds,omitempty"`
	CreatedAt      string             `json:"created_at,omitempty"`
	UpdatedAt      string             `json:"updated_at,omitempty"`
}

type WorkflowVariable

type WorkflowVariable struct {
	Name        string `json:"name"`
	Type        string `json:"type,omitempty"`
	Description string `json:"description,omitempty"`
	Required    bool   `json:"required,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL