Skip to main content

pluginkit (s-pluginkit)

Кит ПЛАГИНОВ платформы китов: один владелец группы точек входа, общий механизм видов, реестр объявленного, доставка навыков и манифест их состава.

Родился волной 6 (Atlas #2717) выделением из шлюза gateway и из двух китов-контрактов (socialkit, aichatkit).

Зачем

До волны 6 Что было не так
Имя группы skillery.plugins — ДВА независимых литерала (socialkit.registry.PLUGIN_GROUP, adapterkit.registry.PLUGIN_ENTRY_POINT_GROUP) Совпадали только потому, что их правили руками синхронно. Расхождение молчаливое: навык доезжает туда, где его не ищут, — пустой перечень вместо ошибки
Механизм видов дублируется почти дословно у соцсетей и у чатов Разбор, знающий про СОСТАВНОЙ вид (deep_research), и разбор, не знающий, отвечают разными сервисами на одно имя
Манифеста состава нет вовсе Навыки живут ТОЛЬКО ссылками в окружении инструмента, а uv tool install --force сносит окружение целиком. Восстанавливать было не из чего
Механизма команд из точек входа нет Навык приносил умение, но не приносил способа им воспользоваться
Совет печатает только тех, кого позвали Исключённые кандидаты и причины не фигурируют в выводе вовсе — «навык молчит» и «навык не поставлен» неразличимы

Состав

  • pluginkit.groups — PLUGIN_GROUP, COMMAND_GROUP.
  • pluginkit.kinds — capability_id, service_of, identity_methods, method_of, resolve_method, uniformity_problems.
  • pluginkit.registry — чтение реестра объявленного (метаданные, без импорта тел).
  • pluginkit.discovery — поиск пакетов-навыков на диске по их pyproject.toml.
  • pluginkit.delivery — доставка навыков в окружение, добор спутников.
  • pluginkit.manifest — состав на диске + план автодоустановки.
  • pluginkit.commands — команды CLI из точек входа.
  • pluginkit.roster — разбор кандидатов с причинами исключения.

Закон слоёв

pluginkit не импортирует НИ ОДИН другой кит экосистемы (включая corekit): socialkit, aichatkit и adapterkit берут отсюда имя группы и механизм видов, поэтому обратная зависимость завела бы цикл. Единственная внешняя зависимость — packaging (канон имён дистрибутивов, PEP 503/508).

Манифест состава

from pluginkit import manifest
from pluginkit.discovery import discover_plugin_packages

manifest.record(discover_plugin_packages([Path("~/PROJECT/_storage").expanduser()]))
# ... переустановка продукта уносит окружение ...
пакеты, исчезли, беда = manifest.autoheal_plan()

Файл лежит ВНЕ окружения инструмента (%LOCALAPPDATA%/skillery/plugins.json или $XDG_DATA_HOME/skillery/plugins.json); путь переопределяется переменной PLUGINKIT_MANIFEST.

Metadata

Release files for s-pluginkit 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for s-pluginkit 0.1.0
File Size Uploaded
s_pluginkit-0.1.0.tar.gz 77.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for s-pluginkit 0.1.0
File Interpreter ABI Platform
s_pluginkit-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 120.3 kB

Release files / s_pluginkit-0.1.0.tar.gz

Download URL s_pluginkit-0.1.0.tar.gz
Size 77.6 kB
Tags Source
SHA-256 checksum
How to use checksums
8a4afe5c7587c6ab30587dcf75d2fed9006dd32dfb68980d4f3691c712267ffd
BLAKE2b-256 checksum
How to use checksums
0510184d1d010c23644220fc66115754b9c5ba7e393610696079206b9e9b6f2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / s_pluginkit-0.1.0-py3-none-any.whl

Download URL s_pluginkit-0.1.0-py3-none-any.whl
Size 42.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e9e4fafadde1d6e4586531c983de44346dcf12efe3d61ddbb91a6fbe925cd68
BLAKE2b-256 checksum
How to use checksums
0345e4311a91ae1ab67d785f149d5b58841e53cf688cac5a252ecb7bee71304a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page