Documentation
¶
Index ¶
- func BuildPluginConfigsAndDefs(plugins []plugin.Plugin) (map[string]*model.PluginConfig, map[string]plugin.Plugin)
- func EnsureGitRepoOrExit()
- func EnsureProjectInitialized(tikiSkillContent, dokiSkillContent string) (proceed bool)
- func InitBoardConfig() *model.BoardConfig
- func InitHeaderAndLayoutModels() (*model.HeaderConfig, *model.LayoutModel)
- func InitHeaderBaseStats(headerConfig *model.HeaderConfig, tikiStore *tikistore.TikiStore)
- func InitLogging(cfg *config.Config) slog.Level
- func InitPluginActionRegistry(plugins []plugin.Plugin)
- func InitStores() (*tikistore.TikiStore, store.Store)
- func LoadConfigOrExit() *config.Config
- func LoadPlugins() []plugin.Plugin
- type BootstrapResult
- type Controllers
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildPluginConfigsAndDefs ¶
func BuildPluginConfigsAndDefs(plugins []plugin.Plugin) (map[string]*model.PluginConfig, map[string]plugin.Plugin)
BuildPluginConfigsAndDefs builds per-plugin configs and a name->definition map for view/controller wiring.
func EnsureGitRepoOrExit ¶
func EnsureGitRepoOrExit()
EnsureGitRepoOrExit validates that the current directory is a git repository. If not, it prints an error message and exits the program.
func EnsureProjectInitialized ¶
EnsureProjectInitialized ensures the project is properly initialized. It takes the embedded skill content for tiki and doki and returns whether to proceed. If initialization fails, it logs an error and exits.
func InitBoardConfig ¶
func InitBoardConfig() *model.BoardConfig
InitBoardConfig creates and configures the board model from persisted user preferences.
func InitHeaderAndLayoutModels ¶
func InitHeaderAndLayoutModels() (*model.HeaderConfig, *model.LayoutModel)
InitHeaderAndLayoutModels creates the header config and layout model with persisted visibility preferences applied.
func InitHeaderBaseStats ¶
func InitHeaderBaseStats(headerConfig *model.HeaderConfig, tikiStore *tikistore.TikiStore)
InitHeaderBaseStats initializes base header stats that are always visible regardless of view.
func InitLogging ¶
InitLogging sets up application logging with the configured log level. It opens a log file next to the executable (tiki.log) or falls back to stderr. Returns the configured log level.
func InitPluginActionRegistry ¶
InitPluginActionRegistry initializes the controller plugin action registry from loaded plugin activation keys.
func InitStores ¶
InitStores initializes the task stores or terminates the process on failure. Returns the tikiStore and a generic store interface reference to it.
func LoadConfigOrExit ¶
LoadConfigOrExit loads the application configuration. If configuration loading fails, it logs a fatal error and exits.
func LoadPlugins ¶
LoadPlugins loads plugins from disk and returns nil on failure.
Types ¶
type BootstrapResult ¶
type BootstrapResult struct {
Cfg *config.Config
LogLevel slog.Level
TikiStore *tikistore.TikiStore
TaskStore store.Store
BoardConfig *model.BoardConfig
HeaderConfig *model.HeaderConfig
LayoutModel *model.LayoutModel
Plugins []plugin.Plugin
PluginConfigs map[string]*model.PluginConfig
PluginDefs map[string]plugin.Plugin
App *tview.Application
Controllers *Controllers
InputRouter *controller.InputRouter
ViewFactory *view.ViewFactory
HeaderWidget *header.HeaderWidget
RootLayout *view.RootLayout
Context context.Context
CancelFunc context.CancelFunc
TikiSkillContent string
DokiSkillContent string
}
BootstrapResult contains all initialized application components.
func Bootstrap ¶
func Bootstrap(tikiSkillContent, dokiSkillContent string) (*BootstrapResult, error)
Bootstrap orchestrates the complete application initialization sequence. It takes the embedded AI skill content and returns all initialized components.
type Controllers ¶
type Controllers struct {
Board *controller.BoardController
Task *controller.TaskController
Plugins map[string]controller.PluginControllerInterface
}
Controllers holds all application controllers.
func BuildControllers ¶
func BuildControllers( app *tview.Application, taskStore store.Store, boardConfig *model.BoardConfig, plugins []plugin.Plugin, pluginConfigs map[string]*model.PluginConfig, ) *Controllers
BuildControllers constructs navigation/domain/plugin controllers for the application.