prepare_create_asset

package
v0.0.33 Latest Latest
Warning

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

Go to latest
Published: May 13, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package prepare_create_asset implements the prepare_create_asset MCP tool — a read-only companion to create_asset. It lists available asset types and domains, resolves a name/publicId/UUID for either, and hydrates the scoped attribute and relation schema for a chosen (assetType, domain) pair so the agent knows what fields and statuses are available before composing the create. It does NOT perform duplicate detection or pre-flight validation — those live in create_asset itself, which is fully self-sufficient. Use this tool only when the agent needs to enumerate options or inspect a type's full schema.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewTool

func NewTool(collibraClient *http.Client) *chip.Tool[Input, Output]

NewTool returns the registered tool.

Types

type AssetTypeOption

type AssetTypeOption struct {
	ID       string `json:"id" jsonschema:"UUID of the asset type."`
	PublicID string `json:"publicId" jsonschema:"PublicId of the asset type."`
	Name     string `json:"name" jsonschema:"Display name of the asset type."`
}

AssetTypeOption is one entry in assetTypeOptions.

type AttributeSchemaEntry added in v0.0.33

type AttributeSchemaEntry struct {
	AttributeTypeID string   `json:"attributeTypeId" jsonschema:"UUID of the attribute type — pass this in attributes[].typeId to create_asset."`
	Name            string   `json:"name" jsonschema:"Display name of the attribute (e.g. 'Definition', 'Note'). Also accepted by create_asset."`
	PublicID        string   `json:"publicId,omitempty" jsonschema:"PublicId of the attribute type."`
	Kind            string   `json:"kind" jsonschema:"Attribute-type discriminator (e.g. 'StringAttributeType', 'NumericAttributeType')."`
	Required        bool     `` /* 296-byte string literal not displayed */
	Min             int      `json:"min" jsonschema:"Minimum number of occurrences."`
	Max             *int     `json:"max,omitempty" jsonschema:"Maximum number of occurrences. Absent when unbounded."`
	StringType      string   `` /* 207-byte string literal not displayed */
	Description     string   `` /* 139-byte string literal not displayed */
	AllowedValues   []string `` /* 139-byte string literal not displayed */
}

AttributeSchemaEntry is one attribute slot in the scoped assignment.

type DomainOption

type DomainOption struct {
	ID       string `json:"id" jsonschema:"UUID of the domain."`
	Name     string `json:"name" jsonschema:"Display name of the domain."`
	TypeName string `json:"typeName,omitempty" jsonschema:"Display name of the domain's domain type, when included by the API."`
}

DomainOption is one entry in domainOptions.

type Input

type Input struct {
	AssetType         string `` /* 263-byte string literal not displayed */
	Domain            string `` /* 169-byte string literal not displayed */
	IncludeStringType bool   `` /* 283-byte string literal not displayed */
}

Input is the tool's typed input. Either assetType or domain may be omitted to enumerate options.

type Output

type Output struct {
	Status            Status                 `` /* 234-byte string literal not displayed */
	Message           string                 `json:"message" jsonschema:"Human-readable summary of the outcome."`
	Resolved          *Resolved              `` /* 182-byte string literal not displayed */
	AssetTypeOptions  []AssetTypeOption      `` /* 201-byte string literal not displayed */
	DomainOptions     []DomainOption         `` /* 138-byte string literal not displayed */
	OptionsTruncated  bool                   `json:"optionsTruncated" jsonschema:"Whether assetTypeOptions or domainOptions was truncated below the instance's true total."`
	AttributeSchema   []AttributeSchemaEntry `` /* 278-byte string literal not displayed */
	RelationTypes     []RelationSchemaEntry  `` /* 156-byte string literal not displayed */
	AvailableStatuses []StatusOption         `` /* 219-byte string literal not displayed */
}

Output is the structured discovery response.

type RelationSchemaEntry added in v0.0.33

type RelationSchemaEntry struct {
	RelationTypeID string `json:"relationTypeId" jsonschema:"UUID of the relation type."`
	Role           string `json:"role" jsonschema:"Forward role name of the relation (e.g. 'is synonym of')."`
	CoRole         string `json:"coRole,omitempty" jsonschema:"Reverse role name."`
	Direction      string `json:"direction,omitempty" jsonschema:"Direction of the relation as defined in the assignment."`
	TargetTypeID   string `json:"targetTypeId,omitempty" jsonschema:"UUID of the asset type on the target side of the relation."`
	TargetTypeName string `json:"targetTypeName,omitempty" jsonschema:"Display name of the asset type on the target side of the relation."`
}

RelationSchemaEntry is one relation slot in the scoped assignment.

type Resolved added in v0.0.33

type Resolved struct {
	AssetTypeID       string `json:"assetTypeId" jsonschema:"UUID of the resolved asset type."`
	AssetTypeName     string `json:"assetTypeName" jsonschema:"Display name of the resolved asset type."`
	AssetTypePublicID string `json:"assetTypePublicId,omitempty" jsonschema:"PublicId of the resolved asset type, when known."`
	DomainID          string `json:"domainId" jsonschema:"UUID of the resolved domain."`
	DomainName        string `json:"domainName" jsonschema:"Display name of the resolved domain."`
	DomainTypeID      string `` /* 142-byte string literal not displayed */
	DomainTypeName    string `json:"domainTypeName,omitempty" jsonschema:"Display name of the resolved domain's domain type."`
}

Resolved holds the fully-resolved IDs for an assetType + domain pair.

type Status added in v0.0.33

type Status string

Status is the discovery outcome.

const (
	// StatusReady means an assetType + domain were both resolved and the
	// scoped assignment was hydrated successfully — the agent has
	// everything it needs to call create_asset.
	StatusReady Status = "ready"
	// StatusIncomplete means at least one of assetType / domain was
	// missing; the response includes pre-fetched options.
	StatusIncomplete Status = "incomplete"
	// StatusNeedsClarification means resolution failed (typo, multiple
	// matches, asset type not allowed in domain). Options for recovery
	// are included where useful.
	StatusNeedsClarification Status = "needs_clarification"
)

type StatusOption added in v0.0.33

type StatusOption struct {
	ID   string `json:"id" jsonschema:"UUID of the status."`
	Name string `json:"name" jsonschema:"Display name of the status."`
}

StatusOption is one entry in availableStatuses.

Jump to

Keyboard shortcuts

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