Dasturchilar uchun
Solution Packs
Kanyman Core’ga mahsulotga xos kod qo‘shmasdan rollar va ssenariylarni deklarativ ulash.
Yangilangan: 2026-yil 11-avgust
01
Manifest nimalarni saqlaydi (qisqa misol)
jsonKanyman docs
{
"schema": "kanyman.solution-pack.v1",
"id": "example.support",
"version": "1.0.0",
"core_contract": "kanyman.external-integrations.v1",
"roles": [{ "key": "support", "title": "Support" }],
"scenarios": [{
"key": "support.diagnostics",
"version": "1.0.0",
"entry_role": "support",
"allowed_capabilities": ["project.get_diagnostics"]
}],
"required_capabilities": [{
"name": "project.get_diagnostics",
"version": "1.0.0",
"kind": "read",
"side_effect": "none"
}]
}- Manifest rollar, ssenariylar, policies, bilim talablari, UI labels va acceptance fixtures’ni saqlaydi.
- Manifest’da credentials, maxfiy kalitlar, tokenlar va mahsulot bazasiga to‘g‘ridan-to‘g‘ri kirish taqiqlangan.
- Capability barqaror nom va aniq versiya bilan ko‘rsatiladi; joriy kontrakt read va draft’ni qabul qiladi.
- DISP va VerifyBox boshqa istalgan mahsulot kabi ayni schema contract’dan foydalanadi.
02
O‘rnatish va moslik
- 1Tashqi integratsiyani yarating va faollashtiring.
- 2Tanlangan pack talab qiladigan capabilities’ni qo‘shing va sinang.
- 3Pack’ni integratsiyaga o‘rnating. Kanyman o‘zgarmas manifest snapshot’i va digest’ini saqlaydi.
- 4Capability yo‘q, faol emas yoki boshqa policy/version’ga ega bo‘lsa, o‘rnatish blocked holatini oladi.
- 5Capabilities o‘zgargach, qayta tekshiruvni ishga tushiring va pack’ni faollashtiring.
- 6Pack tarixni o‘chirmasdan o‘chirilishi mumkin; rollback ko‘rsatkichni faqat avval o‘rnatilgan immutable snapshot’ga o‘tkazadi.
- 7Runtime’da model aniq pack, scenario va specialist role’ni tanlaydi; server tanlovni qayta tekshiradi va faqat joriy qadam capabilities’ini ochadi.
- 8Blocked yoki disabled pack fail-closed ishlaydi: muvaffaqiyatli qayta tekshiruv va faollashtirishgacha uning capabilities’i agentga berilmaydi.
httpKanyman docs
GET /api/projects/{project_id}/external-integrations/{integration_id}/connectors/{connector_id}/versions/{version}/manifest
Authorization: Bearer <Kanyman access token>
{
"schema": "kanyman.connector-contract.v1",
"digest_scope": "manifest_without_lifecycle_status",
"digest": "<sha256 canonical contract>",
"manifest": {
"schema": "kanyman.connector-manifest.v1",
"id": "example.support-api",
"version": "1.0.0",
"status": "planned",
"capabilities": ["...full input/output schemas..."]
}
}03
Scenario Library va doimiy holat
jsonKanyman docs
{
"schema": "kanyman.solution-scenario.v1",
"pack_id": "example.support",
"pack_version": "1.0.0",
"scenario_key": "support.diagnostics",
"scenario_version": "1.0.0",
"status": "active",
"entry_step": "identify_issue",
"steps": [{
"key": "identify_issue",
"kind": "question",
"role_keys": ["support"],
"allowed_capabilities": ["project.get_diagnostics"],
"answer_options": [{
"key": "resolved",
"next_step": "completed"
}]
}]
}- Ssenariy ta’rifi immutable pack manifest’dan alohida saqlanadi va aniq pack/scenario versiyalari bilan bog‘lanadi.
- draft, review, active, paused va archived holatlari qo‘llanadi; runtime faqat active ta’riflarni bajaradi.
- Kabinetda owner/admin JSON’ni serverda tekshirishi, immutable draft saqlashi, uni review’ga yuborishi va alohida faollashtirishi mumkin; draft va review runtime’ga ta’sir qilmaydi va tarixni yo‘qotmasdan arxivlanadi.
- Faol tenant-scoped versiya Core relizisiz code default’ni almashtiradi; u bo‘lmasa, runtime pack bilan kelgan ta’rifdan foydalanadi.
- Har bir run immutable definition snapshot va SHA-256 digest, joriy step, role hamda control version’ni saqlaydi.
- Jurnalga faqat xavfsiz qadam/javob kalitlari va product/tariff signals kiradi; foydalanuvchi matni, tokenlar va PII ko‘chirilmaydi.
- Keyingi step va role’ni server snapshot’dan hisoblaydi; model ixtiyoriy o‘tish yo‘nalishini bera olmaydi.
- O‘tish ruxsat etilgan javob bilan bitta tranzaksiyada yoziladi. Retry takroriy o‘tish yaratmaydi.
- Pack’ni o‘chirish, nomoslik yoki versiya almashishi faol run’ni fail-closed bekor qiladi va cancelled hodisasini saqlaydi.
04
Kabinet API’si
textKanyman docs
GET /api/projects/{project_id}/solution-packs/catalog
GET /api/projects/{project_id}/solution-packs
POST /api/projects/{project_id}/solution-packs/install
POST /api/projects/{project_id}/solution-packs/{installation_id}/refresh
POST /api/projects/{project_id}/solution-packs/{installation_id}/activate
POST /api/projects/{project_id}/solution-packs/{installation_id}/disable
POST /api/projects/{project_id}/solution-packs/{installation_id}/rollback
GET /api/projects/{project_id}/solution-packs/{installation_id}/scenarios
POST /api/projects/{project_id}/solution-packs/{installation_id}/scenarios/{scenario_key}/preview
POST /api/projects/{project_id}/solution-packs/{installation_id}/scenarios/{scenario_key}/drafts
POST /api/projects/{project_id}/solution-packs/{installation_id}/scenarios/versions/{version_id}/submit
POST /api/projects/{project_id}/solution-packs/{installation_id}/scenarios/versions/{version_id}/activate
POST /api/projects/{project_id}/solution-packs/{installation_id}/scenarios/versions/{version_id}/archive