waaseyaa/bimaaji
最新稳定版本:v0.1.0-alpha.202
Composer 安装命令:
composer require waaseyaa/bimaaji
包简介
Bimaaji — application graph introspection and agent-safe mutation for Waaseyaa
README 文档
README
Bimaaji is a Waaseyaa package providing application graph introspection and an agent-safe mutation protocol. The name (Anishinaabemowin: "to give life to") reflects its role: making a booted Waaseyaa application's structure visible and actionable to AI agents.
What it does
Bimaaji exposes two surfaces:
- Read-only introspection. Six
GraphSectionProviderimplementations (admin, entities, jsonapi, public_surface, routing, sovereignty) emit versionedGraphSectionpayloads that, taken together, describe what an application contains: registered entity types and their fields, every registered route plus access classification, the JSON:API surface, admin entity groupings, the current sovereignty profile, and the public-surface map. - Validated mutation. A
MutationRequest→MutationValidator→PatchSetpipeline lets an agent propose changes (e.g., "add field X to entity Y"). The validator gates every request throughSovereigntyGuardrails; the patch generator emits content-hashed, reviewable file patches. Bimaaji itself never writes to disk — patches are returned for human (or upstream agent) review.
Quick start
After installing waaseyaa/framework (which depends on this package), the framework's PackageManifestCompiler auto-discovers BimaajiServiceProvider. The application graph generator is then reachable from the container:
use Waaseyaa\Bimaaji\Graph\ApplicationGraphGenerator; $graph = $container->get(ApplicationGraphGenerator::class)->generate(); foreach ($graph->sections as $key => $section) { echo "{$key}: " . count($section->data) . " entries\n"; }
The six default section providers are pre-wired:
| Provider | Section key | Constructor deps |
|---|---|---|
AdminIntrospectionProvider |
admin |
EntityTypeManagerInterface |
EntityIntrospectionProvider |
entities |
EntityTypeManagerInterface |
JsonApiIntrospectionProvider |
jsonapi |
RouteCollection |
PublicSurfaceProvider |
public_surface |
RouteCollection |
RoutingIntrospectionProvider |
routing |
RouteCollection |
SovereigntyIntrospectionProvider |
sovereignty |
SovereigntyProfile |
SovereigntyProfile is derived from SovereigntyConfigInterface::getProfile() and falls back to SovereigntyProfile::Local when no config is bound. RouteCollection is looked up directly and falls back to WaaseyaaRouter::getRouteCollection().
Extending: third-party graph sections
A consuming package can contribute its own section by implementing GraphSectionProviderInterface and binding it in its own ServiceProvider::register(). The canonical tag is BimaajiServiceProvider::SECTION_PROVIDER_TAG (bimaaji.section_provider); tag your binding under it for forward-compatibility with future tagged-collection container support.
final class FooSectionProvider implements GraphSectionProviderInterface { public function getKey(): string { return 'foo'; } public function provide(): GraphSection { /* ... */ } }
Installing guidelines / skills (bin/waaseyaa bimaaji:install)
Ship the framework-canonical agent skill pack to a consumer project in
per-client formats. Lifted in spirit from Laravel Boost's
php artisan boost:install; framework-native, no Node runtime.
# Install for one client bin/waaseyaa bimaaji:install --client=claude # Install for several (comma-separated or repeated) bin/waaseyaa bimaaji:install --client=claude,cursor --force # Preview without writing bin/waaseyaa bimaaji:install --client=cursor --dry-run # Interactive client selection when omitted on a TTY bin/waaseyaa bimaaji:install
Seven launch clients: claude, cursor, codex, copilot, gemini,
windsurf, junie. See
docs/specs/bimaaji-install.md
for the per-client target paths, flag semantics, interactive UX, exit
codes, sandbox guarantees, and the five-step extension guide for
adding new clients.
Status
Bimaaji is now exposed over MCP via packages/mcp/'s
per-request bridge architecture as of 2026-05-23 (M3
bimaaji-mcp-bridge-01KS5VS8). Five #[AsAgentTool] adapters live
in packages/ai-agent/src/Tool/Bimaaji/ and surface automatically
through the AgentToolRegistryBridge with no per-tool MCP code. See
docs/specs/mcp-endpoint.md §
"Bimaaji MCP bridge" for the transport contract and packages/mcp/README.md
for the operator-facing summary.
The 2026-05-20 "PHP-only" deferral that closed #1463 was formally superseded by M3; the issue stays closed with a supersession comment linking to the M3 PR set.
Legacy MCP-server cleanup (pre-M3 consumers)
Projects (e.g., Minoo) that previously wired the deleted Node-based
bimaaji MCP server (vendor/waaseyaa/bimaaji/mcp/server.js, removed
in #1387/#1464) should:
- Remove any
mcpServers.bimaajientry pointing at the deletedserver.jsfrom.claude/settings.json. The replacement is the framework-native/mcpHTTP endpoint shipped bywaaseyaa/mcp. - Drop
composer bimaaji-mcp-installfrom post-install hooks or contributor docs — the script body was Minoo-local and has no upstream entry point. - Wire the new HTTP
/mcpendpoint instead. Seepackages/mcp/README.mdfor theclaude_desktop_config.jsonexample fragment.
Where to read more
- Doctrine spec: docs/specs/bimaaji.md — design rationale, FRs/NFRs, invariants, file map.
- Design history: docs/plans/2026-05-21-ai-ecosystem-beta-tightening.md — the 5-mission cluster that promoted bimaaji from "scaffolding" to "shipped."
- Roadmap context: GitHub Milestone #67 (Track 2: Bimaaji & agentic).
统计信息
- 总下载量: 805
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 11
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: GPL-2.0-or-later
- 更新时间: 2026-04-09