var{defineProperty:x,getOwnPropertyNames:z,getOwnPropertyDescriptor:J}=Object,Q=Object.prototype.hasOwnProperty;function W(o){return this[o]}var u=(o)=>{var n=(k??=new WeakMap).get(o),L;if(n)return n;if(n=x({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function"){for(var l of z(o))if(!Q.call(n,l))x(n,l,{get:W.bind(o,l),enumerable:!(L=J(o,l))||L.enumerable})}return k.set(o,n),n},k;var X=(o)=>o;function Z(o,n){this[o]=X.bind(null,n)}var v=(o,n)=>{for(var L in n)x(o,L,{get:n[L],enumerable:!0,configurable:!0,set:Z.bind(n,L)})};var q=(o,n)=>()=>(o&&(n=o(o=0)),n);var _={Idea:"idea",InCreation:"in_creation",Experimental:"experimental",Beta:"beta",Stable:"stable",Deprecated:"deprecated"},g={PlatformCore:"platform.core",PlatformSigil:"platform.sigil",PlatformMarketplace:"platform.marketplace",PlatformMessaging:"platform.messaging",PlatformContent:"platform.content",PlatformFeatureFlags:"platform.featureflags",PlatformFinance:"platform.finance"},r=g,D={Spots:"spots",Collectivity:"collectivity",Marketplace:"marketplace",Sellers:"sellers",Auth:"auth",Login:"login",Signup:"signup",Guide:"guide",Docs:"docs",I18n:"i18n",Incident:"incident",Automation:"automation",Hygiene:"hygiene"},K=D;import{compareVersions as $}from"compare-versions";var E=(o,n)=>`${o}.v${n}`;class w{items=new Map;surfaceIndex=null;register(o){let n=E(o.meta.key,o.meta.version);if(this.items.has(n))throw Error(`Duplicate capability ${n}`);return this.items.set(n,o),this.surfaceIndex=null,this}list(){return[...this.items.values()]}get(o,n){if(n!=null)return this.items.get(E(o,n));let L;for(let l of this.items.values()){if(l.meta.key!==o)continue;if(!L||$(l.meta.version,L.meta.version)>0)L=l}return L}satisfies(o,n){if(o.optional)return!0;if(n?.some((l)=>U(l,o)))return!0;let L=o.version?this.get(o.key,o.version):this.get(o.key);if(!L)return!1;if(o.kind&&L.meta.kind!==o.kind)return!1;if(o.version!=null&&L.meta.version!==o.version)return!1;return!0}buildSurfaceIndex(){if(this.surfaceIndex)return this.surfaceIndex;this.surfaceIndex=new Map;for(let o of this.items.values()){let n=E(o.meta.key,o.meta.version);for(let L of o.provides??[]){let l=`${L.surface}:${L.key}`;if(!this.surfaceIndex.has(l))this.surfaceIndex.set(l,new Set);this.surfaceIndex.get(l)?.add(n)}}return this.surfaceIndex}getOperationsFor(o,n){let L=this.get(o,n);if(!L)return[];return L.provides?.filter((l)=>l.surface==="operation").map((l)=>l.key)??[]}getEventsFor(o,n){let L=this.get(o,n);if(!L)return[];return L.provides?.filter((l)=>l.surface==="event").map((l)=>l.key)??[]}getPresentationsFor(o,n){let L=this.get(o,n);if(!L)return[];return L.provides?.filter((l)=>l.surface==="presentation").map((l)=>l.key)??[]}getWorkflowsFor(o,n){let L=this.get(o,n);if(!L)return[];return L.provides?.filter((l)=>l.surface==="workflow").map((l)=>l.key)??[]}getResourcesFor(o,n){let L=this.get(o,n);if(!L)return[];return L.provides?.filter((l)=>l.surface==="resource").map((l)=>l.key)??[]}getCapabilitiesForOperation(o){let L=this.buildSurfaceIndex().get(`operation:${o}`);if(!L)return[];return[...L].map((l)=>{let P=this.items.get(l);return{key:P?.meta.key??"",version:P?.meta.version??""}})}getCapabilitiesForEvent(o){let L=this.buildSurfaceIndex().get(`event:${o}`);if(!L)return[];return[...L].map((l)=>{let P=this.items.get(l);return{key:P?.meta.key??"",version:P?.meta.version??""}})}getCapabilitiesForPresentation(o){let L=this.buildSurfaceIndex().get(`presentation:${o}`);if(!L)return[];return[...L].map((l)=>{let P=this.items.get(l);return{key:P?.meta.key??"",version:P?.meta.version??""}})}getAncestors(o,n){let L=[],l=new Set,P=this.get(o,n);while(P?.extends){let N=E(P.extends.key,P.extends.version);if(l.has(N))break;l.add(N);let O=this.get(P.extends.key,P.extends.version);if(!O)break;L.push(O),P=O}return L}getEffectiveRequirements(o,n){let L=this.get(o,n);if(!L)return[];let l=this.getAncestors(o,n),P=new Map;for(let N of[...l].reverse())for(let O of N.requires??[])P.set(O.key,O);for(let N of L.requires??[])P.set(N.key,N);return[...P.values()]}getEffectiveSurfaces(o,n){let L=this.get(o,n);if(!L)return[];let l=this.getAncestors(o,n),P=[];for(let N of[...l].reverse())P.push(...N.provides??[]);return P.push(...L.provides??[]),P}}function U(o,n){if(o.key!==n.key)return!1;if(n.version!=null&&o.version!==n.version)return!1;return!0}function p(o){return E(o.meta.key,o.meta.version)}function A(o){return o}var s=[{id:"docs.tech.contracts.capabilities",title:"CapabilitySpec Overview",summary:"Capability specs define what a module provides (operations, events, presentations) and requires (dependencies). They enable bidirectional linking, inheritance, runtime enforcement, and automated validation.",kind:"reference",visibility:"public",route:"/docs/tech/contracts/capabilities",tags:["tech","contracts","capabilities"],body:`# CapabilitySpec Overview

## Purpose

Capabilities are **module interfaces** that define:
1. What operations, events, and presentations a module exposes (\`provides\`)
2. What other capabilities it depends on (\`requires\`)
3. Inheritance hierarchies via \`extends\`

They enable:
- **Bidirectional linking**: Specs reference capabilities, capabilities list their specs
- **Dependency validation**: Features can't install without satisfying requirements
- **Runtime enforcement**: Check capabilities before executing operations
- **Inheritance**: Build capability hierarchies with shared requirements

## Schema

\`\`\`ts
export interface CapabilitySpec {
  meta: CapabilityMeta;              // ownership metadata + { key, version, kind }
  extends?: CapabilityRef;           // NEW: inherit from parent capability
  provides?: CapabilitySurfaceRef[]; // surfaces this capability exposes
  requires?: CapabilityRequirement[];// capabilities that must exist
}
\`\`\`

### Bidirectional Linking

Operations, events, and presentations can now declare their capability:

\`\`\`ts
// In OperationSpec
{
  meta: { key: 'payments.charge.create', ... },
  capability: { key: 'payments', version: '1.0.0' }, // Links to capability
  io: { ... }
}

// In CapabilitySpec
{
  meta: { key: 'payments', version: '1.0.0', ... },
  provides: [
    { surface: 'operation', key: 'payments.charge.create' }
  ]
}
\`\`\`

Validation ensures both sides match via \`validateCapabilityConsistency()\`.

## Registry Query Methods

The \`CapabilityRegistry\` now provides rich query capabilities:

\`\`\`ts
// Forward lookups: Capability → Specs
registry.getOperationsFor('payments');      // ['payments.charge.create', ...]
registry.getEventsFor('payments');          // ['payments.charge.succeeded', ...]
registry.getPresentationsFor('payments');   // ['payments.dashboard', ...]

// Reverse lookups: Spec → Capabilities
registry.getCapabilitiesForOperation('payments.charge.create');
registry.getCapabilitiesForEvent('payments.charge.succeeded');
registry.getCapabilitiesForPresentation('payments.dashboard');

// Inheritance
registry.getAncestors('payments.stripe');           // Parent chain
registry.getEffectiveRequirements('payments.stripe'); // Includes inherited
registry.getEffectiveSurfaces('payments.stripe');     // Includes inherited
\`\`\`

## Inheritance

Capabilities can extend other capabilities:

\`\`\`ts
// Base capability
defineCapability({
  meta: { key: 'payments.base', version: '1.0.0', ... },
  requires: [{ key: 'auth', version: '1.0.0' }],
  provides: [{ surface: 'operation', key: 'payments.list' }]
});

// Child capability inherits requirements
defineCapability({
  meta: { key: 'payments.stripe', version: '1.0.0', ... },
  extends: { key: 'payments.base', version: '1.0.0' },
  requires: [{ key: 'encryption', version: '1.0.0' }], // Added
  provides: [{ surface: 'operation', key: 'payments.stripe.charge' }]
});

// getEffectiveRequirements('payments.stripe') returns:
// [{ key: 'auth', ... }, { key: 'encryption', ... }]
\`\`\`

## Runtime Enforcement

Use \`CapabilityContext\` for opt-in runtime checks:

\`\`\`ts

// Create context from user's enabled capabilities
const ctx = createCapabilityContext(user.capabilities);

// Check capability
if (ctx.hasCapability('payments')) {
  // User can access payments features
}

// Assert capability (throws if missing)
ctx.requireCapability('payments');

// Guard an operation
assertCapabilityForOperation(ctx, paymentOperation);

// Filter operations by enabled capabilities
const allowedOps = filterOperationsByCapability(ctx, allOperations);
\`\`\`

## Validation

Validate bidirectional consistency between capabilities and specs:

\`\`\`ts

const result = validateCapabilityConsistency({
  capabilities: capabilityRegistry,
  operations: operationRegistry,
  events: eventRegistry,
  presentations: presentationRegistry,
});

if (!result.valid) {
  console.error('Validation errors:', result.errors);
}

// Find specs without capability assignment (informational)
const orphans = findOrphanSpecs({ capabilities, operations });
\`\`\`

## Feature Integration

During \`installFeature()\`:
1. \`provides\` capabilities must exist in the registry
2. \`requires\` must be satisfied by registered capabilities or local \`provides\`
3. Referenced operations/events/presentations must exist

## Authoring Guidelines

1. **Register capabilities first** before referencing them in features
2. **Use bidirectional linking** - set \`capability\` on specs and list them in \`provides\`
3. **Version consciously** - bump versions on breaking changes
4. **Document dependencies** with \`reason\` strings
5. **Use inheritance** for capability families with shared requirements
6. **Validate during CI** with \`validateCapabilityConsistency()\`

## Error Handling

\`\`\`ts

try {
  ctx.requireCapability('premium-features');
} catch (err) {
  if (err instanceof CapabilityMissingError) {
    console.log('Missing:', err.capabilityKey);
    console.log('Required version:', err.requiredVersion);
  }
}
\`\`\`

## API Reference

### Types
- \`CapabilitySpec\` - Capability definition
- \`CapabilityRef\` - Reference to a capability (key + version)
- \`CapabilitySurfaceRef\` - Reference to a provided surface
- \`CapabilityRequirement\` - Dependency requirement
- \`CapabilityContext\` - Runtime capability context
- \`CapabilityValidationResult\` - Validation result

### Functions
- \`defineCapability(spec)\` - Define a capability spec
- \`createCapabilityContext(caps)\` - Create runtime context
- \`validateCapabilityConsistency(deps)\` - Validate bidirectional links
- \`findOrphanSpecs(deps)\` - Find specs without capability assignment
- \`assertCapabilityForOperation/Event/Presentation(ctx, spec)\` - Guards
- \`filterOperationsByCapability(ctx, ops)\` - Filter by enabled capabilities
`}];class C extends Error{capabilityKey;requiredVersion;constructor(o,n){let L=n?`.v${n}`:"";super(`Missing required capability: ${o}${L}`);this.name="CapabilityMissingError",this.capabilityKey=o,this.requiredVersion=n}}class I{capabilities;capabilityVersions;constructor(o){let n=new Set,L=new Map;for(let l of o)n.add(l.key),L.set(l.key,l.version);this.capabilities=n,this.capabilityVersions=L}hasCapability(o,n){if(!this.capabilities.has(o))return!1;if(n!=null)return this.capabilityVersions.get(o)===n;return!0}requireCapability(o,n){if(!this.hasCapability(o,n))throw new C(o,n)}hasAllCapabilities(o){return o.every((n)=>this.capabilities.has(n))}hasAnyCapability(o){return o.some((n)=>this.capabilities.has(n))}getMatchingCapabilities(o){if(!o.includes("*"))return this.capabilities.has(o)?[o]:[];let n=o.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*"),L=new RegExp(`^${n}$`);return[...this.capabilities].filter((l)=>L.test(l))}}function oo(o){return new I(o)}function lo(){return new I([])}function no(o){return new I(o)}function m(o,n){if(!n.capability)return{allowed:!0};let{key:L,version:l}=n.capability;if(o.hasCapability(L,l))return{allowed:!0};return{allowed:!1,missingCapability:{key:L,version:l},reason:`Operation "${n.meta.key}" requires capability "${L}.v${l}"`}}function No(o,n){let L=m(o,n);if(!L.allowed&&L.missingCapability)throw new C(L.missingCapability.key,L.missingCapability.version)}function H(o,n){if(!n.capability)return{allowed:!0};let{key:L,version:l}=n.capability;if(o.hasCapability(L,l))return{allowed:!0};return{allowed:!1,missingCapability:{key:L,version:l},reason:`Event "${n.meta.key}" requires capability "${L}.v${l}"`}}function Oo(o,n){let L=H(o,n);if(!L.allowed&&L.missingCapability)throw new C(L.missingCapability.key,L.missingCapability.version)}function S(o,n){if(!n.capability)return{allowed:!0};let{key:L,version:l}=n.capability;if(o.hasCapability(L,l))return{allowed:!0};return{allowed:!1,missingCapability:{key:L,version:l},reason:`Presentation "${n.meta.key}" requires capability "${L}.v${l}"`}}function _o(o,n){let L=S(o,n);if(!L.allowed&&L.missingCapability)throw new C(L.missingCapability.key,L.missingCapability.version)}function Ao(o,n){return n.filter((L)=>m(o,L).allowed)}function To(o,n){return n.filter((L)=>H(o,L).allowed)}function fo(o,n){return n.filter((L)=>S(o,L).allowed)}var Y=["platform.integrations"],j=["meeting-recorder","transcripts","integrations"],i={meta:{key:"meeting-recorder.meetings.read",version:"1.0.0",kind:"integration",title:"Meeting Recorder Meetings (Read)",description:"Provides read-only access to recorded meetings and their metadata.",domain:"integrations",owners:[...Y],tags:[...j,"meetings"],stability:_.Experimental},provides:[{surface:"operation",key:"meeting-recorder.meetings.list",version:"1.0.0",description:"List meetings available from the recorder provider."},{surface:"operation",key:"meeting-recorder.meetings.get",version:"1.0.0",description:"Fetch detailed metadata for a specific meeting."}]},M={meta:{key:"meeting-recorder.transcripts.read",version:"1.0.0",kind:"integration",title:"Meeting Recorder Transcripts (Read)",description:"Enables retrieval of transcripts for recorded meetings from external providers.",domain:"integrations",owners:[...Y],tags:[...j,"transcripts"],stability:_.Experimental},provides:[{surface:"operation",key:"meeting-recorder.transcripts.get",version:"1.0.0",description:"Fetch the transcript for a specific meeting recording."},{surface:"operation",key:"meeting-recorder.transcripts.sync",version:"1.0.0",description:"Trigger a transcript sync from the recorder provider."}]},V={meta:{key:"meeting-recorder.webhooks",version:"1.0.0",kind:"integration",title:"Meeting Recorder Webhooks",description:"Allows processing of webhook events for meeting transcript readiness.",domain:"integrations",owners:[...Y],tags:[...j,"webhooks"],stability:_.Experimental},provides:[{surface:"operation",key:"meeting-recorder.webhooks.ingest",version:"1.0.0",description:"Ingest and verify meeting recorder webhook payloads."}]};function Eo(o){return o.register(i).register(M).register(V)}var G=["platform.finance"],B=["open-banking","finance"],c={meta:{key:"openbanking.accounts.read",version:"1.0.0",kind:"integration",title:"Open Banking Accounts (Read)",description:"Provides read-only access to linked bank accounts, including account summaries and metadata.",domain:"finance",owners:[...G],tags:[...B],stability:_.Experimental},provides:[{surface:"operation",key:"openbanking.accounts.list",version:"1.0.0",description:"List bank accounts linked to a Powens open banking connection."},{surface:"operation",key:"openbanking.accounts.get",version:"1.0.0",description:"Retrieve the canonical bank account record for a specific account."},{surface:"operation",key:"openbanking.accounts.sync",version:"1.0.0",description:"Trigger a refresh of bank account metadata from the open banking provider."}]},t={meta:{key:"openbanking.transactions.read",version:"1.0.0",kind:"integration",title:"Open Banking Transactions (Read)",description:"Enables retrieval of transaction history for linked bank accounts via open banking providers.",domain:"finance",owners:[...G],tags:[...B,"transactions"],stability:_.Experimental},provides:[{surface:"operation",key:"openbanking.transactions.list",version:"1.0.0",description:"List transactions for a given bank account with optional date filtering."},{surface:"operation",key:"openbanking.transactions.sync",version:"1.0.0",description:"Synchronise transactions from the open banking provider into the canonical ledger."}]},F={meta:{key:"openbanking.balances.read",version:"1.0.0",kind:"integration",title:"Open Banking Balances (Read)",description:"Allows querying of current and available balances for linked bank accounts via open banking providers.",domain:"finance",owners:[...G],tags:[...B,"balances"],stability:_.Experimental},provides:[{surface:"operation",key:"openbanking.balances.get",version:"1.0.0",description:"Retrieve the latest known balances for a specified bank account."},{surface:"operation",key:"openbanking.balances.refresh",version:"1.0.0",description:"Force a balance refresh from the open banking provider."}]};function go(o){return o.register(c).register(t).register(F)}function Yo(o){let n=[],L=[];for(let l of o.capabilities.list()){let P=`${l.meta.key}.v${l.meta.version}`;for(let N of l.provides??[])if(!h(o,N.surface,N.key))n.push({type:"missing_surface_spec",message:`Capability "${P}" provides ${N.surface} "${N.key}" but spec not found`,capabilityKey:P,surface:N.surface,specKey:N.key})}if(o.operations){for(let l of o.operations.list())if(l.capability){let P=o.capabilities.get(l.capability.key,l.capability.version);if(!P)n.push({type:"capability_not_found",message:`Operation "${l.meta.key}" references capability "${l.capability.key}.v${l.capability.version}" but capability not found`,specKey:l.meta.key,capabilityKey:`${l.capability.key}.v${l.capability.version}`,surface:"operation"});else if(!P.provides?.some((O)=>O.surface==="operation"&&O.key===l.meta.key))n.push({type:"surface_not_in_provides",message:`Operation "${l.meta.key}" claims capability "${l.capability.key}.v${l.capability.version}" but not in capability's provides`,specKey:l.meta.key,capabilityKey:`${l.capability.key}.v${l.capability.version}`,surface:"operation"})}}if(o.events){for(let l of o.events.list())if(l.capability){let P=o.capabilities.get(l.capability.key,l.capability.version);if(!P)n.push({type:"capability_not_found",message:`Event "${l.meta.key}" references capability "${l.capability.key}.v${l.capability.version}" but capability not found`,specKey:l.meta.key,capabilityKey:`${l.capability.key}.v${l.capability.version}`,surface:"event"});else if(!P.provides?.some((O)=>O.surface==="event"&&O.key===l.meta.key))n.push({type:"surface_not_in_provides",message:`Event "${l.meta.key}" claims capability "${l.capability.key}.v${l.capability.version}" but not in capability's provides`,specKey:l.meta.key,capabilityKey:`${l.capability.key}.v${l.capability.version}`,surface:"event"})}}if(o.presentations){for(let l of o.presentations.list())if(l.capability){let P=o.capabilities.get(l.capability.key,l.capability.version);if(!P)n.push({type:"capability_not_found",message:`Presentation "${l.meta.key}" references capability "${l.capability.key}.v${l.capability.version}" but capability not found`,specKey:l.meta.key,capabilityKey:`${l.capability.key}.v${l.capability.version}`,surface:"presentation"});else if(!P.provides?.some((O)=>O.surface==="presentation"&&O.key===l.meta.key))n.push({type:"surface_not_in_provides",message:`Presentation "${l.meta.key}" claims capability "${l.capability.key}.v${l.capability.version}" but not in capability's provides`,specKey:l.meta.key,capabilityKey:`${l.capability.key}.v${l.capability.version}`,surface:"presentation"})}}return{valid:n.length===0,errors:n,warnings:L}}function h(o,n,L){switch(n){case"operation":return o.operations?.has(L)??!0;case"event":return o.events?.has(L)??!0;case"presentation":return o.presentations?.has(L)??!0;case"workflow":case"resource":return!0;default:return!0}}function jo(o){let n={operations:[],events:[],presentations:[]};if(o.operations){for(let L of o.operations.list())if(!L.capability)n.operations.push(L.meta.key)}if(o.events){for(let L of o.events.list())if(!L.capability)n.events.push(L.meta.key)}if(o.presentations){for(let L of o.presentations.list())if(!L.capability)n.presentations.push(L.meta.key)}return n}var T="control-plane",f=[g.PlatformCore],d=[D.Automation,"control-plane","agent-runtime"],R=_.Experimental;var $o=A({meta:{key:"control-plane.approval",version:"1.0.0",kind:"integration",title:"Control Plane Approval",description:"Human approval and rejection gates for execution steps.",domain:T,owners:f,tags:[...d,"approval"],stability:R},requires:[{key:"control-plane.core",version:"1.0.0",reason:"Approval decisions are applied on core execution records."}],provides:[{surface:"operation",key:"controlPlane.execution.approve",version:"1.0.0",description:"Approve a pending step."},{surface:"operation",key:"controlPlane.execution.reject",version:"1.0.0",description:"Reject a pending step."},{surface:"event",key:"controlPlane.execution.step.blocked",version:"1.0.0",description:"Step blocked by policy or operator decision."}]});var Mo=A({meta:{key:"control-plane.audit",version:"1.0.0",kind:"data",title:"Control Plane Audit",description:"Trace, policy explanation, and replay-grade observability.",domain:T,owners:f,tags:[...d,"audit"],stability:R},requires:[{key:"control-plane.core",version:"1.0.0",reason:"Audit surfaces depend on core execution lifecycle records."}],provides:[{surface:"operation",key:"controlPlane.plan.verify",version:"1.0.0",description:"Verify plan policy/risk before execution."},{surface:"operation",key:"controlPlane.trace.get",version:"1.0.0",description:"Get trace entries for replay and investigations."},{surface:"operation",key:"controlPlane.policy.explain",version:"1.0.0",description:"Explain policy verdict rationale."},{surface:"event",key:"controlPlane.execution.failed",version:"1.0.0",description:"Execution failure event for incident tracking."},{surface:"event",key:"controlPlane.execution.completed",version:"1.0.0",description:"Execution completion event for reporting."}]});var Fo=A({meta:{key:"control-plane.channel-runtime",version:"1.0.0",kind:"integration",title:"Control Plane Channel Runtime",description:"Channel-facing runtime surfaces for controlled execution.",domain:T,owners:f,tags:[...d,"channels"],stability:R},requires:[{key:"control-plane.core",version:"1.0.0",reason:"Channel runtime builds on core intent and execution contracts."},{key:"control-plane.audit",version:"1.0.0",reason:"Channel interactions must remain traceable and replayable."}],provides:[{surface:"event",key:"controlPlane.execution.step.started",version:"1.0.0",description:"Channel-linked step began."},{surface:"event",key:"controlPlane.execution.step.completed",version:"1.0.0",description:"Channel-linked step completed."},{surface:"event",key:"controlPlane.execution.step.blocked",version:"1.0.0",description:"Channel-linked step blocked."}]});var qo=A({meta:{key:"control-plane.core",version:"1.0.0",kind:"integration",title:"Control Plane Core",description:"Core intent, planning, and execution surfaces.",domain:T,owners:f,tags:[...d,"core"],stability:R},provides:[{surface:"operation",key:"controlPlane.intent.submit",version:"1.0.0",description:"Submit intent for controlled execution."},{surface:"operation",key:"controlPlane.plan.compile",version:"1.0.0",description:"Compile deterministic plan DAG."},{surface:"operation",key:"controlPlane.execution.start",version:"1.0.0",description:"Start approved plan execution."},{surface:"operation",key:"controlPlane.execution.cancel",version:"1.0.0",description:"Cancel in-flight execution."},{surface:"operation",key:"controlPlane.execution.get",version:"1.0.0",description:"Read one execution state."},{surface:"operation",key:"controlPlane.execution.list",version:"1.0.0",description:"List execution states."},{surface:"event",key:"controlPlane.intent.received",version:"1.0.0",description:"Intent accepted into runtime pipeline."},{surface:"event",key:"controlPlane.plan.compiled",version:"1.0.0",description:"Plan compilation completed."}]});var ao=A({meta:{key:"control-plane.skill-registry",version:"1.0.0",kind:"integration",title:"Control Plane Skill Registry",description:"Signed skill lifecycle and compatibility governance.",domain:T,owners:f,tags:[...d,"skills"],stability:R},provides:[{surface:"operation",key:"controlPlane.skill.install",version:"1.0.0",description:"Install signed skill artifacts."},{surface:"operation",key:"controlPlane.skill.disable",version:"1.0.0",description:"Disable installed skill artifacts."},{surface:"operation",key:"controlPlane.skill.list",version:"1.0.0",description:"List installed skill artifacts."},{surface:"operation",key:"controlPlane.skill.verify",version:"1.0.0",description:"Verify skill signatures and constraints."},{surface:"event",key:"controlPlane.skill.installed",version:"1.0.0",description:"Skill install succeeded."},{surface:"event",key:"controlPlane.skill.rejected",version:"1.0.0",description:"Skill install rejected."}]});export{ao as ControlPlaneSkillRegistryCapability,qo as ControlPlaneCoreCapability,Fo as ControlPlaneChannelRuntimeCapability,Mo as ControlPlaneAuditCapability,$o as ControlPlaneApprovalCapability};
