gen

package
v0.1.5-alpha Latest Latest
Warning

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

Go to latest
Published: May 24, 2026 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SchedulerService_GetTenantIdP_FullMethodName   = "/protocol.SchedulerService/GetTenantIdP"
	SchedulerService_Authenticate_FullMethodName   = "/protocol.SchedulerService/Authenticate"
	SchedulerService_Route_FullMethodName          = "/protocol.SchedulerService/Route"
	SchedulerService_RegisterWorker_FullMethodName = "/protocol.SchedulerService/RegisterWorker"
	SchedulerService_Heartbeat_FullMethodName      = "/protocol.SchedulerService/Heartbeat"
)
View Source
const (
	WorkerService_Compile_FullMethodName           = "/protocol.WorkerService/Compile"
	WorkerService_ProbeCompileCache_FullMethodName = "/protocol.WorkerService/ProbeCompileCache"
	WorkerService_FindMissingBlobs_FullMethodName  = "/protocol.WorkerService/FindMissingBlobs"
	WorkerService_UploadBlobs_FullMethodName       = "/protocol.WorkerService/UploadBlobs"
)
View Source
const MaxCompileMessageBytes = 256 << 20 // 256 MiB

MaxCompileMessageBytes is the gRPC message-size ceiling for the worker.Compile RPC. gRPC's default 4 MiB is wildly insufficient for real compile workloads: a single Linux-kernel TU's preprocessed source can hit 15 MiB once <linux/*.h> finishes expanding, and the returned object (with debug info or kallsyms-style symbol tables) can be much larger again. 256 MiB is enough headroom that even the pathological TUs in the kernel build complete, with the request / response still bounded so a confused client can't OOM a worker.

Both ends of the unary worker.Compile RPC apply this limit: the server via grpc.MaxRecvMsgSize / grpc.MaxSendMsgSize, the client via grpc.MaxCallRecvMsgSize / grpc.MaxCallSendMsgSize. The scheduler RPCs (Route, RegisterWorker, Heartbeat) stay on gRPC defaults — they carry routing decisions, not compile payloads.

Variables

View Source
var (
	RuntimeType_name = map[int32]string{
		0: "FIRECRACKER",
		1: "HYPERV",
		2: "DANGEROUS",
	}
	RuntimeType_value = map[string]int32{
		"FIRECRACKER": 0,
		"HYPERV":      1,
		"DANGEROUS":   2,
	}
)

Enum value maps for RuntimeType.

View Source
var (
	VMState_name = map[int32]string{
		0: "RUNNING",
		1: "SNAPSHOTTED",
		2: "BOOTING",
	}
	VMState_value = map[string]int32{
		"RUNNING":     0,
		"SNAPSHOTTED": 1,
		"BOOTING":     2,
	}
)

Enum value maps for VMState.

View Source
var (
	SourceMode_name = map[int32]string{
		0: "SOURCE_MODE_UNSPECIFIED",
		1: "CAS",
		2: "PREPROCESSED",
	}
	SourceMode_value = map[string]int32{
		"SOURCE_MODE_UNSPECIFIED": 0,
		"CAS":                     1,
		"PREPROCESSED":            2,
	}
)

Enum value maps for SourceMode.

View Source
var File_compile_proto protoreflect.FileDescriptor
View Source
var File_enums_proto protoreflect.FileDescriptor
View Source
var File_messages_proto protoreflect.FileDescriptor
View Source
var File_scheduler_proto protoreflect.FileDescriptor
View Source
var File_worker_proto protoreflect.FileDescriptor
View Source
var SchedulerService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "protocol.SchedulerService",
	HandlerType: (*SchedulerServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetTenantIdP",
			Handler:    _SchedulerService_GetTenantIdP_Handler,
		},
		{
			MethodName: "Authenticate",
			Handler:    _SchedulerService_Authenticate_Handler,
		},
		{
			MethodName: "Route",
			Handler:    _SchedulerService_Route_Handler,
		},
		{
			MethodName: "RegisterWorker",
			Handler:    _SchedulerService_RegisterWorker_Handler,
		},
		{
			MethodName: "Heartbeat",
			Handler:    _SchedulerService_Heartbeat_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "scheduler.proto",
}

SchedulerService_ServiceDesc is the grpc.ServiceDesc for SchedulerService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var WorkerService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "protocol.WorkerService",
	HandlerType: (*WorkerServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Compile",
			Handler:    _WorkerService_Compile_Handler,
		},
		{
			MethodName: "ProbeCompileCache",
			Handler:    _WorkerService_ProbeCompileCache_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "FindMissingBlobs",
			Handler:       _WorkerService_FindMissingBlobs_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "UploadBlobs",
			Handler:       _WorkerService_UploadBlobs_Handler,
			ClientStreams: true,
		},
	},
	Metadata: "worker.proto",
}

WorkerService_ServiceDesc is the grpc.ServiceDesc for WorkerService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterSchedulerServiceServer

func RegisterSchedulerServiceServer(s grpc.ServiceRegistrar, srv SchedulerServiceServer)

func RegisterWorkerServiceServer

func RegisterWorkerServiceServer(s grpc.ServiceRegistrar, srv WorkerServiceServer)

Types

type ActiveVM

type ActiveVM struct {
	VmId        string  `protobuf:"bytes,1,opt,name=vm_id,json=vmId,proto3" json:"vm_id,omitempty"`
	TenantId    string  `protobuf:"bytes,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	ImageDigest string  `protobuf:"bytes,3,opt,name=image_digest,json=imageDigest,proto3" json:"image_digest,omitempty"`
	State       VMState `protobuf:"varint,4,opt,name=state,proto3,enum=protocol.VMState" json:"state,omitempty"`
	// contains filtered or unexported fields
}

func (*ActiveVM) Descriptor deprecated

func (*ActiveVM) Descriptor() ([]byte, []int)

Deprecated: Use ActiveVM.ProtoReflect.Descriptor instead.

func (*ActiveVM) GetImageDigest

func (x *ActiveVM) GetImageDigest() string

func (*ActiveVM) GetState

func (x *ActiveVM) GetState() VMState

func (*ActiveVM) GetTenantId

func (x *ActiveVM) GetTenantId() string

func (*ActiveVM) GetVmId

func (x *ActiveVM) GetVmId() string

func (*ActiveVM) ProtoMessage

func (*ActiveVM) ProtoMessage()

func (*ActiveVM) ProtoReflect

func (x *ActiveVM) ProtoReflect() protoreflect.Message

func (*ActiveVM) Reset

func (x *ActiveVM) Reset()

func (*ActiveVM) String

func (x *ActiveVM) String() string

type AuditRecord

type AuditRecord struct {
	TenantId     string   `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	SchedulerId  string   `protobuf:"bytes,2,opt,name=scheduler_id,json=schedulerId,proto3" json:"scheduler_id,omitempty"`
	WorkerId     string   `protobuf:"bytes,3,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"`
	VmId         string   `protobuf:"bytes,4,opt,name=vm_id,json=vmId,proto3" json:"vm_id,omitempty"`
	ImageDigest  string   `protobuf:"bytes,5,opt,name=image_digest,json=imageDigest,proto3" json:"image_digest,omitempty"`
	SourceDigest []byte   `protobuf:"bytes,6,opt,name=source_digest,json=sourceDigest,proto3" json:"source_digest,omitempty"`
	OutputDigest []byte   `protobuf:"bytes,7,opt,name=output_digest,json=outputDigest,proto3" json:"output_digest,omitempty"`
	CacheKey     string   `protobuf:"bytes,8,opt,name=cache_key,json=cacheKey,proto3" json:"cache_key,omitempty"`
	Flags        []string `protobuf:"bytes,9,rep,name=flags,proto3" json:"flags,omitempty"`
	ExitCode     int32    `protobuf:"varint,10,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
	DurationMs   int64    `protobuf:"varint,11,opt,name=duration_ms,json=durationMs,proto3" json:"duration_ms,omitempty"`
	Timestamp    int64    `protobuf:"varint,12,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// contains filtered or unexported fields
}

func (*AuditRecord) Descriptor deprecated

func (*AuditRecord) Descriptor() ([]byte, []int)

Deprecated: Use AuditRecord.ProtoReflect.Descriptor instead.

func (*AuditRecord) GetCacheKey

func (x *AuditRecord) GetCacheKey() string

func (*AuditRecord) GetDurationMs

func (x *AuditRecord) GetDurationMs() int64

func (*AuditRecord) GetExitCode

func (x *AuditRecord) GetExitCode() int32

func (*AuditRecord) GetFlags

func (x *AuditRecord) GetFlags() []string

func (*AuditRecord) GetImageDigest

func (x *AuditRecord) GetImageDigest() string

func (*AuditRecord) GetOutputDigest

func (x *AuditRecord) GetOutputDigest() []byte

func (*AuditRecord) GetSchedulerId

func (x *AuditRecord) GetSchedulerId() string

func (*AuditRecord) GetSourceDigest

func (x *AuditRecord) GetSourceDigest() []byte

func (*AuditRecord) GetTenantId

func (x *AuditRecord) GetTenantId() string

func (*AuditRecord) GetTimestamp

func (x *AuditRecord) GetTimestamp() int64

func (*AuditRecord) GetVmId

func (x *AuditRecord) GetVmId() string

func (*AuditRecord) GetWorkerId

func (x *AuditRecord) GetWorkerId() string

func (*AuditRecord) ProtoMessage

func (*AuditRecord) ProtoMessage()

func (*AuditRecord) ProtoReflect

func (x *AuditRecord) ProtoReflect() protoreflect.Message

func (*AuditRecord) Reset

func (x *AuditRecord) Reset()

func (*AuditRecord) String

func (x *AuditRecord) String() string

type AuthRequest

type AuthRequest struct {

	// tenant_id selects which tenant's IdP the scheduler validates the
	// JWT against. Required for jwt_token; ignored for static_token
	// (workers are tenant-agnostic at the auth layer). Carried in the
	// request rather than as a JWT claim so that an IdP configured for
	// tenant A is never asked to validate a token labeled as tenant B —
	// see docs/plan/multi-tenant.md "Threat model".
	TenantId string `protobuf:"bytes,3,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	// Types that are valid to be assigned to Token:
	//
	//	*AuthRequest_JwtToken
	//	*AuthRequest_StaticToken
	Token isAuthRequest_Token `protobuf_oneof:"token"`
	// contains filtered or unexported fields
}

func (*AuthRequest) Descriptor deprecated

func (*AuthRequest) Descriptor() ([]byte, []int)

Deprecated: Use AuthRequest.ProtoReflect.Descriptor instead.

func (*AuthRequest) GetJwtToken

func (x *AuthRequest) GetJwtToken() string

func (*AuthRequest) GetStaticToken

func (x *AuthRequest) GetStaticToken() string

func (*AuthRequest) GetTenantId

func (x *AuthRequest) GetTenantId() string

func (*AuthRequest) GetToken

func (x *AuthRequest) GetToken() isAuthRequest_Token

func (*AuthRequest) ProtoMessage

func (*AuthRequest) ProtoMessage()

func (*AuthRequest) ProtoReflect

func (x *AuthRequest) ProtoReflect() protoreflect.Message

func (*AuthRequest) Reset

func (x *AuthRequest) Reset()

func (*AuthRequest) String

func (x *AuthRequest) String() string

type AuthRequest_JwtToken

type AuthRequest_JwtToken struct {
	JwtToken string `protobuf:"bytes,1,opt,name=jwt_token,json=jwtToken,proto3,oneof"`
}

type AuthRequest_StaticToken

type AuthRequest_StaticToken struct {
	StaticToken string `protobuf:"bytes,2,opt,name=static_token,json=staticToken,proto3,oneof"`
}

type AuthResponse

type AuthResponse struct {
	Success          bool   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	SessionToken     string `protobuf:"bytes,2,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`                     // pass as "session-token" gRPC metadata on subsequent calls
	SigningPublicKey []byte `protobuf:"bytes,3,opt,name=signing_public_key,json=signingPublicKey,proto3,oneof" json:"signing_public_key,omitempty"` // scheduler's public key for verifying task JWTs (workers only)
	// contains filtered or unexported fields
}

func (*AuthResponse) Descriptor deprecated

func (*AuthResponse) Descriptor() ([]byte, []int)

Deprecated: Use AuthResponse.ProtoReflect.Descriptor instead.

func (*AuthResponse) GetSessionToken

func (x *AuthResponse) GetSessionToken() string

func (*AuthResponse) GetSigningPublicKey

func (x *AuthResponse) GetSigningPublicKey() []byte

func (*AuthResponse) GetSuccess

func (x *AuthResponse) GetSuccess() bool

func (*AuthResponse) ProtoMessage

func (*AuthResponse) ProtoMessage()

func (*AuthResponse) ProtoReflect

func (x *AuthResponse) ProtoReflect() protoreflect.Message

func (*AuthResponse) Reset

func (x *AuthResponse) Reset()

func (*AuthResponse) String

func (x *AuthResponse) String() string

type BlobChunk

type BlobChunk struct {

	// First message in a per-blob run carries the header; subsequent
	// messages carry data only. The worker tracks the active blob via
	// stream state, opens a BLAKE3 hasher on header, and finalises on
	// the next header (or stream close).
	//
	// Types that are valid to be assigned to Body:
	//
	//	*BlobChunk_Header
	//	*BlobChunk_Data
	Body isBlobChunk_Body `protobuf_oneof:"body"`
	// contains filtered or unexported fields
}

func (*BlobChunk) Descriptor deprecated

func (*BlobChunk) Descriptor() ([]byte, []int)

Deprecated: Use BlobChunk.ProtoReflect.Descriptor instead.

func (*BlobChunk) GetBody

func (x *BlobChunk) GetBody() isBlobChunk_Body

func (*BlobChunk) GetData

func (x *BlobChunk) GetData() []byte

func (*BlobChunk) GetHeader

func (x *BlobChunk) GetHeader() *BlobDigest

func (*BlobChunk) ProtoMessage

func (*BlobChunk) ProtoMessage()

func (*BlobChunk) ProtoReflect

func (x *BlobChunk) ProtoReflect() protoreflect.Message

func (*BlobChunk) Reset

func (x *BlobChunk) Reset()

func (*BlobChunk) String

func (x *BlobChunk) String() string

type BlobChunk_Data

type BlobChunk_Data struct {
	Data []byte `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}

type BlobChunk_Header

type BlobChunk_Header struct {
	Header *BlobDigest `protobuf:"bytes,1,opt,name=header,proto3,oneof"` // digest the client claims; worker recomputes and verifies
}

type BlobDigest

type BlobDigest struct {
	Digest []byte `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
	Size   uint64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`
	// tenant_id scopes the source-store namespace this blob lives in,
	// and is cross-checked against scheduler_token's tenant claim by
	// the worker. Required on every header.
	TenantId string `protobuf:"bytes,3,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	// scheduler_token is the short-lived per-route JWT the scheduler
	// issued when the client called Route. Worker verifies it against
	// the scheduler pubkey (already hydrated at RegisterWorker) and
	// refuses the stream if tenant_id, image_digest, or worker_id
	// don't match. Required on every header — repeated rather than
	// stream-init because gRPC bidi streams have no first-message
	// contract enforced by the runtime. See docs/plan/multi-tenant.md
	// "Worker enforcement".
	SchedulerToken string `protobuf:"bytes,4,opt,name=scheduler_token,json=schedulerToken,proto3" json:"scheduler_token,omitempty"`
	// contains filtered or unexported fields
}

func (*BlobDigest) Descriptor deprecated

func (*BlobDigest) Descriptor() ([]byte, []int)

Deprecated: Use BlobDigest.ProtoReflect.Descriptor instead.

func (*BlobDigest) GetDigest

func (x *BlobDigest) GetDigest() []byte

func (*BlobDigest) GetSchedulerToken

func (x *BlobDigest) GetSchedulerToken() string

func (*BlobDigest) GetSize

func (x *BlobDigest) GetSize() uint64

func (*BlobDigest) GetTenantId

func (x *BlobDigest) GetTenantId() string

func (*BlobDigest) ProtoMessage

func (*BlobDigest) ProtoMessage()

func (*BlobDigest) ProtoReflect

func (x *BlobDigest) ProtoReflect() protoreflect.Message

func (*BlobDigest) Reset

func (x *BlobDigest) Reset()

func (*BlobDigest) String

func (x *BlobDigest) String() string

type BlobRef

type BlobRef struct {
	Digest []byte `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"` // BLAKE3-256 of the file's bytes
	Path   string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`     // materialization path inside the source root (validated for traversal at apply time)
	Size   uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`    // size in bytes; advisory, worker re-checks on fetch
	// contains filtered or unexported fields
}

func (*BlobRef) Descriptor deprecated

func (*BlobRef) Descriptor() ([]byte, []int)

Deprecated: Use BlobRef.ProtoReflect.Descriptor instead.

func (*BlobRef) GetDigest

func (x *BlobRef) GetDigest() []byte

func (*BlobRef) GetPath

func (x *BlobRef) GetPath() string

func (*BlobRef) GetSize

func (x *BlobRef) GetSize() uint64

func (*BlobRef) ProtoMessage

func (*BlobRef) ProtoMessage()

func (*BlobRef) ProtoReflect

func (x *BlobRef) ProtoReflect() protoreflect.Message

func (*BlobRef) Reset

func (x *BlobRef) Reset()

func (*BlobRef) String

func (x *BlobRef) String() string

type CasDescriptor

type CasDescriptor struct {
	ManifestDigest []byte     `protobuf:"bytes,1,opt,name=manifest_digest,json=manifestDigest,proto3" json:"manifest_digest,omitempty"` // BLAKE3-256 of the path-sorted (path, blob.digest) list
	Blobs          []*BlobRef `protobuf:"bytes,2,rep,name=blobs,proto3" json:"blobs,omitempty"`
	EntryPath      string     `protobuf:"bytes,3,opt,name=entry_path,json=entryPath,proto3" json:"entry_path,omitempty"` // which blob is the translation-unit root
	// contains filtered or unexported fields
}

CasDescriptor names the source-closure for a CAS-mode compile. The worker re-verifies manifest_digest against the (path, blob.digest) pairs in blobs, refuses on mismatch, then materializes each blob inside the VM at its Path before invoking the compiler against entry_path. See docs/plan/cas.md for the trust model (client never writes to S3; worker re-hashes everything on receipt) and the upload protocol (FindMissingBlobs + UploadBlobs on WorkerService).

func (*CasDescriptor) Descriptor deprecated

func (*CasDescriptor) Descriptor() ([]byte, []int)

Deprecated: Use CasDescriptor.ProtoReflect.Descriptor instead.

func (*CasDescriptor) GetBlobs

func (x *CasDescriptor) GetBlobs() []*BlobRef

func (*CasDescriptor) GetEntryPath

func (x *CasDescriptor) GetEntryPath() string

func (*CasDescriptor) GetManifestDigest

func (x *CasDescriptor) GetManifestDigest() []byte

func (*CasDescriptor) ProtoMessage

func (*CasDescriptor) ProtoMessage()

func (*CasDescriptor) ProtoReflect

func (x *CasDescriptor) ProtoReflect() protoreflect.Message

func (*CasDescriptor) Reset

func (x *CasDescriptor) Reset()

func (*CasDescriptor) String

func (x *CasDescriptor) String() string

type CompileProbe

type CompileProbe struct {
	ManifestDigest []byte   `protobuf:"bytes,1,opt,name=manifest_digest,json=manifestDigest,proto3" json:"manifest_digest,omitempty"`
	Args           []string `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"` // worker derives flag-key from these
	TenantId       string   `protobuf:"bytes,3,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	ImageDigest    string   `protobuf:"bytes,4,opt,name=image_digest,json=imageDigest,proto3" json:"image_digest,omitempty"`
	SchedulerToken string   `protobuf:"bytes,5,opt,name=scheduler_token,json=schedulerToken,proto3" json:"scheduler_token,omitempty"`
	// contains filtered or unexported fields
}

func (*CompileProbe) Descriptor deprecated

func (*CompileProbe) Descriptor() ([]byte, []int)

Deprecated: Use CompileProbe.ProtoReflect.Descriptor instead.

func (*CompileProbe) GetArgs

func (x *CompileProbe) GetArgs() []string

func (*CompileProbe) GetImageDigest

func (x *CompileProbe) GetImageDigest() string

func (*CompileProbe) GetManifestDigest

func (x *CompileProbe) GetManifestDigest() []byte

func (*CompileProbe) GetSchedulerToken

func (x *CompileProbe) GetSchedulerToken() string

func (*CompileProbe) GetTenantId

func (x *CompileProbe) GetTenantId() string

func (*CompileProbe) ProtoMessage

func (*CompileProbe) ProtoMessage()

func (*CompileProbe) ProtoReflect

func (x *CompileProbe) ProtoReflect() protoreflect.Message

func (*CompileProbe) Reset

func (x *CompileProbe) Reset()

func (*CompileProbe) String

func (x *CompileProbe) String() string

type CompileRequest

type CompileRequest struct {
	Cwd  string   `protobuf:"bytes,1,opt,name=cwd,proto3" json:"cwd,omitempty"`
	Args []string `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"`
	// For remote compilation only
	Descriptor_ *RemoteDescriptor `protobuf:"bytes,3,opt,name=descriptor,proto3,oneof" json:"descriptor,omitempty"`
	// contains filtered or unexported fields
}

func (*CompileRequest) Descriptor deprecated

func (*CompileRequest) Descriptor() ([]byte, []int)

Deprecated: Use CompileRequest.ProtoReflect.Descriptor instead.

func (*CompileRequest) GetArgs

func (x *CompileRequest) GetArgs() []string

func (*CompileRequest) GetCwd

func (x *CompileRequest) GetCwd() string

func (*CompileRequest) GetDescriptor_

func (x *CompileRequest) GetDescriptor_() *RemoteDescriptor

func (*CompileRequest) ProtoMessage

func (*CompileRequest) ProtoMessage()

func (*CompileRequest) ProtoReflect

func (x *CompileRequest) ProtoReflect() protoreflect.Message

func (*CompileRequest) Reset

func (x *CompileRequest) Reset()

func (*CompileRequest) String

func (x *CompileRequest) String() string

type CompileResponse

type CompileResponse struct {
	ExitCode int32  `protobuf:"varint,1,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
	Stdout   []byte `protobuf:"bytes,2,opt,name=stdout,proto3" json:"stdout,omitempty"`
	Stderr   []byte `protobuf:"bytes,3,opt,name=stderr,proto3" json:"stderr,omitempty"`
	// For remote compilation only
	OutputArtifact []byte       `protobuf:"bytes,4,opt,name=output_artifact,json=outputArtifact,proto3,oneof" json:"output_artifact,omitempty"`
	CacheKey       *string      `protobuf:"bytes,5,opt,name=cache_key,json=cacheKey,proto3,oneof" json:"cache_key,omitempty"`
	Audit          *AuditRecord `protobuf:"bytes,6,opt,name=audit,proto3,oneof" json:"audit,omitempty"`
	// Side-effect output files the compile produced besides the primary
	// `-o` artifact — typically `.d` files written by `-Wp,-MMD,<path>`
	// / `-MF <path>` for the Make-style dep tracking the kernel build
	// depends on for incremental builds. Keys are paths relative to
	// the per-RPC output staging dir (`/out` in-container); the client
	// writes each back to the corresponding path under its `inv.Cwd`.
	//
	// Populated for CAS-mode dispatches whether the response was a
	// fresh compile or a cache hit — the CompileCache stores extras
	// alongside the primary artifact (as a single `extras` blob,
	// JSON-encoded) so warm hits replay the same .d files cold
	// compiles produced. Without that, deleting a .d on disk would
	// leave `make` re-firing the compile rule forever on cache-hit
	// responses that returned the .o but no .d.
	ExtraOutputs map[string][]byte `` /* 171-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*CompileResponse) Descriptor deprecated

func (*CompileResponse) Descriptor() ([]byte, []int)

Deprecated: Use CompileResponse.ProtoReflect.Descriptor instead.

func (*CompileResponse) GetAudit

func (x *CompileResponse) GetAudit() *AuditRecord

func (*CompileResponse) GetCacheKey

func (x *CompileResponse) GetCacheKey() string

func (*CompileResponse) GetExitCode

func (x *CompileResponse) GetExitCode() int32

func (*CompileResponse) GetExtraOutputs

func (x *CompileResponse) GetExtraOutputs() map[string][]byte

func (*CompileResponse) GetOutputArtifact

func (x *CompileResponse) GetOutputArtifact() []byte

func (*CompileResponse) GetStderr

func (x *CompileResponse) GetStderr() []byte

func (*CompileResponse) GetStdout

func (x *CompileResponse) GetStdout() []byte

func (*CompileResponse) ProtoMessage

func (*CompileResponse) ProtoMessage()

func (*CompileResponse) ProtoReflect

func (x *CompileResponse) ProtoReflect() protoreflect.Message

func (*CompileResponse) Reset

func (x *CompileResponse) Reset()

func (*CompileResponse) String

func (x *CompileResponse) String() string

type GetTenantIdPRequest

type GetTenantIdPRequest struct {
	TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	// contains filtered or unexported fields
}

func (*GetTenantIdPRequest) Descriptor deprecated

func (*GetTenantIdPRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetTenantIdPRequest.ProtoReflect.Descriptor instead.

func (*GetTenantIdPRequest) GetTenantId

func (x *GetTenantIdPRequest) GetTenantId() string

func (*GetTenantIdPRequest) ProtoMessage

func (*GetTenantIdPRequest) ProtoMessage()

func (*GetTenantIdPRequest) ProtoReflect

func (x *GetTenantIdPRequest) ProtoReflect() protoreflect.Message

func (*GetTenantIdPRequest) Reset

func (x *GetTenantIdPRequest) Reset()

func (*GetTenantIdPRequest) String

func (x *GetTenantIdPRequest) String() string

type GetTenantIdPResponse

type GetTenantIdPResponse struct {
	Issuer   string `protobuf:"bytes,1,opt,name=issuer,proto3" json:"issuer,omitempty"`
	TokenUrl string `protobuf:"bytes,2,opt,name=token_url,json=tokenUrl,proto3" json:"token_url,omitempty"`
	Audience string `protobuf:"bytes,3,opt,name=audience,proto3" json:"audience,omitempty"`
	// OAuth client_id + scope for this tenant. Both live on the
	// scheduler so ops can rotate them without re-flashing every
	// client. Empty fields are omitted from the password-grant POST.
	ClientId string `protobuf:"bytes,4,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	Scope    string `protobuf:"bytes,5,opt,name=scope,proto3" json:"scope,omitempty"`
	// contains filtered or unexported fields
}

func (*GetTenantIdPResponse) Descriptor deprecated

func (*GetTenantIdPResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetTenantIdPResponse.ProtoReflect.Descriptor instead.

func (*GetTenantIdPResponse) GetAudience

func (x *GetTenantIdPResponse) GetAudience() string

func (*GetTenantIdPResponse) GetClientId

func (x *GetTenantIdPResponse) GetClientId() string

func (*GetTenantIdPResponse) GetIssuer

func (x *GetTenantIdPResponse) GetIssuer() string

func (*GetTenantIdPResponse) GetScope

func (x *GetTenantIdPResponse) GetScope() string

func (*GetTenantIdPResponse) GetTokenUrl

func (x *GetTenantIdPResponse) GetTokenUrl() string

func (*GetTenantIdPResponse) ProtoMessage

func (*GetTenantIdPResponse) ProtoMessage()

func (*GetTenantIdPResponse) ProtoReflect

func (x *GetTenantIdPResponse) ProtoReflect() protoreflect.Message

func (*GetTenantIdPResponse) Reset

func (x *GetTenantIdPResponse) Reset()

func (*GetTenantIdPResponse) String

func (x *GetTenantIdPResponse) String() string

type HeartbeatResponse

type HeartbeatResponse struct {
	// contains filtered or unexported fields
}

func (*HeartbeatResponse) Descriptor deprecated

func (*HeartbeatResponse) Descriptor() ([]byte, []int)

Deprecated: Use HeartbeatResponse.ProtoReflect.Descriptor instead.

func (*HeartbeatResponse) ProtoMessage

func (*HeartbeatResponse) ProtoMessage()

func (*HeartbeatResponse) ProtoReflect

func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message

func (*HeartbeatResponse) Reset

func (x *HeartbeatResponse) Reset()

func (*HeartbeatResponse) String

func (x *HeartbeatResponse) String() string

type PreprocessedDescriptor

type PreprocessedDescriptor struct {
	PreprocessedSource []byte `protobuf:"bytes,1,opt,name=preprocessed_source,json=preprocessedSource,proto3" json:"preprocessed_source,omitempty"`
	// contains filtered or unexported fields
}

func (*PreprocessedDescriptor) Descriptor deprecated

func (*PreprocessedDescriptor) Descriptor() ([]byte, []int)

Deprecated: Use PreprocessedDescriptor.ProtoReflect.Descriptor instead.

func (*PreprocessedDescriptor) GetPreprocessedSource

func (x *PreprocessedDescriptor) GetPreprocessedSource() []byte

func (*PreprocessedDescriptor) ProtoMessage

func (*PreprocessedDescriptor) ProtoMessage()

func (*PreprocessedDescriptor) ProtoReflect

func (x *PreprocessedDescriptor) ProtoReflect() protoreflect.Message

func (*PreprocessedDescriptor) Reset

func (x *PreprocessedDescriptor) Reset()

func (*PreprocessedDescriptor) String

func (x *PreprocessedDescriptor) String() string

type ProbeMiss

type ProbeMiss struct {
	// contains filtered or unexported fields
}

ProbeMiss carries no payload today; defined as a typed empty message so future fields (e.g. "missing blobs hint" if we ever fold FindMissingBlobs into the probe) don't break wire compatibility.

func (*ProbeMiss) Descriptor deprecated

func (*ProbeMiss) Descriptor() ([]byte, []int)

Deprecated: Use ProbeMiss.ProtoReflect.Descriptor instead.

func (*ProbeMiss) ProtoMessage

func (*ProbeMiss) ProtoMessage()

func (*ProbeMiss) ProtoReflect

func (x *ProbeMiss) ProtoReflect() protoreflect.Message

func (*ProbeMiss) Reset

func (x *ProbeMiss) Reset()

func (*ProbeMiss) String

func (x *ProbeMiss) String() string

type ProbeResponse

type ProbeResponse struct {

	// Types that are valid to be assigned to Result:
	//
	//	*ProbeResponse_Hit
	//	*ProbeResponse_Miss
	Result isProbeResponse_Result `protobuf_oneof:"result"`
	// contains filtered or unexported fields
}

func (*ProbeResponse) Descriptor deprecated

func (*ProbeResponse) Descriptor() ([]byte, []int)

Deprecated: Use ProbeResponse.ProtoReflect.Descriptor instead.

func (*ProbeResponse) GetHit

func (x *ProbeResponse) GetHit() *CompileResponse

func (*ProbeResponse) GetMiss

func (x *ProbeResponse) GetMiss() *ProbeMiss

func (*ProbeResponse) GetResult

func (x *ProbeResponse) GetResult() isProbeResponse_Result

func (*ProbeResponse) ProtoMessage

func (*ProbeResponse) ProtoMessage()

func (*ProbeResponse) ProtoReflect

func (x *ProbeResponse) ProtoReflect() protoreflect.Message

func (*ProbeResponse) Reset

func (x *ProbeResponse) Reset()

func (*ProbeResponse) String

func (x *ProbeResponse) String() string

type ProbeResponse_Hit

type ProbeResponse_Hit struct {
	Hit *CompileResponse `protobuf:"bytes,1,opt,name=hit,proto3,oneof"` // cache hit: full result, client is done
}

type ProbeResponse_Miss

type ProbeResponse_Miss struct {
	Miss *ProbeMiss `protobuf:"bytes,2,opt,name=miss,proto3,oneof"` // cache miss: client proceeds to upload dance
}

type RegisterWorkerRequest

type RegisterWorkerRequest struct {
	SessionToken    string      `protobuf:"bytes,1,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
	WorkerId        string      `protobuf:"bytes,2,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"`
	PublicAddr      string      `protobuf:"bytes,3,opt,name=public_addr,json=publicAddr,proto3" json:"public_addr,omitempty"`
	ImageDigests    []string    `protobuf:"bytes,4,rep,name=image_digests,json=imageDigests,proto3" json:"image_digests,omitempty"`
	AvailableVcpus  int32       `protobuf:"varint,5,opt,name=available_vcpus,json=availableVcpus,proto3" json:"available_vcpus,omitempty"`
	CurrentLoad     int32       `protobuf:"varint,6,opt,name=current_load,json=currentLoad,proto3" json:"current_load,omitempty"`
	Runtime         RuntimeType `protobuf:"varint,7,opt,name=runtime,proto3,enum=protocol.RuntimeType" json:"runtime,omitempty"`
	CertFingerprint []byte      `protobuf:"bytes,8,opt,name=cert_fingerprint,json=certFingerprint,proto3" json:"cert_fingerprint,omitempty"`
	// contains filtered or unexported fields
}

func (*RegisterWorkerRequest) Descriptor deprecated

func (*RegisterWorkerRequest) Descriptor() ([]byte, []int)

Deprecated: Use RegisterWorkerRequest.ProtoReflect.Descriptor instead.

func (*RegisterWorkerRequest) GetAvailableVcpus

func (x *RegisterWorkerRequest) GetAvailableVcpus() int32

func (*RegisterWorkerRequest) GetCertFingerprint

func (x *RegisterWorkerRequest) GetCertFingerprint() []byte

func (*RegisterWorkerRequest) GetCurrentLoad

func (x *RegisterWorkerRequest) GetCurrentLoad() int32

func (*RegisterWorkerRequest) GetImageDigests

func (x *RegisterWorkerRequest) GetImageDigests() []string

func (*RegisterWorkerRequest) GetPublicAddr

func (x *RegisterWorkerRequest) GetPublicAddr() string

func (*RegisterWorkerRequest) GetRuntime

func (x *RegisterWorkerRequest) GetRuntime() RuntimeType

func (*RegisterWorkerRequest) GetSessionToken

func (x *RegisterWorkerRequest) GetSessionToken() string

func (*RegisterWorkerRequest) GetWorkerId

func (x *RegisterWorkerRequest) GetWorkerId() string

func (*RegisterWorkerRequest) ProtoMessage

func (*RegisterWorkerRequest) ProtoMessage()

func (*RegisterWorkerRequest) ProtoReflect

func (x *RegisterWorkerRequest) ProtoReflect() protoreflect.Message

func (*RegisterWorkerRequest) Reset

func (x *RegisterWorkerRequest) Reset()

func (*RegisterWorkerRequest) String

func (x *RegisterWorkerRequest) String() string

type RegisterWorkerResponse

type RegisterWorkerResponse struct {
	Success   bool   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	ErrorCode uint32 `protobuf:"varint,2,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"`
	// contains filtered or unexported fields
}

func (*RegisterWorkerResponse) Descriptor deprecated

func (*RegisterWorkerResponse) Descriptor() ([]byte, []int)

Deprecated: Use RegisterWorkerResponse.ProtoReflect.Descriptor instead.

func (*RegisterWorkerResponse) GetErrorCode

func (x *RegisterWorkerResponse) GetErrorCode() uint32

func (*RegisterWorkerResponse) GetSuccess

func (x *RegisterWorkerResponse) GetSuccess() bool

func (*RegisterWorkerResponse) ProtoMessage

func (*RegisterWorkerResponse) ProtoMessage()

func (*RegisterWorkerResponse) ProtoReflect

func (x *RegisterWorkerResponse) ProtoReflect() protoreflect.Message

func (*RegisterWorkerResponse) Reset

func (x *RegisterWorkerResponse) Reset()

func (*RegisterWorkerResponse) String

func (x *RegisterWorkerResponse) String() string

type RemoteDescriptor

type RemoteDescriptor struct {
	TenantId       string     `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	ImageDigest    string     `protobuf:"bytes,2,opt,name=image_digest,json=imageDigest,proto3" json:"image_digest,omitempty"`
	SchedulerToken string     `protobuf:"bytes,3,opt,name=scheduler_token,json=schedulerToken,proto3" json:"scheduler_token,omitempty"`
	SourceMode     SourceMode `protobuf:"varint,4,opt,name=source_mode,json=sourceMode,proto3,enum=protocol.SourceMode" json:"source_mode,omitempty"`
	// Types that are valid to be assigned to SourceSettings:
	//
	//	*RemoteDescriptor_Preprocessed
	//	*RemoteDescriptor_Cas
	SourceSettings isRemoteDescriptor_SourceSettings `protobuf_oneof:"source_settings"`
	// Full OCI image reference, e.g. "ghcr.io/foo/toolchain@sha256:abc..."
	// or "registry.example.com/team/toolchain:v1.2.3". Used by the worker
	// to pull the image if it's not already in the local snapshotter.
	// image_digest remains the canonical identity for routing, cache keys,
	// and audit; image_ref is the pullable address.
	ImageRef string `protobuf:"bytes,8,opt,name=image_ref,json=imageRef,proto3" json:"image_ref,omitempty"`
	// contains filtered or unexported fields
}

func (*RemoteDescriptor) Descriptor deprecated

func (*RemoteDescriptor) Descriptor() ([]byte, []int)

Deprecated: Use RemoteDescriptor.ProtoReflect.Descriptor instead.

func (*RemoteDescriptor) GetCas

func (x *RemoteDescriptor) GetCas() *CasDescriptor

func (*RemoteDescriptor) GetImageDigest

func (x *RemoteDescriptor) GetImageDigest() string

func (*RemoteDescriptor) GetImageRef

func (x *RemoteDescriptor) GetImageRef() string

func (*RemoteDescriptor) GetPreprocessed

func (x *RemoteDescriptor) GetPreprocessed() *PreprocessedDescriptor

func (*RemoteDescriptor) GetSchedulerToken

func (x *RemoteDescriptor) GetSchedulerToken() string

func (*RemoteDescriptor) GetSourceMode

func (x *RemoteDescriptor) GetSourceMode() SourceMode

func (*RemoteDescriptor) GetSourceSettings

func (x *RemoteDescriptor) GetSourceSettings() isRemoteDescriptor_SourceSettings

func (*RemoteDescriptor) GetTenantId

func (x *RemoteDescriptor) GetTenantId() string

func (*RemoteDescriptor) ProtoMessage

func (*RemoteDescriptor) ProtoMessage()

func (*RemoteDescriptor) ProtoReflect

func (x *RemoteDescriptor) ProtoReflect() protoreflect.Message

func (*RemoteDescriptor) Reset

func (x *RemoteDescriptor) Reset()

func (*RemoteDescriptor) String

func (x *RemoteDescriptor) String() string

type RemoteDescriptor_Cas

type RemoteDescriptor_Cas struct {
	Cas *CasDescriptor `protobuf:"bytes,7,opt,name=cas,proto3,oneof"`
}

type RemoteDescriptor_Preprocessed

type RemoteDescriptor_Preprocessed struct {
	Preprocessed *PreprocessedDescriptor `protobuf:"bytes,6,opt,name=preprocessed,proto3,oneof"`
}

type RouteRequest

type RouteRequest struct {
	SessionToken string `protobuf:"bytes,1,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
	TenantId     string `protobuf:"bytes,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	ImageDigest  string `protobuf:"bytes,3,opt,name=image_digest,json=imageDigest,proto3" json:"image_digest,omitempty"`
	// contains filtered or unexported fields
}

func (*RouteRequest) Descriptor deprecated

func (*RouteRequest) Descriptor() ([]byte, []int)

Deprecated: Use RouteRequest.ProtoReflect.Descriptor instead.

func (*RouteRequest) GetImageDigest

func (x *RouteRequest) GetImageDigest() string

func (*RouteRequest) GetSessionToken

func (x *RouteRequest) GetSessionToken() string

func (*RouteRequest) GetTenantId

func (x *RouteRequest) GetTenantId() string

func (*RouteRequest) ProtoMessage

func (*RouteRequest) ProtoMessage()

func (*RouteRequest) ProtoReflect

func (x *RouteRequest) ProtoReflect() protoreflect.Message

func (*RouteRequest) Reset

func (x *RouteRequest) Reset()

func (*RouteRequest) String

func (x *RouteRequest) String() string

type RouteResponse

type RouteResponse struct {
	WorkerAddress   string `protobuf:"bytes,1,opt,name=worker_address,json=workerAddress,proto3" json:"worker_address,omitempty"`
	Token           string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`                                            // JWT signed by scheduler; worker verifies signature
	CertFingerprint []byte `protobuf:"bytes,3,opt,name=cert_fingerprint,json=certFingerprint,proto3" json:"cert_fingerprint,omitempty"` // SHA-256 of worker's TLS cert, for client-side pinning
	// contains filtered or unexported fields
}

func (*RouteResponse) Descriptor deprecated

func (*RouteResponse) Descriptor() ([]byte, []int)

Deprecated: Use RouteResponse.ProtoReflect.Descriptor instead.

func (*RouteResponse) GetCertFingerprint

func (x *RouteResponse) GetCertFingerprint() []byte

func (*RouteResponse) GetToken

func (x *RouteResponse) GetToken() string

func (*RouteResponse) GetWorkerAddress

func (x *RouteResponse) GetWorkerAddress() string

func (*RouteResponse) ProtoMessage

func (*RouteResponse) ProtoMessage()

func (*RouteResponse) ProtoReflect

func (x *RouteResponse) ProtoReflect() protoreflect.Message

func (*RouteResponse) Reset

func (x *RouteResponse) Reset()

func (*RouteResponse) String

func (x *RouteResponse) String() string

type RuntimeType

type RuntimeType int32
const (
	RuntimeType_FIRECRACKER RuntimeType = 0
	RuntimeType_HYPERV      RuntimeType = 1
	// DANGEROUS runs every compile as a child of the worker process with
	// no isolation at all — selected by the "really_really_dangerous"
	// runtime handler. Development and CI/test only.
	RuntimeType_DANGEROUS RuntimeType = 2
)

func (RuntimeType) Descriptor

func (RuntimeType) Enum

func (x RuntimeType) Enum() *RuntimeType

func (RuntimeType) EnumDescriptor deprecated

func (RuntimeType) EnumDescriptor() ([]byte, []int)

Deprecated: Use RuntimeType.Descriptor instead.

func (RuntimeType) Number

func (x RuntimeType) Number() protoreflect.EnumNumber

func (RuntimeType) String

func (x RuntimeType) String() string

func (RuntimeType) Type

type SchedulerServiceClient

type SchedulerServiceClient interface {
	// GetTenantIdP is unauthenticated by design: the client only knows
	// its tenant_id + scheduler URL from local config, and needs to
	// discover where to OAuth before it can produce a JWT. See
	// docs/plan/multi-tenant.md "Identity discovery (client side)".
	GetTenantIdP(ctx context.Context, in *GetTenantIdPRequest, opts ...grpc.CallOption) (*GetTenantIdPResponse, error)
	Authenticate(ctx context.Context, in *AuthRequest, opts ...grpc.CallOption) (*AuthResponse, error)
	Route(ctx context.Context, in *RouteRequest, opts ...grpc.CallOption) (*RouteResponse, error)
	RegisterWorker(ctx context.Context, in *RegisterWorkerRequest, opts ...grpc.CallOption) (*RegisterWorkerResponse, error)
	Heartbeat(ctx context.Context, in *WorkerHeartbeat, opts ...grpc.CallOption) (*HeartbeatResponse, error)
}

SchedulerServiceClient is the client API for SchedulerService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type SchedulerServiceServer

type SchedulerServiceServer interface {
	// GetTenantIdP is unauthenticated by design: the client only knows
	// its tenant_id + scheduler URL from local config, and needs to
	// discover where to OAuth before it can produce a JWT. See
	// docs/plan/multi-tenant.md "Identity discovery (client side)".
	GetTenantIdP(context.Context, *GetTenantIdPRequest) (*GetTenantIdPResponse, error)
	Authenticate(context.Context, *AuthRequest) (*AuthResponse, error)
	Route(context.Context, *RouteRequest) (*RouteResponse, error)
	RegisterWorker(context.Context, *RegisterWorkerRequest) (*RegisterWorkerResponse, error)
	Heartbeat(context.Context, *WorkerHeartbeat) (*HeartbeatResponse, error)
	// contains filtered or unexported methods
}

SchedulerServiceServer is the server API for SchedulerService service. All implementations must embed UnimplementedSchedulerServiceServer for forward compatibility.

type SourceMode

type SourceMode int32
const (
	// Proto3 requires a zero-valued enumerator; UNSPECIFIED catches
	// unset/legacy fields so they don't collide with a real mode.
	SourceMode_SOURCE_MODE_UNSPECIFIED SourceMode = 0
	// CAS-mode source staging (plan §4.5, docs/plan/cas.md). Client ships a
	// CasDescriptor referencing content-addressed blobs that the worker
	// materializes inside the VM. Re-opened from the originally-reserved
	// tag 1; the prior `reserved 1` annotation is removed now that the
	// intended semantics match what was reserved (no risk of decoding
	// old PREPROCESSED bytes as CAS).
	SourceMode_CAS          SourceMode = 1
	SourceMode_PREPROCESSED SourceMode = 2 // client ships preprocessed bytes
)

func (SourceMode) Descriptor

func (SourceMode) Descriptor() protoreflect.EnumDescriptor

func (SourceMode) Enum

func (x SourceMode) Enum() *SourceMode

func (SourceMode) EnumDescriptor deprecated

func (SourceMode) EnumDescriptor() ([]byte, []int)

Deprecated: Use SourceMode.Descriptor instead.

func (SourceMode) Number

func (x SourceMode) Number() protoreflect.EnumNumber

func (SourceMode) String

func (x SourceMode) String() string

func (SourceMode) Type

type UnimplementedSchedulerServiceServer

type UnimplementedSchedulerServiceServer struct{}

UnimplementedSchedulerServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedSchedulerServiceServer) Authenticate

func (UnimplementedSchedulerServiceServer) GetTenantIdP

func (UnimplementedSchedulerServiceServer) Heartbeat

func (UnimplementedSchedulerServiceServer) RegisterWorker

func (UnimplementedSchedulerServiceServer) Route

type UnimplementedWorkerServiceServer

type UnimplementedWorkerServiceServer struct{}

UnimplementedWorkerServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedWorkerServiceServer) Compile

func (UnimplementedWorkerServiceServer) FindMissingBlobs

func (UnimplementedWorkerServiceServer) ProbeCompileCache

func (UnimplementedWorkerServiceServer) UploadBlobs

type UnsafeSchedulerServiceServer

type UnsafeSchedulerServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeSchedulerServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to SchedulerServiceServer will result in compilation errors.

type UnsafeWorkerServiceServer

type UnsafeWorkerServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeWorkerServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to WorkerServiceServer will result in compilation errors.

type UploadResult

type UploadResult struct {
	BlobsReceived uint64 `protobuf:"varint,1,opt,name=blobs_received,json=blobsReceived,proto3" json:"blobs_received,omitempty"`
	BytesReceived uint64 `protobuf:"varint,2,opt,name=bytes_received,json=bytesReceived,proto3" json:"bytes_received,omitempty"`
	// Digests the worker refused to commit — hash mismatch, quota
	// overrun, etc. The client treats these as the upload-failed set
	// and either retries or falls back to local compile. Reasons are
	// intentionally not carried on the wire; logs on the worker
	// capture them.
	RejectedDigests [][]byte `protobuf:"bytes,3,rep,name=rejected_digests,json=rejectedDigests,proto3" json:"rejected_digests,omitempty"`
	// contains filtered or unexported fields
}

func (*UploadResult) Descriptor deprecated

func (*UploadResult) Descriptor() ([]byte, []int)

Deprecated: Use UploadResult.ProtoReflect.Descriptor instead.

func (*UploadResult) GetBlobsReceived

func (x *UploadResult) GetBlobsReceived() uint64

func (*UploadResult) GetBytesReceived

func (x *UploadResult) GetBytesReceived() uint64

func (*UploadResult) GetRejectedDigests

func (x *UploadResult) GetRejectedDigests() [][]byte

func (*UploadResult) ProtoMessage

func (*UploadResult) ProtoMessage()

func (*UploadResult) ProtoReflect

func (x *UploadResult) ProtoReflect() protoreflect.Message

func (*UploadResult) Reset

func (x *UploadResult) Reset()

func (*UploadResult) String

func (x *UploadResult) String() string

type VMState

type VMState int32
const (
	VMState_RUNNING     VMState = 0
	VMState_SNAPSHOTTED VMState = 1
	VMState_BOOTING     VMState = 2
)

func (VMState) Descriptor

func (VMState) Descriptor() protoreflect.EnumDescriptor

func (VMState) Enum

func (x VMState) Enum() *VMState

func (VMState) EnumDescriptor deprecated

func (VMState) EnumDescriptor() ([]byte, []int)

Deprecated: Use VMState.Descriptor instead.

func (VMState) Number

func (x VMState) Number() protoreflect.EnumNumber

func (VMState) String

func (x VMState) String() string

func (VMState) Type

func (VMState) Type() protoreflect.EnumType

type WorkerHeartbeat

type WorkerHeartbeat struct {
	SessionToken   string      `protobuf:"bytes,1,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
	WorkerId       string      `protobuf:"bytes,2,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"`
	AvailableVcpus int32       `protobuf:"varint,3,opt,name=available_vcpus,json=availableVcpus,proto3" json:"available_vcpus,omitempty"`
	CurrentLoad    int32       `protobuf:"varint,4,opt,name=current_load,json=currentLoad,proto3" json:"current_load,omitempty"`
	ActiveVms      []*ActiveVM `protobuf:"bytes,5,rep,name=active_vms,json=activeVms,proto3" json:"active_vms,omitempty"`
	// contains filtered or unexported fields
}

func (*WorkerHeartbeat) Descriptor deprecated

func (*WorkerHeartbeat) Descriptor() ([]byte, []int)

Deprecated: Use WorkerHeartbeat.ProtoReflect.Descriptor instead.

func (*WorkerHeartbeat) GetActiveVms

func (x *WorkerHeartbeat) GetActiveVms() []*ActiveVM

func (*WorkerHeartbeat) GetAvailableVcpus

func (x *WorkerHeartbeat) GetAvailableVcpus() int32

func (*WorkerHeartbeat) GetCurrentLoad

func (x *WorkerHeartbeat) GetCurrentLoad() int32

func (*WorkerHeartbeat) GetSessionToken

func (x *WorkerHeartbeat) GetSessionToken() string

func (*WorkerHeartbeat) GetWorkerId

func (x *WorkerHeartbeat) GetWorkerId() string

func (*WorkerHeartbeat) ProtoMessage

func (*WorkerHeartbeat) ProtoMessage()

func (*WorkerHeartbeat) ProtoReflect

func (x *WorkerHeartbeat) ProtoReflect() protoreflect.Message

func (*WorkerHeartbeat) Reset

func (x *WorkerHeartbeat) Reset()

func (*WorkerHeartbeat) String

func (x *WorkerHeartbeat) String() string

type WorkerServiceClient

type WorkerServiceClient interface {
	Compile(ctx context.Context, in *CompileRequest, opts ...grpc.CallOption) (*CompileResponse, error)
	// ProbeCompileCache is the cache short-circuit for CAS mode. Client
	// sends just the manifest digest + args + image; worker computes
	// the compile cache key and checks the compile cache (local +
	// S3-backed). On hit, the client gets the artifact back and skips
	// FindMissingBlobs / UploadBlobs entirely — typical for incremental
	// builds where most TUs are cached. On miss, client proceeds with
	// the upload dance. Mirrors Bazel's ActionCache.GetActionResult.
	ProbeCompileCache(ctx context.Context, in *CompileProbe, opts ...grpc.CallOption) (*ProbeResponse, error)
	// FindMissingBlobs is the client's "what do I need to upload?"
	// probe in CAS mode. Client streams the digests it intends to
	// ship; worker streams back the subset it isn't already storing
	// locally. Single-layer lookup (sourceStore.Has) — source blobs
	// are worker-local-ephemeral, so there's nothing else to probe.
	// Bidi-streaming so the client can pipeline upload decisions
	// without waiting for the full probe set.
	FindMissingBlobs(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[BlobDigest, BlobDigest], error)
	// UploadBlobs streams missing blobs to the worker. The worker
	// opens a BLAKE3 hasher per blob, tees incoming bytes to a temp
	// file in the local source store, and on header-boundary verifies
	// the recomputed digest matches the client-claimed one. Match →
	// atomic-rename into the local store keyed by recomputed digest.
	// Mismatch / quota / bad path → reject and report in
	// UploadResult.rejected_digests. Source blobs are worker-local-
	// ephemeral (no S3 write-through); the client is the source of
	// truth and re-uploads on cache miss.
	UploadBlobs(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[BlobChunk, UploadResult], error)
}

WorkerServiceClient is the client API for WorkerService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type WorkerServiceServer

type WorkerServiceServer interface {
	Compile(context.Context, *CompileRequest) (*CompileResponse, error)
	// ProbeCompileCache is the cache short-circuit for CAS mode. Client
	// sends just the manifest digest + args + image; worker computes
	// the compile cache key and checks the compile cache (local +
	// S3-backed). On hit, the client gets the artifact back and skips
	// FindMissingBlobs / UploadBlobs entirely — typical for incremental
	// builds where most TUs are cached. On miss, client proceeds with
	// the upload dance. Mirrors Bazel's ActionCache.GetActionResult.
	ProbeCompileCache(context.Context, *CompileProbe) (*ProbeResponse, error)
	// FindMissingBlobs is the client's "what do I need to upload?"
	// probe in CAS mode. Client streams the digests it intends to
	// ship; worker streams back the subset it isn't already storing
	// locally. Single-layer lookup (sourceStore.Has) — source blobs
	// are worker-local-ephemeral, so there's nothing else to probe.
	// Bidi-streaming so the client can pipeline upload decisions
	// without waiting for the full probe set.
	FindMissingBlobs(grpc.BidiStreamingServer[BlobDigest, BlobDigest]) error
	// UploadBlobs streams missing blobs to the worker. The worker
	// opens a BLAKE3 hasher per blob, tees incoming bytes to a temp
	// file in the local source store, and on header-boundary verifies
	// the recomputed digest matches the client-claimed one. Match →
	// atomic-rename into the local store keyed by recomputed digest.
	// Mismatch / quota / bad path → reject and report in
	// UploadResult.rejected_digests. Source blobs are worker-local-
	// ephemeral (no S3 write-through); the client is the source of
	// truth and re-uploads on cache miss.
	UploadBlobs(grpc.ClientStreamingServer[BlobChunk, UploadResult]) error
	// contains filtered or unexported methods
}

WorkerServiceServer is the server API for WorkerService service. All implementations must embed UnimplementedWorkerServiceServer for forward compatibility.

type WorkerService_FindMissingBlobsClient

type WorkerService_FindMissingBlobsClient = grpc.BidiStreamingClient[BlobDigest, BlobDigest]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type WorkerService_FindMissingBlobsServer

type WorkerService_FindMissingBlobsServer = grpc.BidiStreamingServer[BlobDigest, BlobDigest]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type WorkerService_UploadBlobsClient

type WorkerService_UploadBlobsClient = grpc.ClientStreamingClient[BlobChunk, UploadResult]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type WorkerService_UploadBlobsServer

type WorkerService_UploadBlobsServer = grpc.ClientStreamingServer[BlobChunk, UploadResult]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

Jump to

Keyboard shortcuts

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