bf9395e022
CI / license-header (push) Has been skipped
CI / e2e-dry-run (push) Has been skipped
CI / fast-gate (push) Failing after 0s
Test PR Label Logic / test-pr-labels (push) Failing after 1s
Skill Format Check / check-format (push) Failing after 2s
CI / security (push) Failing after 5s
CI / unit-test (push) Has been skipped
CI / lint (push) Has been skipped
CI / script-test (push) Has been skipped
CI / deterministic-gate (push) Has been skipped
CI / coverage (push) Has been skipped
CI / results (push) Has been cancelled
CI / deadcode (push) Has been cancelled
CI / e2e-live (push) Has been cancelled
27 lines
975 B
Go
27 lines
975 B
Go
// Copyright (c) 2026 Lark Technologies Pte. Ltd.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package platform
|
|
|
|
// Plugin is the single contract a third-party / embedding integrator
|
|
// implements to extend lark-cli. Four methods, every one mandatory.
|
|
//
|
|
// Name must match the grammar ^[a-z0-9][a-z0-9-]*$. The "." character
|
|
// is forbidden so plugin-name + hookName namespacing never produces
|
|
// ambiguous joins.
|
|
//
|
|
// Capabilities must be implemented even when every field is zero. The
|
|
// requirement is deliberate: it keeps FailurePolicy / Restricts in the
|
|
// author's eyeline.
|
|
//
|
|
// Install runs once during the Bootstrap pipeline. The plugin uses the
|
|
// supplied Registrar to register hooks and (optionally) a Rule. Errors
|
|
// returned from Install honour the plugin's Capabilities.FailurePolicy
|
|
// (fail-open warns + skips this plugin; fail-closed aborts the CLI).
|
|
type Plugin interface {
|
|
Name() string
|
|
Version() string
|
|
Capabilities() Capabilities
|
|
Install(r Registrar) error
|
|
}
|