{
  "name": "github.com/l1fe-labs/forge-go/agent",
  "language": "go",
  "version": "module source snapshot",
  "description": "Go agent package.",
  "manifest": "forge-go/go.mod",
  "manifestSha256": "dee97864d07a64c4c93c79104137d155f0cbae6962945f3b56ceb7744a03cc82",
  "status": "source-reference",
  "registryPublicationVerified": false,
  "route": "/libraries/go/agent",
  "features": {},
  "files": [
    {
      "path": "forge-go/agent/agent.go",
      "sha256": "bb530aa59caa939029221929ce95cd670ded13342191b87c90af3909bac48fec",
      "artifactSha256": "05e319de257addcf1e7c8040e895fc1223fd69f2b3dbd50c590f7c17753234b6",
      "url": "/reference/source/forge-go/agent/agent.go.txt",
      "declarations": [
        {
          "name": "const DefaultMaxSteps;",
          "line": 18,
          "signature": "const DefaultMaxSteps;",
          "documentation": ""
        },
        {
          "name": "type Agent interface",
          "line": 27,
          "signature": "type Agent interface",
          "documentation": ""
        },
        {
          "name": "type AgentOutput struct",
          "line": 48,
          "signature": "type AgentOutput struct",
          "documentation": ""
        },
        {
          "name": "type AgentConfig struct",
          "line": 66,
          "signature": "type AgentConfig struct",
          "documentation": ""
        },
        {
          "name": "func (c *AgentConfig) EffectiveMaxSteps() int",
          "line": 96,
          "signature": "func (c *AgentConfig) EffectiveMaxSteps() int",
          "documentation": ""
        },
        {
          "name": "func (c *AgentConfig) EffectiveTelemetry() core.TelemetryEmitter",
          "line": 104,
          "signature": "func (c *AgentConfig) EffectiveTelemetry() core.TelemetryEmitter",
          "documentation": ""
        },
        {
          "name": "func (c *AgentConfig) IsLegacyMode() bool",
          "line": 117,
          "signature": "func (c *AgentConfig) IsLegacyMode() bool",
          "documentation": ""
        },
        {
          "name": "type AgentConfigBuilder struct",
          "line": 122,
          "signature": "type AgentConfigBuilder struct",
          "documentation": ""
        },
        {
          "name": "func NewAgentConfigBuilder() *AgentConfigBuilder",
          "line": 127,
          "signature": "func NewAgentConfigBuilder() *AgentConfigBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *AgentConfigBuilder) Name(name string) *AgentConfigBuilder",
          "line": 132,
          "signature": "func (b *AgentConfigBuilder) Name(name string) *AgentConfigBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *AgentConfigBuilder) Model(model core.LanguageModel) *AgentConfigBuilder",
          "line": 138,
          "signature": "func (b *AgentConfigBuilder) Model(model core.LanguageModel) *AgentConfigBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *AgentConfigBuilder) Tools(tools *tool.Registry) *AgentConfigBuilder",
          "line": 144,
          "signature": "func (b *AgentConfigBuilder) Tools(tools *tool.Registry) *AgentConfigBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *AgentConfigBuilder) MaxSteps(n int) *AgentConfigBuilder",
          "line": 150,
          "signature": "func (b *AgentConfigBuilder) MaxSteps(n int) *AgentConfigBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *AgentConfigBuilder) SystemPrompt(prompt string) *AgentConfigBuilder",
          "line": 156,
          "signature": "func (b *AgentConfigBuilder) SystemPrompt(prompt string) *AgentConfigBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *AgentConfigBuilder) Identity(id *identity.ForgeAgentIdentity) *AgentConfigBuilder",
          "line": 162,
          "signature": "func (b *AgentConfigBuilder) Identity(id *identity.ForgeAgentIdentity) *AgentConfigBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *AgentConfigBuilder) ACT(act *auth.ArsenalACT) *AgentConfigBuilder",
          "line": 168,
          "signature": "func (b *AgentConfigBuilder) ACT(act *auth.ArsenalACT) *AgentConfigBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *AgentConfigBuilder) ApprovalHandler(handler core.ToolApprovalHandler) *AgentConfigBuilder",
          "line": 174,
          "signature": "func (b *AgentConfigBuilder) ApprovalHandler(handler core.ToolApprovalHandler) *AgentConfigBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *AgentConfigBuilder) Telemetry(emitter core.TelemetryEmitter) *AgentConfigBuilder",
          "line": 180,
          "signature": "func (b *AgentConfigBuilder) Telemetry(emitter core.TelemetryEmitter) *AgentConfigBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *AgentConfigBuilder) Build() (*AgentConfig, error)",
          "line": 186,
          "signature": "func (b *AgentConfigBuilder) Build() (*AgentConfig, error)",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/agent/loopcontrol.go",
      "sha256": "1b368e1cd041be872b1dabd9c975479b046c8701180a3f683e52acc0ed8230af",
      "artifactSha256": "eae220d9903b9834bdc8e1e8e8806075834fc6695b9e26066a7a0558186dc4de",
      "url": "/reference/source/forge-go/agent/loopcontrol.go.txt",
      "declarations": [
        {
          "name": "type StopCondition func(result *core.GenerateResult, step int) bool",
          "line": 10,
          "signature": "type StopCondition func(result *core.GenerateResult, step int) bool\n\n// MaxStepsCondition creates a StopCondition that stops after n steps.\nfunc MaxStepsCondition(n int) StopCondition",
          "documentation": ""
        },
        {
          "name": "func MaxStepsCondition(n int) StopCondition",
          "line": 13,
          "signature": "func MaxStepsCondition(n int) StopCondition",
          "documentation": ""
        },
        {
          "name": "func MaxTokensCondition(maxTokens int64) StopCondition",
          "line": 21,
          "signature": "func MaxTokensCondition(maxTokens int64) StopCondition",
          "documentation": ""
        },
        {
          "name": "func NoToolCallsCondition() StopCondition",
          "line": 30,
          "signature": "func NoToolCallsCondition() StopCondition",
          "documentation": ""
        },
        {
          "name": "func TextContainsCondition(substr string) StopCondition",
          "line": 38,
          "signature": "func TextContainsCondition(substr string) StopCondition",
          "documentation": ""
        },
        {
          "name": "func AnyStopCondition(conditions ...StopCondition) StopCondition",
          "line": 46,
          "signature": "func AnyStopCondition(conditions ...StopCondition) StopCondition",
          "documentation": ""
        },
        {
          "name": "func AllStopConditions(conditions ...StopCondition) StopCondition",
          "line": 58,
          "signature": "func AllStopConditions(conditions ...StopCondition) StopCondition",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/agent/messaging.go",
      "sha256": "82e725d8e22670f28d55733ceb34713f3f80916d31e2b35cd8b7ba7d1bb47a99",
      "artifactSha256": "6cb6d80d27e68d760bea81f478953fa8feb428629597d92f1c427ee32e0fe51c",
      "url": "/reference/source/forge-go/agent/messaging.go.txt",
      "declarations": [
        {
          "name": "type ConversationBuilder struct",
          "line": 7,
          "signature": "type ConversationBuilder struct",
          "documentation": ""
        },
        {
          "name": "func NewConversation() *ConversationBuilder",
          "line": 12,
          "signature": "func NewConversation() *ConversationBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *ConversationBuilder) System(text string) *ConversationBuilder",
          "line": 17,
          "signature": "func (b *ConversationBuilder) System(text string) *ConversationBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *ConversationBuilder) User(text string) *ConversationBuilder",
          "line": 23,
          "signature": "func (b *ConversationBuilder) User(text string) *ConversationBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *ConversationBuilder) Assistant(text string) *ConversationBuilder",
          "line": 29,
          "signature": "func (b *ConversationBuilder) Assistant(text string) *ConversationBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *ConversationBuilder) ToolResult(result core.ToolResult) *ConversationBuilder",
          "line": 35,
          "signature": "func (b *ConversationBuilder) ToolResult(result core.ToolResult) *ConversationBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *ConversationBuilder) Message(msg core.ModelMessage) *ConversationBuilder",
          "line": 41,
          "signature": "func (b *ConversationBuilder) Message(msg core.ModelMessage) *ConversationBuilder",
          "documentation": ""
        },
        {
          "name": "func (b *ConversationBuilder) Build() []core.ModelMessage",
          "line": 47,
          "signature": "func (b *ConversationBuilder) Build() []core.ModelMessage",
          "documentation": ""
        },
        {
          "name": "func (b *ConversationBuilder) Count() int",
          "line": 54,
          "signature": "func (b *ConversationBuilder) Count() int",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/agent/subagent.go",
      "sha256": "a6f90affcbb4c7b7fa46362837968753f6076ede147f6f455c1e4406766df28a",
      "artifactSha256": "d366bac2ba6a7cfcb0d6bb023f668107cc0f48a9f93add0c62ecb2992d5f5a14",
      "url": "/reference/source/forge-go/agent/subagent.go.txt",
      "declarations": [
        {
          "name": "type SubAgentConfig struct",
          "line": 14,
          "signature": "type SubAgentConfig struct",
          "documentation": ""
        },
        {
          "name": "func CreateSubAgent(parent Agent, config SubAgentConfig) (*ToolLoopAgent, error)",
          "line": 42,
          "signature": "func CreateSubAgent(parent Agent, config SubAgentConfig) (*ToolLoopAgent, error)",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/agent/toolloop.go",
      "sha256": "14a69dcf21b93ad9aa1fc8a97cf5fd1a231d2e507318d6283c91a6dfeb4a2a65",
      "artifactSha256": "a1300df0f27585ef5122fc9ad95af6283c07657bb5561d7e3e26f3d6e93dd236",
      "url": "/reference/source/forge-go/agent/toolloop.go.txt",
      "declarations": [
        {
          "name": "type ToolLoopAgent struct",
          "line": 18,
          "signature": "type ToolLoopAgent struct",
          "documentation": ""
        },
        {
          "name": "func NewToolLoopAgent(config *AgentConfig) (*ToolLoopAgent, error)",
          "line": 27,
          "signature": "func NewToolLoopAgent(config *AgentConfig) (*ToolLoopAgent, error)",
          "documentation": ""
        },
        {
          "name": "func (a *ToolLoopAgent) Config() *AgentConfig",
          "line": 47,
          "signature": "func (a *ToolLoopAgent) Config() *AgentConfig",
          "documentation": ""
        },
        {
          "name": "func (a *ToolLoopAgent) Health() *health.HealthProfile",
          "line": 52,
          "signature": "func (a *ToolLoopAgent) Health() *health.HealthProfile",
          "documentation": ""
        },
        {
          "name": "func (a *ToolLoopAgent) Lifecycle() *health.LifecycleManager",
          "line": 57,
          "signature": "func (a *ToolLoopAgent) Lifecycle() *health.LifecycleManager",
          "documentation": ""
        },
        {
          "name": "func (a *ToolLoopAgent) Run(ctx context.Context, prompt string) (*AgentOutput, error)",
          "line": 67,
          "signature": "func (a *ToolLoopAgent) Run(ctx context.Context, prompt string) (*AgentOutput, error)",
          "documentation": ""
        },
        {
          "name": "func (a *ToolLoopAgent) RunWithMessages(ctx context.Context, messages []core.ModelMessage) (*AgentOutput, error)",
          "line": 77,
          "signature": "func (a *ToolLoopAgent) RunWithMessages(ctx context.Context, messages []core.ModelMessage) (*AgentOutput, error)",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/agent/workflow.go",
      "sha256": "218b805be10a7e9a740c09be4c1854490503c71ef105d28ce0144aade0547bb0",
      "artifactSha256": "93f609d619dadc70224bf38212426d1fba448bc60daebd4447bb7eb9e935a528",
      "url": "/reference/source/forge-go/agent/workflow.go.txt",
      "declarations": [
        {
          "name": "type WorkflowStep struct",
          "line": 11,
          "signature": "type WorkflowStep struct",
          "documentation": ""
        },
        {
          "name": "func RunWorkflow(ctx context.Context, steps []WorkflowStep) (*AgentOutput, error)",
          "line": 36,
          "signature": "func RunWorkflow(ctx context.Context, steps []WorkflowStep) (*AgentOutput, error)",
          "documentation": ""
        }
      ]
    }
  ]
}
