mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
da4a656cdb
* perf(plugins): declare doctor contract surfaces * perf(doctor): slim migration import closures * perf(plugins): narrow doctor declaration record surface and wire owner-test lane Registry records carry only the doctorContract declaration instead of the whole parsed manifest, and check:changed now selects the src/plugins-owned declaration honesty and closure-guard tests for extension module/manifest changes so cross-lane drift cannot pass PR classification. * fix(doctor): keep control-plane dist imports require-safe Keep doctor and channel control-plane chunks off exec-class dependencies, and enforce native require(esm) loading during postbuild. * chore(plugin-sdk): regenerate API baseline * chore(plugin-sdk): sync export ordering * fix(plugins): satisfy doctor contract CI boundaries * perf(doctor): make qqbot doctor closure dependency-light qqbot was the last plugin above 5s in doctor state-migration enumeration (~8s under tsx/jiti). The cost was not the state-key builder (already a leaf): its doctor closure value-imported the runtime-doctor SDK barrel, whose plugin-state-store/state-db re-exports pull kysely (~330 modules), plus security-runtime for one fileExists (~200 modules), all resolved per-module by jiti during enumeration. Split the migration-define helpers and light re-exports into a new private-local plugin-sdk/runtime-doctor-migrations subpath; runtime-doctor re-exports it so its public surface is byte-identical (API baseline hash unchanged). qqbot's doctor-contract and state-migrations now import only the light subpath, swapping fileExists for the equivalent async legacyStateFileExists already in the closure. qqbot enumeration: ~8.0s/531 modules -> ~0.25s/18 modules. * chore(plugin-sdk): drop private-local subpath from API baseline runtime-doctor-migrations is private-local-only; the baseline tracks public modules, and the earlier line was generated before the classification. * fix(plugins): register runtime-doctor-migrations boundary paths The private-local subpath list feeds the extension package boundary map; the shared paths config and xai's derived overrides must carry the same entry or the boundary contract test fails.
200 lines
4.4 KiB
JSON
200 lines
4.4 KiB
JSON
{
|
|
"id": "workboard",
|
|
"doctorContract": {
|
|
"stateMigrations": true
|
|
},
|
|
"enabledByDefault": false,
|
|
"activation": {
|
|
"onStartup": true,
|
|
"onCommands": ["workboard"]
|
|
},
|
|
"dashboard": {
|
|
"dataBindings": [
|
|
{
|
|
"id": "cards.list",
|
|
"method": "workboard.cards.list",
|
|
"description": "List Workboard cards and statuses."
|
|
},
|
|
{
|
|
"id": "stats",
|
|
"method": "workboard.cards.stats",
|
|
"description": "Read Workboard card statistics."
|
|
},
|
|
{
|
|
"id": "boards.list",
|
|
"method": "workboard.boards.list",
|
|
"description": "List Workboard boards."
|
|
}
|
|
],
|
|
"actionVerbs": [
|
|
{
|
|
"id": "dispatch",
|
|
"method": "workboard.cards.dispatch",
|
|
"description": "Dispatch ready Workboard cards.",
|
|
"paramShape": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"boardId": { "type": "string", "minLength": 1 }
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"name": "Workboard",
|
|
"description": "Dashboard workboard for agent-owned issues and sessions.",
|
|
"catalog": { "featured": true, "order": 10 },
|
|
"contracts": {
|
|
"tools": [
|
|
"workboard_list",
|
|
"workboard_create",
|
|
"workboard_link",
|
|
"workboard_read",
|
|
"workboard_claim",
|
|
"workboard_heartbeat",
|
|
"workboard_complete",
|
|
"workboard_attachment_add",
|
|
"workboard_attachment_read",
|
|
"workboard_attachment_delete",
|
|
"workboard_block",
|
|
"workboard_boards",
|
|
"workboard_board_create",
|
|
"workboard_board_archive",
|
|
"workboard_board_delete",
|
|
"workboard_stats",
|
|
"workboard_runs",
|
|
"workboard_specify",
|
|
"workboard_decompose",
|
|
"workboard_notify_subscribe",
|
|
"workboard_notify_list",
|
|
"workboard_notify_events",
|
|
"workboard_notify_advance",
|
|
"workboard_notify_unsubscribe",
|
|
"workboard_promote",
|
|
"workboard_reassign",
|
|
"workboard_reclaim",
|
|
"workboard_dispatch",
|
|
"workboard_release",
|
|
"workboard_comment",
|
|
"workboard_proof",
|
|
"workboard_worker_log",
|
|
"workboard_protocol_violation",
|
|
"workboard_unblock",
|
|
"workboard_move"
|
|
]
|
|
},
|
|
"commandAliases": [{ "name": "workboard" }],
|
|
"toolMetadata": {
|
|
"workboard_list": {
|
|
"optional": true
|
|
},
|
|
"workboard_create": {
|
|
"optional": true
|
|
},
|
|
"workboard_link": {
|
|
"optional": true
|
|
},
|
|
"workboard_read": {
|
|
"optional": true
|
|
},
|
|
"workboard_claim": {
|
|
"optional": true
|
|
},
|
|
"workboard_heartbeat": {
|
|
"optional": true
|
|
},
|
|
"workboard_complete": {
|
|
"optional": true
|
|
},
|
|
"workboard_attachment_add": {
|
|
"optional": true
|
|
},
|
|
"workboard_attachment_read": {
|
|
"optional": true
|
|
},
|
|
"workboard_attachment_delete": {
|
|
"optional": true
|
|
},
|
|
"workboard_block": {
|
|
"optional": true
|
|
},
|
|
"workboard_boards": {
|
|
"optional": true
|
|
},
|
|
"workboard_board_create": {
|
|
"optional": true
|
|
},
|
|
"workboard_board_archive": {
|
|
"optional": true
|
|
},
|
|
"workboard_board_delete": {
|
|
"optional": true
|
|
},
|
|
"workboard_stats": {
|
|
"optional": true
|
|
},
|
|
"workboard_runs": {
|
|
"optional": true
|
|
},
|
|
"workboard_specify": {
|
|
"optional": true
|
|
},
|
|
"workboard_decompose": {
|
|
"optional": true
|
|
},
|
|
"workboard_notify_subscribe": {
|
|
"optional": true
|
|
},
|
|
"workboard_notify_list": {
|
|
"optional": true
|
|
},
|
|
"workboard_notify_events": {
|
|
"optional": true
|
|
},
|
|
"workboard_notify_advance": {
|
|
"optional": true
|
|
},
|
|
"workboard_notify_unsubscribe": {
|
|
"optional": true
|
|
},
|
|
"workboard_promote": {
|
|
"optional": true
|
|
},
|
|
"workboard_reassign": {
|
|
"optional": true
|
|
},
|
|
"workboard_reclaim": {
|
|
"optional": true
|
|
},
|
|
"workboard_dispatch": {
|
|
"optional": true
|
|
},
|
|
"workboard_release": {
|
|
"optional": true
|
|
},
|
|
"workboard_comment": {
|
|
"optional": true
|
|
},
|
|
"workboard_proof": {
|
|
"optional": true
|
|
},
|
|
"workboard_worker_log": {
|
|
"optional": true
|
|
},
|
|
"workboard_protocol_violation": {
|
|
"optional": true
|
|
},
|
|
"workboard_unblock": {
|
|
"optional": true
|
|
},
|
|
"workboard_move": {
|
|
"optional": true
|
|
}
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {}
|
|
}
|
|
}
|