mcp_bundle 0.3.1
mcp_bundle: ^0.3.1 copied to clipboard
Bundle schema, loader, validator, expression language, and port contracts providing the foundation for the MCP ecosystem.
0.3.1 - 2026-05-04 - EthosRecord JSON round-trip + agents reserved folder #
Added #
EthosRecord.fromJson/EthosRecord.toJson— adapters that persist ethos records viadart:convert(KV stores, file-backed adapters, network bridges) can now serialize without ad-hoc per-host glue.payloadis preserved as-is,createdAtround-trips through ISO-8601,activedefaults to false when absent.BundleFolder.agents— seventh reserved bundle folder for agent definitions (4-axis bindings + runtime config). CompanionBundle.agentResourcesgetter exposes the sameBundleResourcessurface as the other six folders. Hosts that bundle agents alongside ui / skills / knowledge / profiles / philosophy now have a canonical on-disk slot.AgentsSection/AgentDefinition— typed model for agent definitions inside a bundle (the static description that a host runtime instantiates into a live agent: role, four-axis bindings — profiles / skills / facts / philosophies — and runtime config such as model / tools / behavior).PhilosophySection— typed model for philosophy / ethos definitions (guiding principles paired with applied examples and counter-examples). Distinct fromPolicySection— philosophy captures why and what to learn from, policy captures what to enforce.EthosStorePortextensions — additional accessor methods so consumers (e.g.mcp_knowledge.PhilosophyFacade.getEthosById) can resolve ethos records by id without scanning, completing the symmetry with the other knowledge stores.
0.3.0 - 2026-04-28 - Standard Port Catalog & Install Pipeline #
Added #
- Standard Port Catalog (40+ ports) — capability-named contracts spanning UI/Form, IO devices, Knowledge (facts, entities, claims, evidence, candidates, summaries, patterns, index, retrieval), Profile (appraisal, decision, expression, summaries), Skill (registry, runtime), Ops (workflow, pipeline, runbook, runs, schedule trigger), Philosophy (ethos store, philosophy), Analysis (function, datasource), and shared services (mcp, metrics, notification, audit, approval, asset, flow, ingest).
- Bundle install / sign / pack subsystem (
lib/src/install/) — BundleSigner, BundlePacker, BundleInstaller, InstallPolicy, TrustStore, RuntimeDescriptor. - Bundle storage subsystem (
lib/src/io/) — BundleStoragePort with File / HTTP / Memory adapters, BundleRepository, BundleResources, type coercion utilities. - Profile and Skill model packages, fact-graph schema/section, integrity, and policy models.
Changed #
- Expression engine split into lexer / parser / AST / evaluator / functions modules.
- Manifest and UI section:
ui/reserved folder is now canonical; UiSection typed fields deprecated (round-trip only, removal targeted for 0.6.0). - LLM port refined.
Removed #
lib/src/loader/legacy loader — replaced bylib/src/io/storage subsystem.
0.2.1 Channel Port & Port Contracts #
Added #
Channel Port (package:mcp_bundle/ports.dart)
Universal bidirectional communication interface for the MCP ecosystem.
-
ChannelIdentity
- Platform identifier (slack, telegram, discord, http, websocket, etc.)
- Channel-specific ID (workspace ID, server ID)
- Optional display name
- JSON serialization support
-
ConversationKey
- Unique conversation identifier
- Combines channel identity with conversation ID
- Optional user identifier
- Equality and hashing support
-
ChannelAttachment
- File/media attachment model
- Type, URL, filename, MIME type, size
- JSON serialization support
-
ChannelEvent
- Incoming event from channels
- Unique event ID for idempotency
- Conversation key, type, text content
- User ID/name, timestamp
- Attachments and platform metadata
- Factory:
ChannelEvent.message()for message events
-
ChannelResponse
- Outgoing response to channels
- Text and rich block content
- Attachments and reply-to support
- Platform-specific options
- Factories:
ChannelResponse.text(),ChannelResponse.rich()
-
ChannelCapabilities
- Feature flags for channel implementations
- text, richMessages, attachments, reactions
- threads, editing, deleting, typingIndicator
- Maximum message length constraint
- Presets:
ChannelCapabilities.full(),ChannelCapabilities.textOnly()
-
ChannelPort (Abstract)
- Universal interface for channel communication
identity,capabilities,eventsstreamstart(),stop(),send()methods- Optional:
sendTyping(),edit(),delete(),react()
-
Stub Implementations
StubChannelPortfor testing with event simulationEchoChannelPortfor echo-back testing
0.1.0 Initial Release #
Added #
Core Features
-
Bundle Schema
McpBundlemodel as the main containerBundleSkillfor skill definitionsBundleProfilefor profile definitionsBundleKnowledgefor knowledge items- Metadata and versioning support
-
Bundle Loader
BundleLoaderfor loading and saving bundles- File-based loading with
.mcpbformat - URL-based loading for remote bundles
- JSON data loading for in-memory bundles
- Bundle serialization and deserialization
-
Bundle Validator
BundleValidatorfor comprehensive validation- Schema validation for all bundle components
- Reference integrity checking
- Warning and error reporting
- Customizable validation rules
-
Expression Language
ExpressionEvaluatorfor template processing- Mustache-style variable syntax
{{variable}} - Conditional sections
{{#condition}}...{{/condition}} - Inverted sections
{{^condition}}...{{/condition}} - Array iteration
{{#array}}...{{/array}} - Nested property access
{{user.address.city}} - Built-in functions for data manipulation
-
Validation Results
BundleValidationwith errors and warnings- Detailed error messages with locations
- Validation context for debugging
Data Models #
McpBundle- Main bundle containerBundleSkill- Skill definition in bundleBundleProfile- Profile definition in bundleBundleKnowledge- Knowledge item in bundleBundleValidation- Validation result
Expression Features #
- Variable interpolation
- Conditional rendering
- Array iteration
- Nested property access
- Function calls