Documentation
¶
Index ¶
Constants ¶
const ( StateSchemaVersion = 1 ToolContractVersion = 1 )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct {
Name string
Version string
CWD string
AppServerEndpoint string
ClientEndpoint string
MCPBridgeSocket string
IntercomBin string
BrokerSocket string
BrokerBin string
New bool
AdoptThreadID string
ForkThreadID string
ReplaceBinding bool
ExecutionPolicy ExecutionPolicy
Logger *slog.Logger
QueueSize int
StartupTimeout time.Duration
ControlTimeout time.Duration
ReverseTimeout time.Duration
ActivityTimeout time.Duration
StatePath string
LockPath string
OnReady func(ReadyInfo) error
OnStopping func() error
// contains filtered or unexported fields
}
type ExecutionPolicy ¶ added in v0.2.2
type ExecutionPolicy string
ExecutionPolicy is the launch-scoped command execution boundary for a managed Codex service. It is deliberately not persisted in ManagedState; omitting --yolo on a later launch returns the thread to workspace-write.
const ( ExecutionWorkspaceWrite ExecutionPolicy = "workspace-write" ExecutionDangerFullAccess ExecutionPolicy = "danger-full-access" )
func (ExecutionPolicy) IsYolo ¶ added in v0.2.2
func (p ExecutionPolicy) IsYolo() bool
type ManagedState ¶
type ManagedState struct {
SchemaVersion int `json:"schemaVersion"`
Peer string `json:"peer"`
ThreadID string `json:"threadId"`
CWD string `json:"cwd"`
CodexHome string `json:"codexHome"`
ServerUserAgent string `json:"serverUserAgent"`
CodexVersion string `json:"codexVersion"`
ToolContractVersion int `json:"toolContractVersion"`
ToolTransport ToolTransport `json:"toolTransport"`
Materialized bool `json:"materialized"`
}
ManagedState binds an Intercom peer to the Codex thread it exclusively manages. Conversation data remains in CODEX_HOME; this record contains only binding identity, compatibility metadata, and last-validated runtime diagnostics.
func (ManagedState) Validate ¶
func (s ManagedState) Validate() error
type ReadyInfo ¶
type ReadyInfo struct {
Name string
CWD string
ThreadID string
ClientEndpoint string
CodexVersion string
ExecutionPolicy ExecutionPolicy
}
ReadyInfo describes the live managed thread after the broker and optional TUI proxy are ready. OnReady runs synchronously before Run enters its main service loop.
type StateStore ¶
type StateStore struct {
// contains filtered or unexported fields
}
StateStore owns the non-blocking lifetime lock for one peer and provides atomic state reads and writes.
func AcquireStateStore ¶
func AcquireStateStore(statePath, lockPath string) (*StateStore, error)
AcquireStateStore acquires lockPath without waiting. The returned store must be closed for the process lifetime of the managed peer.
func (*StateStore) Close ¶
func (s *StateStore) Close() error
func (*StateStore) Load ¶
func (s *StateStore) Load() (*ManagedState, error)
Load returns nil, nil when no binding exists.
func (*StateStore) Remove ¶
func (s *StateStore) Remove() error
func (*StateStore) Save ¶
func (s *StateStore) Save(state ManagedState) error
Save durably and atomically replaces the state file with mode 0600.
type ThreadLock ¶ added in v0.2.2
type ThreadLock struct {
// contains filtered or unexported fields
}
ThreadLock is a non-blocking process-lifetime advisory lock. It coordinates Intercom controllers; ordinary Codex processes do not honor it.
func AcquireThreadLock ¶ added in v0.2.2
func AcquireThreadLock(lockPath string) (*ThreadLock, error)
AcquireThreadLock prevents two Intercom peers from managing the same Codex thread concurrently.
func (*ThreadLock) Close ¶ added in v0.2.2
func (l *ThreadLock) Close() error
Close releases the thread lock.
type ToolTransport ¶ added in v0.2.2
type ToolTransport string
ToolTransport identifies how a managed Codex thread reaches Intercom's tools. Threads created by Intercom persist app-server dynamic tools in their rollout. Adopted and forked interactive threads receive an ephemeral MCP bridge configuration on every cold resume.
const ( ToolTransportDynamic ToolTransport = "dynamic" ToolTransportMCPBridge ToolTransport = "mcpBridge" )