Files
l0ng-ai fd1f465aeb feat(plugins): extension points, capability consent, async runtime and plugin API 1.0
Rework the plugin system per docs/plugin_plan.md (P0–P8):

- Extension-point registry (ide-extension) so new contribution types register
  without touching the kernel; languages, run detectors, providers, views and
  UI contributions go through it.
- Per-plugin capability consent with a risk-graded ledger; process
  capabilities are pinned to resolved binary paths and hashes.
- Async, actor-per-plugin Wasm runtime with lazy activation, cancellation,
  events, long-running tasks and idle reclamation.
- Plugin host moved into ide-host, shared by local and remote projects.
- Distribution: install/package tooling (openidea-plugin bin) and a static
  market index.
- WIT frozen as openidea:plugin@1.0.0; Rust SDK with mock host.
- Ten official validation plugins under plugins/official.
2026-11-04 02:41:46 +08:00

45 lines
1.2 KiB
TOML

id = "openidea.ai-completion"
name = "AI Completion"
version = "0.1.0"
description = "Inline code suggestions (ghost text) from a local model (Ollama) or OpenAI, as you type."
authors = ["OpenIDEA contributors"]
license = "Apache-2.0"
change-notes = "0.1.0 — first release: local (Ollama) and OpenAI backends; the key stays in the system keychain."
engines.openidea = "^1.0"
wasm = "dist/plugin.wasm"
activation = ["on-command:*"]
[capabilities]
required = ["storage"]
# Grant the backends you use; the key is only ever sent to api.openai.com.
optional = ["net:localhost", "net:api.openai.com", "secrets"]
[[contributes.providers]]
kinds = ["inline-completion"]
languages = ["*"]
[[contributes.secrets]]
name = "api-key"
label = "OpenAI API key"
description = "Used only with the OpenAI backend."
[[contributes.commands]]
id = "use-local"
title = "AI Completion: Use Local Model (Ollama)"
category = "AI Completion"
[[contributes.commands]]
id = "use-openai"
title = "AI Completion: Use OpenAI"
category = "AI Completion"
[[contributes.commands]]
id = "toggle"
title = "AI Completion: Enable / Disable"
category = "AI Completion"
[[contributes.commands]]
id = "set-endpoint"
title = "AI Completion: Set Endpoint URL"
category = "AI Completion"