Files
LocalAI/core/services/addons/state.go
T
Ettore Di Giacinto 1604a67c1f feat(addons): add the add-on runtime, navigation and first-party add-ons
Add the add-on runtime to LocalAI: manifests, the host operation broker,
admin gating by account role, the add-on UI bundle builder and the SDK
for add-on pages. Move the navigation to Chat, Models, Add-ons and
Settings, with pinned add-ons in the sidebar and an Add-ons drawer.

Ship the first-party add-ons (voice, face, fine-tuning, quantization) as
packages for linux/amd64, linux/arm64 and darwin/arm64. Intel macOS
(darwin/amd64) is enabled in the platform files.

Squashed from the review branch. The tree is unchanged; the pre-squash
history is kept on a local backup branch.

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-20 20:54:43 +00:00

40 lines
1.6 KiB
Go

// SPDX-License-Identifier: MIT
package addons
import "github.com/mudler/LocalAI/core/services/addons/packages"
type Generation struct {
Number uint64
Receipt packages.PackageReceipt
}
type Status struct {
AddonID, Identity, DataDirectory, GrantsPath string
Installed, DesiredEnabled bool
Generation uint64
Generations []Generation
// Observation is deliberately not part of durable intent.
ObservedHealth string `json:"-"`
StartEligible bool `json:"-"`
}
type LifecycleCommand struct {
OperationID, AddonID, Action, SourceID, Version string
// Generation, when not zero, is the generation the caller saw. enable and
// disable are denied as stale when the installed generation differs, and
// nothing is recorded. Zero means the caller made no claim.
Generation uint64
// ExpectedDigest and CandidateDigest pin an explicit upgrade: the digest
// of the package the caller saw installed and the digest of the candidate
// it checked. Both are set or neither is. With them the owner upgrades
// only the same library and channel the add-on came from, re-checks the
// candidate and its compatibility at execution, and refuses a change of
// either digest before it records anything. Without them the command is
// the plain typed upgrade of an earlier release.
ExpectedDigest, CandidateDigest string
}
type OperationStatus struct {
OperationID, AddonID, Phase string
Generation uint64
// RuntimeState is an observation, never a durable execution receipt.
RuntimeState string `json:"runtimeState,omitempty"`
}