Documentation
¶
Index ¶
- func InstanceToProto(inst *session.Instance, workflowNames map[string]string) *sessionv1.Session
- func ProtoToAttentionReason(reason sessionv1.AttentionReason) session.AttentionReason
- func ProtoToPriority(priority sessionv1.Priority) session.Priority
- func ProtoToSessionType(sessionType sessionv1.SessionType) session.SessionType
- func ProtoToStatus(status sessionv1.SessionStatus) session.Status
- func ReviewItemToProto(item *session.ReviewItem, extraMetadata map[string]string) *sessionv1.ReviewItem
- func ReviewQueueToProto(queue *session.ReviewQueue, approvalIDs map[string]string) *sessionv1.ReviewQueue
- func SetPiExtensionHealthResolver(fn func(sessionID, program string) sessionv1.PiExtensionHealth)
- func StatusStringToProto(status string) sessionv1.SessionStatus
- func StatusToProto(status session.Status) (sessionv1.SessionStatus, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InstanceToProto ¶
InstanceToProto converts a session.Instance to a proto Session message. workflowNames is an optional map from workflow UUID to workflow name; pass nil to omit workflow_name.
func ProtoToAttentionReason ¶
func ProtoToAttentionReason(reason sessionv1.AttentionReason) session.AttentionReason
ProtoToAttentionReason converts proto AttentionReason enum to session.AttentionReason.
func ProtoToPriority ¶
ProtoToPriority converts proto Priority enum to session.Priority.
func ProtoToSessionType ¶
func ProtoToSessionType(sessionType sessionv1.SessionType) session.SessionType
ProtoToSessionType converts proto SessionType enum to session.SessionType.
func ProtoToStatus ¶
func ProtoToStatus(status sessionv1.SessionStatus) session.Status
ProtoToStatus converts proto SessionStatus enum to session.Status. Legacy wire values from older clients (READY=2, NEEDS_APPROVAL=5, LOADING=3) are mapped to the appropriate new lifecycle states.
func ReviewItemToProto ¶
func ReviewItemToProto(item *session.ReviewItem, extraMetadata map[string]string) *sessionv1.ReviewItem
ReviewItemToProto converts session.ReviewItem to proto ReviewItem. extraMetadata entries are merged into the item's Metadata map; callers use this to inject enrichment (e.g. pending_approval_id) at conversion time so that no mutation is needed after the proto is built.
func ReviewQueueToProto ¶
func ReviewQueueToProto(queue *session.ReviewQueue, approvalIDs map[string]string) *sessionv1.ReviewQueue
ReviewQueueToProto converts session.ReviewQueue to proto ReviewQueue. approvalIDs is a map of sessionID → pending approval ID used to enrich APPROVAL_PENDING items inline; pass nil if no enrichment is needed.
func SetPiExtensionHealthResolver ¶ added in v1.52.0
func SetPiExtensionHealthResolver(fn func(sessionID, program string) sessionv1.PiExtensionHealth)
SetPiExtensionHealthResolver wires server/services.PiExtensionHealthTracker (pi-support Epic 4.2) into InstanceToProto. adapters cannot import server/services directly (services already imports adapters), so server.go's wireDepsIntoServer supplies this closure during real server wiring, exactly like hook_injector.go's SetHookBaseURLFn. Passing nil is a no-op — every session's pi_extension_health field stays PI_EXTENSION_HEALTH_UNSPECIFIED (the zero value) until wired, which is the correct default for tests and any caller that never sets this up.
func StatusStringToProto ¶
func StatusStringToProto(status string) sessionv1.SessionStatus
StatusStringToProto converts a status string (from session.Status.String()) to proto SessionStatus. Used when the status is stored as a string in ReviewItem rather than session.Status.
func StatusToProto ¶
func StatusToProto(status session.Status) (sessionv1.SessionStatus, error)
StatusToProto converts a session.Status to its proto SessionStatus wire value. Returns an explicit error for an unrecognized status instead of silently falling back to UNSPECIFIED, so a future new session.Status value that isn't added here fails loudly (see .golangci.yml's exhaustive-linter exclusion comment for why this is enforced at the code level here rather than via the linter, which is deliberately disabled repo-wide for iota-typed switches with intentional default arms).
Types ¶
This section is empty.