Why: plan G2-2 requires plugin commands reachable via slash aliases through the same bus and audit envelope (EXT-10②), and a natural- language routing entry so '帮我写项目建议书' can reach the compile flow. The agent-command lib now carries a validated Slash field (lib PR #6, pin bumped to 4f583ca); the bus binds plugin-spec aliases into the same slash table; intents are declared via the extension registry and routed deterministically (normalized containment, longest phrase first) to commands through the bus — the system.intent builtin (/intent) is the chat-entrance dispatch point with a candidate list on miss. Evidence: TestPluginSlashAliasBindsAndDispatches — alias binds, case/ whitespace-normalized resolution, slash and button entrances hit the same command handler with committed receipts; TestIntentDeclareMatch Route — declare/validate, miss on unrelated text, normalized hit, bus-dispatch through the chat entrance, longest-phrase priority; server suite green with the dual-entry pair registered; full go test ./... 31/31 packages green. Impact: cmdbus plugin-spec slash binding + IntentStore; extension Registry.AddIntent + IntentSpec (SurfaceVersion 2.7.0-experimental); pluginRegistry.AddIntent wires plugin-declared intents; server builtin system.intent; command-pairs fixture extended. Refs: plan G2-2 (line 366); EXT-10②; lib PR #6 (4f583ca).
33 lines
449 B
JSON
33 lines
449 B
JSON
[
|
|
{
|
|
"id": "builtin.help",
|
|
"button": true,
|
|
"chat": true
|
|
},
|
|
{
|
|
"id": "conversation.create",
|
|
"button": true,
|
|
"chat": true
|
|
},
|
|
{
|
|
"id": "conversation.profile",
|
|
"button": true,
|
|
"chat": true
|
|
},
|
|
{
|
|
"id": "models.set",
|
|
"button": true,
|
|
"chat": true
|
|
},
|
|
{
|
|
"id": "runtime.mock",
|
|
"button": true,
|
|
"chat": true
|
|
},
|
|
{
|
|
"id": "system.intent",
|
|
"button": true,
|
|
"chat": true
|
|
}
|
|
]
|