Skip to content

[anolisa-cli] Extend install/uninstall to all distributed components (beyond tokenless) #870

Description

@kongche-jbw

Background

Currently anolisa install and anolisa uninstall have end-to-end logic only for the tokenless component. However, the monorepo ships 6 other runtime components under src/ that are already published or planned for distribution:

Component Path Runtime Manifest
agentsight src/agentsight/ manifests/runtime/agentsight.toml
agent-sec-core src/agent-sec-core/ manifests/runtime/agent-sec-core.toml
agent-memory src/agent-memory/ manifests/runtime/agent-memory.toml
cosh (copilot-shell) src/copilot-shell/ manifests/runtime/cosh.toml
os-skills src/os-skills/ manifests/runtime/os-skills.toml
ws-ckpt src/ws-ckpt/ manifests/runtime/ws-ckpt.toml

Goal

Extend the anolisa install <component> and anolisa uninstall <component> commands to support all 6 remaining distributed components with the same level of completeness as tokenless.

Scope

In scope

  • Fresh install flow: artifact download → file extraction → state tracking → central log
  • Uninstall flow: state lookup → owned file deletion → state cleanup → central log
  • Support both --install-mode user and --install-mode system where applicable
  • --dry-run mode for all new components
  • JSON output (--json) for all new components
  • Unit tests covering install/uninstall for each component

Out of scope (future work)

  • Takeover of existing installations (adopt already-installed components)
  • Upgrade/update logic (anolisa update <component>)
  • Adapter install/uninstall for these components (covered by separate issues)
  • Service enable/disable (systemd unit activation)

Acceptance Criteria

  • anolisa install <component> works for all 6 components when the distribution index has a valid entry
  • anolisa uninstall <component> cleanly removes all ANOLISA-owned files and state
  • installed.toml accurately reflects the install/uninstall operations
  • Central log records each operation with correct LogKind and Severity
  • --dry-run prints the plan without executing
  • cargo test passes with new test cases for each component
  • All code, comments, and documentation in English

Metadata

Metadata

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions