commit 6922ee248c652334bdd2ec43fe8cc1f2438cfc1f
parent b631bd4920080404e45e1336859abf82c2e39898
Author: triesap <tyson@radroots.org>
Date: Tue, 26 May 2026 20:20:23 +0000
registry: split operation metadata
Diffstat:
15 files changed, 1355 insertions(+), 1170 deletions(-)
diff --git a/src/registry/account.rs b/src/registry/account.rs
@@ -0,0 +1,145 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const ACCOUNT_CREATE: OperationSpec = operation!(
+ "account.create",
+ "radroots account create",
+ "account",
+ "account_create",
+ "AccountCreateRequest",
+ "AccountCreateResult",
+ "Create a local account identity.",
+ Any,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const ACCOUNT_IMPORT: OperationSpec = operation!(
+ "account.import",
+ "radroots account import",
+ "account",
+ "account_import",
+ "AccountImportRequest",
+ "AccountImportResult",
+ "Import an existing account identity.",
+ Any,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const ACCOUNT_ATTACH_SECRET: OperationSpec = operation!(
+ "account.attach_secret",
+ "radroots account attach-secret",
+ "account",
+ "account_attach_secret",
+ "AccountAttachSecretRequest",
+ "AccountAttachSecretResult",
+ "Attach local secret custody to an existing account.",
+ Any,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const ACCOUNT_GET: OperationSpec = operation!(
+ "account.get",
+ "radroots account get",
+ "account",
+ "account_get",
+ "AccountGetRequest",
+ "AccountGetResult",
+ "Get account details.",
+ Any,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const ACCOUNT_LIST: OperationSpec = operation!(
+ "account.list",
+ "radroots account list",
+ "account",
+ "account_list",
+ "AccountListRequest",
+ "AccountListResult",
+ "List known local accounts.",
+ Any,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
+
+pub const ACCOUNT_REMOVE: OperationSpec = operation!(
+ "account.remove",
+ "radroots account remove",
+ "account",
+ "account_remove",
+ "AccountRemoveRequest",
+ "AccountRemoveResult",
+ "Remove an account from local configuration/store.",
+ Any,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const ACCOUNT_SELECTION_GET: OperationSpec = operation!(
+ "account.selection.get",
+ "radroots account selection get",
+ "account",
+ "account_selection_get",
+ "AccountSelectionGetRequest",
+ "AccountSelectionGetResult",
+ "Get selected account context.",
+ Any,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const ACCOUNT_SELECTION_UPDATE: OperationSpec = operation!(
+ "account.selection.update",
+ "radroots account selection update",
+ "account",
+ "account_selection_update",
+ "AccountSelectionUpdateRequest",
+ "AccountSelectionUpdateResult",
+ "Update selected account context.",
+ Any,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const ACCOUNT_SELECTION_CLEAR: OperationSpec = operation!(
+ "account.selection.clear",
+ "radroots account selection clear",
+ "account",
+ "account_selection_clear",
+ "AccountSelectionClearRequest",
+ "AccountSelectionClearResult",
+ "Clear selected account context.",
+ Any,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
diff --git a/src/registry/basket.rs b/src/registry/basket.rs
@@ -0,0 +1,161 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const BASKET_CREATE: OperationSpec = operation!(
+ "basket.create",
+ "radroots basket create",
+ "basket",
+ "basket_create",
+ "BasketCreateRequest",
+ "BasketCreateResult",
+ "Create local basket.",
+ Buyer,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const BASKET_GET: OperationSpec = operation!(
+ "basket.get",
+ "radroots basket get",
+ "basket",
+ "basket_get",
+ "BasketGetRequest",
+ "BasketGetResult",
+ "Get local basket.",
+ Buyer,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const BASKET_LIST: OperationSpec = operation!(
+ "basket.list",
+ "radroots basket list",
+ "basket",
+ "basket_list",
+ "BasketListRequest",
+ "BasketListResult",
+ "List local baskets.",
+ Buyer,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
+
+pub const BASKET_ITEM_ADD: OperationSpec = operation!(
+ "basket.item.add",
+ "radroots basket item add",
+ "basket",
+ "basket_item_add",
+ "BasketItemAddRequest",
+ "BasketItemAddResult",
+ "Add item to local basket.",
+ Buyer,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const BASKET_ITEM_UPDATE: OperationSpec = operation!(
+ "basket.item.update",
+ "radroots basket item update",
+ "basket",
+ "basket_item_update",
+ "BasketItemUpdateRequest",
+ "BasketItemUpdateResult",
+ "Update local basket item.",
+ Buyer,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const BASKET_ITEM_REMOVE: OperationSpec = operation!(
+ "basket.item.remove",
+ "radroots basket item remove",
+ "basket",
+ "basket_item_remove",
+ "BasketItemRemoveRequest",
+ "BasketItemRemoveResult",
+ "Remove item from local basket.",
+ Buyer,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const BASKET_ADJUSTMENT_ADD: OperationSpec = operation!(
+ "basket.adjustment.add",
+ "radroots basket adjustment add",
+ "basket",
+ "basket_adjustment_add",
+ "BasketAdjustmentAddRequest",
+ "BasketAdjustmentAddResult",
+ "Add buyer basket adjustment.",
+ Buyer,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const BASKET_ADJUSTMENT_REMOVE: OperationSpec = operation!(
+ "basket.adjustment.remove",
+ "radroots basket adjustment remove",
+ "basket",
+ "basket_adjustment_remove",
+ "BasketAdjustmentRemoveRequest",
+ "BasketAdjustmentRemoveResult",
+ "Remove buyer basket adjustment.",
+ Buyer,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const BASKET_VALIDATE: OperationSpec = operation!(
+ "basket.validate",
+ "radroots basket validate",
+ "basket",
+ "basket_validate",
+ "BasketValidateRequest",
+ "BasketValidateResult",
+ "Validate basket orderability.",
+ Buyer,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const BASKET_QUOTE_CREATE: OperationSpec = operation!(
+ "basket.quote.create",
+ "radroots basket quote create",
+ "basket",
+ "basket_quote_create",
+ "BasketQuoteCreateRequest",
+ "BasketQuoteCreateResult",
+ "Create deterministic basket quote.",
+ Buyer,
+ true,
+ Conditional,
+ Medium,
+ false,
+ true
+);
diff --git a/src/registry/config.rs b/src/registry/config.rs
@@ -0,0 +1,17 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const CONFIG_GET: OperationSpec = operation!(
+ "config.get",
+ "radroots config get",
+ "config",
+ "config_get",
+ "ConfigGetRequest",
+ "ConfigGetResult",
+ "Read effective configuration.",
+ Any,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
diff --git a/src/registry/farm.rs b/src/registry/farm.rs
@@ -0,0 +1,129 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const FARM_CREATE: OperationSpec = operation!(
+ "farm.create",
+ "radroots farm create",
+ "farm",
+ "farm_create",
+ "FarmCreateRequest",
+ "FarmCreateResult",
+ "Create farm identity/profile resource.",
+ Seller,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const FARM_GET: OperationSpec = operation!(
+ "farm.get",
+ "radroots farm get",
+ "farm",
+ "farm_get",
+ "FarmGetRequest",
+ "FarmGetResult",
+ "Get farm resource.",
+ Seller,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const FARM_REBIND: OperationSpec = operation!(
+ "farm.rebind",
+ "radroots farm rebind",
+ "farm",
+ "farm_rebind",
+ "FarmRebindRequest",
+ "FarmRebindResult",
+ "Rebind farm seller account.",
+ Seller,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const FARM_PROFILE_UPDATE: OperationSpec = operation!(
+ "farm.profile.update",
+ "radroots farm profile update",
+ "farm",
+ "farm_profile_update",
+ "FarmProfileUpdateRequest",
+ "FarmProfileUpdateResult",
+ "Update farm public profile fields.",
+ Seller,
+ true,
+ Conditional,
+ Medium,
+ false,
+ true
+);
+
+pub const FARM_LOCATION_UPDATE: OperationSpec = operation!(
+ "farm.location.update",
+ "radroots farm location update",
+ "farm",
+ "farm_location_update",
+ "FarmLocationUpdateRequest",
+ "FarmLocationUpdateResult",
+ "Update farm location fields.",
+ Seller,
+ true,
+ Conditional,
+ Medium,
+ false,
+ true
+);
+
+pub const FARM_FULFILLMENT_UPDATE: OperationSpec = operation!(
+ "farm.fulfillment.update",
+ "radroots farm fulfillment update",
+ "farm",
+ "farm_fulfillment_update",
+ "FarmFulfillmentUpdateRequest",
+ "FarmFulfillmentUpdateResult",
+ "Update farm fulfillment posture.",
+ Seller,
+ true,
+ Conditional,
+ Medium,
+ false,
+ true
+);
+
+pub const FARM_READINESS_CHECK: OperationSpec = operation!(
+ "farm.readiness.check",
+ "radroots farm readiness check",
+ "farm",
+ "farm_readiness_check",
+ "FarmReadinessCheckRequest",
+ "FarmReadinessCheckResult",
+ "Check whether farm is publish-ready.",
+ Seller,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const FARM_PUBLISH: OperationSpec = operation!(
+ "farm.publish",
+ "radroots farm publish",
+ "farm",
+ "farm_publish",
+ "FarmPublishRequest",
+ "FarmPublishResult",
+ "Publish farm identity/profile externally.",
+ Seller,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
diff --git a/src/registry/health.rs b/src/registry/health.rs
@@ -0,0 +1,33 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const HEALTH_STATUS_GET: OperationSpec = operation!(
+ "health.status.get",
+ "radroots health status get",
+ "health",
+ "health_status_get",
+ "HealthStatusGetRequest",
+ "HealthStatusGetResult",
+ "Get concise health and readiness status.",
+ Any,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
+
+pub const HEALTH_CHECK_RUN: OperationSpec = operation!(
+ "health.check.run",
+ "radroots health check run",
+ "health",
+ "health_check_run",
+ "HealthCheckRunRequest",
+ "HealthCheckRunResult",
+ "Run comprehensive diagnostics.",
+ Any,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
diff --git a/src/registry/listing.rs b/src/registry/listing.rs
@@ -0,0 +1,161 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const LISTING_CREATE: OperationSpec = operation!(
+ "listing.create",
+ "radroots listing create",
+ "listing",
+ "listing_create",
+ "ListingCreateRequest",
+ "ListingCreateResult",
+ "Create seller-owned listing/offer.",
+ Seller,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const LISTING_GET: OperationSpec = operation!(
+ "listing.get",
+ "radroots listing get",
+ "listing",
+ "listing_get",
+ "ListingGetRequest",
+ "ListingGetResult",
+ "Get seller-owned listing/offer.",
+ Seller,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const LISTING_LIST: OperationSpec = operation!(
+ "listing.list",
+ "radroots listing list",
+ "listing",
+ "listing_list",
+ "ListingListRequest",
+ "ListingListResult",
+ "List seller-owned listings/offers.",
+ Seller,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
+
+pub const LISTING_APP_LIST: OperationSpec = operation!(
+ "listing.app.list",
+ "radroots listing app list",
+ "listing",
+ "listing_app_list",
+ "ListingAppListRequest",
+ "ListingAppListResult",
+ "List app-authored shared local listing records.",
+ Seller,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const LISTING_APP_EXPORT: OperationSpec = operation!(
+ "listing.app.export",
+ "radroots listing app export",
+ "listing",
+ "listing_app_export",
+ "ListingAppExportRequest",
+ "ListingAppExportResult",
+ "Export an app-authored shared listing record as a CLI draft.",
+ Seller,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const LISTING_UPDATE: OperationSpec = operation!(
+ "listing.update",
+ "radroots listing update",
+ "listing",
+ "listing_update",
+ "ListingUpdateRequest",
+ "ListingUpdateResult",
+ "Update general listing fields.",
+ Seller,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const LISTING_VALIDATE: OperationSpec = operation!(
+ "listing.validate",
+ "radroots listing validate",
+ "listing",
+ "listing_validate",
+ "ListingValidateRequest",
+ "ListingValidateResult",
+ "Validate listing for publication or orderability.",
+ Seller,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const LISTING_REBIND: OperationSpec = operation!(
+ "listing.rebind",
+ "radroots listing rebind",
+ "listing",
+ "listing_rebind",
+ "ListingRebindRequest",
+ "ListingRebindResult",
+ "Rebind a listing draft to an explicit seller actor.",
+ Seller,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const LISTING_PUBLISH: OperationSpec = operation!(
+ "listing.publish",
+ "radroots listing publish",
+ "listing",
+ "listing_publish",
+ "ListingPublishRequest",
+ "ListingPublishResult",
+ "Publish listing externally.",
+ Seller,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const LISTING_ARCHIVE: OperationSpec = operation!(
+ "listing.archive",
+ "radroots listing archive",
+ "listing",
+ "listing_archive",
+ "ListingArchiveRequest",
+ "ListingArchiveResult",
+ "Archive listing resource.",
+ Seller,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
diff --git a/src/registry/market.rs b/src/registry/market.rs
@@ -0,0 +1,49 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const MARKET_REFRESH: OperationSpec = operation!(
+ "market.refresh",
+ "radroots market refresh",
+ "market",
+ "market_refresh",
+ "MarketRefreshRequest",
+ "MarketRefreshResult",
+ "Refresh local market projection.",
+ Buyer,
+ true,
+ None,
+ Medium,
+ true,
+ true
+);
+
+pub const MARKET_PRODUCT_SEARCH: OperationSpec = operation!(
+ "market.product.search",
+ "radroots market product search",
+ "market",
+ "market_product_search",
+ "MarketProductSearchRequest",
+ "MarketProductSearchResult",
+ "Search market products/listings.",
+ Buyer,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
+
+pub const MARKET_LISTING_GET: OperationSpec = operation!(
+ "market.listing.get",
+ "radroots market listing get",
+ "market",
+ "market_listing_get",
+ "MarketListingGetRequest",
+ "MarketListingGetResult",
+ "Get market listing details.",
+ Buyer,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
diff --git a/src/registry/mod.rs b/src/registry/mod.rs
@@ -81,1177 +81,100 @@ macro_rules! operation {
};
}
+mod account;
+mod basket;
+mod config;
+mod farm;
+mod health;
+mod listing;
+mod market;
+mod order;
+mod relay;
+mod signer;
+mod store;
+mod sync;
+mod validation;
+mod workspace;
+
pub const OPERATION_REGISTRY: &[OperationSpec] = &[
- operation!(
- "workspace.init",
- "radroots workspace init",
- "workspace",
- "workspace_init",
- "WorkspaceInitRequest",
- "WorkspaceInitResult",
- "Initialize a local workspace/profile.",
- Any,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "workspace.get",
- "radroots workspace get",
- "workspace",
- "workspace_get",
- "WorkspaceGetRequest",
- "WorkspaceGetResult",
- "Read workspace/profile configuration and current context.",
- Any,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "health.status.get",
- "radroots health status get",
- "health",
- "health_status_get",
- "HealthStatusGetRequest",
- "HealthStatusGetResult",
- "Get concise health and readiness status.",
- Any,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "health.check.run",
- "radroots health check run",
- "health",
- "health_check_run",
- "HealthCheckRunRequest",
- "HealthCheckRunResult",
- "Run comprehensive diagnostics.",
- Any,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "config.get",
- "radroots config get",
- "config",
- "config_get",
- "ConfigGetRequest",
- "ConfigGetResult",
- "Read effective configuration.",
- Any,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "account.create",
- "radroots account create",
- "account",
- "account_create",
- "AccountCreateRequest",
- "AccountCreateResult",
- "Create a local account identity.",
- Any,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "account.import",
- "radroots account import",
- "account",
- "account_import",
- "AccountImportRequest",
- "AccountImportResult",
- "Import an existing account identity.",
- Any,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "account.attach_secret",
- "radroots account attach-secret",
- "account",
- "account_attach_secret",
- "AccountAttachSecretRequest",
- "AccountAttachSecretResult",
- "Attach local secret custody to an existing account.",
- Any,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "account.get",
- "radroots account get",
- "account",
- "account_get",
- "AccountGetRequest",
- "AccountGetResult",
- "Get account details.",
- Any,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "account.list",
- "radroots account list",
- "account",
- "account_list",
- "AccountListRequest",
- "AccountListResult",
- "List known local accounts.",
- Any,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "account.remove",
- "radroots account remove",
- "account",
- "account_remove",
- "AccountRemoveRequest",
- "AccountRemoveResult",
- "Remove an account from local configuration/store.",
- Any,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "account.selection.get",
- "radroots account selection get",
- "account",
- "account_selection_get",
- "AccountSelectionGetRequest",
- "AccountSelectionGetResult",
- "Get selected account context.",
- Any,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "account.selection.update",
- "radroots account selection update",
- "account",
- "account_selection_update",
- "AccountSelectionUpdateRequest",
- "AccountSelectionUpdateResult",
- "Update selected account context.",
- Any,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "account.selection.clear",
- "radroots account selection clear",
- "account",
- "account_selection_clear",
- "AccountSelectionClearRequest",
- "AccountSelectionClearResult",
- "Clear selected account context.",
- Any,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "signer.status.get",
- "radroots signer status get",
- "signer",
- "signer_status_get",
- "SignerStatusGetRequest",
- "SignerStatusGetResult",
- "Get signer availability and permission status.",
- Any,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "relay.list",
- "radroots relay list",
- "relay",
- "relay_list",
- "RelayListRequest",
- "RelayListResult",
- "List configured relays.",
- Any,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "store.init",
- "radroots store init",
- "store",
- "store_init",
- "StoreInitRequest",
- "StoreInitResult",
- "Initialize local store.",
- Any,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "store.status.get",
- "radroots store status get",
- "store",
- "store_status_get",
- "StoreStatusGetRequest",
- "StoreStatusGetResult",
- "Read local store status.",
- Any,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "store.export",
- "radroots store export",
- "store",
- "store_export",
- "StoreExportRequest",
- "StoreExportResult",
- "Export local store data according to filters/policy.",
- Any,
- false,
- Conditional,
- Medium,
- false,
- false
- ),
- operation!(
- "store.backup.create",
- "radroots store backup create",
- "store",
- "store_backup_create",
- "StoreBackupCreateRequest",
- "StoreBackupCreateResult",
- "Create local store backup.",
- Any,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "sync.status.get",
- "radroots sync status get",
- "sync",
- "sync_status_get",
- "SyncStatusGetRequest",
- "SyncStatusGetResult",
- "Read sync status.",
- Any,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "sync.pull",
- "radroots sync pull",
- "sync",
- "sync_pull",
- "SyncPullRequest",
- "SyncPullResult",
- "Pull remote updates into local store.",
- Any,
- true,
- None,
- Medium,
- true,
- true
- ),
- operation!(
- "sync.push",
- "radroots sync push",
- "sync",
- "sync_push",
- "SyncPushRequest",
- "SyncPushResult",
- "Push local signed updates to relays.",
- Any,
- true,
- Required,
- High,
- true,
- true
- ),
- operation!(
- "sync.watch",
- "radroots sync watch",
- "sync",
- "sync_watch",
- "SyncWatchRequest",
- "SyncWatchResult",
- "Stream sync events.",
- Any,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "farm.create",
- "radroots farm create",
- "farm",
- "farm_create",
- "FarmCreateRequest",
- "FarmCreateResult",
- "Create farm identity/profile resource.",
- Seller,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "farm.get",
- "radroots farm get",
- "farm",
- "farm_get",
- "FarmGetRequest",
- "FarmGetResult",
- "Get farm resource.",
- Seller,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "farm.rebind",
- "radroots farm rebind",
- "farm",
- "farm_rebind",
- "FarmRebindRequest",
- "FarmRebindResult",
- "Rebind farm seller account.",
- Seller,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "farm.profile.update",
- "radroots farm profile update",
- "farm",
- "farm_profile_update",
- "FarmProfileUpdateRequest",
- "FarmProfileUpdateResult",
- "Update farm public profile fields.",
- Seller,
- true,
- Conditional,
- Medium,
- false,
- true
- ),
- operation!(
- "farm.location.update",
- "radroots farm location update",
- "farm",
- "farm_location_update",
- "FarmLocationUpdateRequest",
- "FarmLocationUpdateResult",
- "Update farm location fields.",
- Seller,
- true,
- Conditional,
- Medium,
- false,
- true
- ),
- operation!(
- "farm.fulfillment.update",
- "radroots farm fulfillment update",
- "farm",
- "farm_fulfillment_update",
- "FarmFulfillmentUpdateRequest",
- "FarmFulfillmentUpdateResult",
- "Update farm fulfillment posture.",
- Seller,
- true,
- Conditional,
- Medium,
- false,
- true
- ),
- operation!(
- "farm.readiness.check",
- "radroots farm readiness check",
- "farm",
- "farm_readiness_check",
- "FarmReadinessCheckRequest",
- "FarmReadinessCheckResult",
- "Check whether farm is publish-ready.",
- Seller,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "farm.publish",
- "radroots farm publish",
- "farm",
- "farm_publish",
- "FarmPublishRequest",
- "FarmPublishResult",
- "Publish farm identity/profile externally.",
- Seller,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "listing.create",
- "radroots listing create",
- "listing",
- "listing_create",
- "ListingCreateRequest",
- "ListingCreateResult",
- "Create seller-owned listing/offer.",
- Seller,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "listing.get",
- "radroots listing get",
- "listing",
- "listing_get",
- "ListingGetRequest",
- "ListingGetResult",
- "Get seller-owned listing/offer.",
- Seller,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "listing.list",
- "radroots listing list",
- "listing",
- "listing_list",
- "ListingListRequest",
- "ListingListResult",
- "List seller-owned listings/offers.",
- Seller,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "listing.app.list",
- "radroots listing app list",
- "listing",
- "listing_app_list",
- "ListingAppListRequest",
- "ListingAppListResult",
- "List app-authored shared local listing records.",
- Seller,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "listing.app.export",
- "radroots listing app export",
- "listing",
- "listing_app_export",
- "ListingAppExportRequest",
- "ListingAppExportResult",
- "Export an app-authored shared listing record as a CLI draft.",
- Seller,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "listing.update",
- "radroots listing update",
- "listing",
- "listing_update",
- "ListingUpdateRequest",
- "ListingUpdateResult",
- "Update general listing fields.",
- Seller,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "listing.validate",
- "radroots listing validate",
- "listing",
- "listing_validate",
- "ListingValidateRequest",
- "ListingValidateResult",
- "Validate listing for publication or orderability.",
- Seller,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "listing.rebind",
- "radroots listing rebind",
- "listing",
- "listing_rebind",
- "ListingRebindRequest",
- "ListingRebindResult",
- "Rebind a listing draft to an explicit seller actor.",
- Seller,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "listing.publish",
- "radroots listing publish",
- "listing",
- "listing_publish",
- "ListingPublishRequest",
- "ListingPublishResult",
- "Publish listing externally.",
- Seller,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "listing.archive",
- "radroots listing archive",
- "listing",
- "listing_archive",
- "ListingArchiveRequest",
- "ListingArchiveResult",
- "Archive listing resource.",
- Seller,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "market.refresh",
- "radroots market refresh",
- "market",
- "market_refresh",
- "MarketRefreshRequest",
- "MarketRefreshResult",
- "Refresh local market projection.",
- Buyer,
- true,
- None,
- Medium,
- true,
- true
- ),
- operation!(
- "market.product.search",
- "radroots market product search",
- "market",
- "market_product_search",
- "MarketProductSearchRequest",
- "MarketProductSearchResult",
- "Search market products/listings.",
- Buyer,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "market.listing.get",
- "radroots market listing get",
- "market",
- "market_listing_get",
- "MarketListingGetRequest",
- "MarketListingGetResult",
- "Get market listing details.",
- Buyer,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "basket.create",
- "radroots basket create",
- "basket",
- "basket_create",
- "BasketCreateRequest",
- "BasketCreateResult",
- "Create local basket.",
- Buyer,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "basket.get",
- "radroots basket get",
- "basket",
- "basket_get",
- "BasketGetRequest",
- "BasketGetResult",
- "Get local basket.",
- Buyer,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "basket.list",
- "radroots basket list",
- "basket",
- "basket_list",
- "BasketListRequest",
- "BasketListResult",
- "List local baskets.",
- Buyer,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "basket.item.add",
- "radroots basket item add",
- "basket",
- "basket_item_add",
- "BasketItemAddRequest",
- "BasketItemAddResult",
- "Add item to local basket.",
- Buyer,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "basket.item.update",
- "radroots basket item update",
- "basket",
- "basket_item_update",
- "BasketItemUpdateRequest",
- "BasketItemUpdateResult",
- "Update local basket item.",
- Buyer,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "basket.item.remove",
- "radroots basket item remove",
- "basket",
- "basket_item_remove",
- "BasketItemRemoveRequest",
- "BasketItemRemoveResult",
- "Remove item from local basket.",
- Buyer,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "basket.adjustment.add",
- "radroots basket adjustment add",
- "basket",
- "basket_adjustment_add",
- "BasketAdjustmentAddRequest",
- "BasketAdjustmentAddResult",
- "Add buyer basket adjustment.",
- Buyer,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "basket.adjustment.remove",
- "radroots basket adjustment remove",
- "basket",
- "basket_adjustment_remove",
- "BasketAdjustmentRemoveRequest",
- "BasketAdjustmentRemoveResult",
- "Remove buyer basket adjustment.",
- Buyer,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "basket.validate",
- "radroots basket validate",
- "basket",
- "basket_validate",
- "BasketValidateRequest",
- "BasketValidateResult",
- "Validate basket orderability.",
- Buyer,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "basket.quote.create",
- "radroots basket quote create",
- "basket",
- "basket_quote_create",
- "BasketQuoteCreateRequest",
- "BasketQuoteCreateResult",
- "Create deterministic basket quote.",
- Buyer,
- true,
- Conditional,
- Medium,
- false,
- true
- ),
- operation!(
- "order.submit",
- "radroots order submit",
- "order",
- "order_submit",
- "OrderSubmitRequest",
- "OrderSubmitResult",
- "Submit quoted basket as an order.",
- Buyer,
- true,
- Required,
- Critical,
- false,
- true
- ),
- operation!(
- "order.get",
- "radroots order get",
- "order",
- "order_get",
- "OrderGetRequest",
- "OrderGetResult",
- "Get order details.",
- Buyer,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "order.list",
- "radroots order list",
- "order",
- "order_list",
- "OrderListRequest",
- "OrderListResult",
- "List orders.",
- Any,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "order.app.list",
- "radroots order app list",
- "order",
- "order_app_list",
- "OrderAppListRequest",
- "OrderAppListResult",
- "List app-authored shared local order records.",
- Buyer,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "order.app.export",
- "radroots order app export",
- "order",
- "order_app_export",
- "OrderAppExportRequest",
- "OrderAppExportResult",
- "Export an app-authored shared order record as a CLI draft.",
- Buyer,
- true,
- None,
- Medium,
- false,
- true
- ),
- operation!(
- "order.rebind",
- "radroots order rebind",
- "order",
- "order_rebind",
- "OrderRebindRequest",
- "OrderRebindResult",
- "Rebind a local order draft to an explicit buyer actor.",
- Buyer,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "order.accept",
- "radroots order accept",
- "order",
- "order_accept",
- "OrderAcceptRequest",
- "OrderAcceptResult",
- "Accept a buyer order request.",
- Seller,
- true,
- Required,
- Critical,
- false,
- true
- ),
- operation!(
- "order.decline",
- "radroots order decline",
- "order",
- "order_decline",
- "OrderDeclineRequest",
- "OrderDeclineResult",
- "Decline a buyer order request.",
- Seller,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "order.cancel",
- "radroots order cancel",
- "order",
- "order_cancel",
- "OrderCancelRequest",
- "OrderCancelResult",
- "Cancel a buyer order before fulfillment.",
- Buyer,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "order.revision.propose",
- "radroots order revision propose",
- "order",
- "order_revision_propose",
- "OrderRevisionProposeRequest",
- "OrderRevisionProposeResult",
- "Propose seller-authored order revision.",
- Seller,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "order.revision.accept",
- "radroots order revision accept",
- "order",
- "order_revision_accept",
- "OrderRevisionAcceptRequest",
- "OrderRevisionAcceptResult",
- "Accept a seller-authored order revision.",
- Buyer,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "order.revision.decline",
- "radroots order revision decline",
- "order",
- "order_revision_decline",
- "OrderRevisionDeclineRequest",
- "OrderRevisionDeclineResult",
- "Decline a seller-authored order revision.",
- Buyer,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "order.fulfillment.update",
- "radroots order fulfillment update",
- "order",
- "order_fulfillment_update",
- "OrderFulfillmentUpdateRequest",
- "OrderFulfillmentUpdateResult",
- "Update seller-authored order fulfillment state.",
- Seller,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "order.receipt.record",
- "radroots order receipt record",
- "order",
- "order_receipt_record",
- "OrderReceiptRecordRequest",
- "OrderReceiptRecordResult",
- "Record buyer receipt outcome.",
- Buyer,
- true,
- Required,
- High,
- false,
- true
- ),
- operation!(
- "order.payment.record",
- "radroots order payment record",
- "order",
- "order_payment_record",
- "OrderPaymentRecordRequest",
- "OrderPaymentRecordResult",
- "Reserved future buyer manual payment command.",
- Buyer,
- false,
- None,
- Low,
- false,
- true
- ),
- operation!(
- "order.settlement.accept",
- "radroots order settlement accept",
- "order",
- "order_settlement_accept",
- "OrderSettlementAcceptRequest",
- "OrderSettlementAcceptResult",
- "Reserved future seller settlement acceptance command.",
- Seller,
- false,
- None,
- Low,
- false,
- true
- ),
- operation!(
- "order.settlement.reject",
- "radroots order settlement reject",
- "order",
- "order_settlement_reject",
- "OrderSettlementRejectRequest",
- "OrderSettlementRejectResult",
- "Reserved future seller settlement rejection command.",
- Seller,
- false,
- None,
- Low,
- false,
- true
- ),
- operation!(
- "order.status.get",
- "radroots order status get",
- "order",
- "order_status_get",
- "OrderStatusGetRequest",
- "OrderStatusGetResult",
- "Get reducer-derived order status.",
- Any,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "order.event.list",
- "radroots order event list",
- "order",
- "order_event_list",
- "OrderEventListRequest",
- "OrderEventListResult",
- "List order events.",
- Any,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "order.event.watch",
- "radroots order event watch",
- "order",
- "order_event_watch",
- "OrderEventWatchRequest",
- "OrderEventWatchResult",
- "Report deferred order event watch status.",
- Any,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "validation.receipt.get",
- "radroots validation receipt get",
- "validation",
- "validation_receipt_get",
- "ValidationReceiptGetRequest",
- "ValidationReceiptGetResult",
- "Fetch and inspect one validation receipt event.",
- Any,
- false,
- None,
- Low,
- false,
- false
- ),
- operation!(
- "validation.receipt.list",
- "radroots validation receipt list",
- "validation",
- "validation_receipt_list",
- "ValidationReceiptListRequest",
- "ValidationReceiptListResult",
- "List validation receipts for one order.",
- Any,
- false,
- None,
- Low,
- true,
- false
- ),
- operation!(
- "validation.receipt.verify",
- "radroots validation receipt verify",
- "validation",
- "validation_receipt_verify",
- "ValidationReceiptVerifyRequest",
- "ValidationReceiptVerifyResult",
- "Verify validation receipt tags, payload, and proof binding.",
- Any,
- false,
- None,
- Low,
- false,
- false
- ),
+ workspace::WORKSPACE_INIT,
+ workspace::WORKSPACE_GET,
+ health::HEALTH_STATUS_GET,
+ health::HEALTH_CHECK_RUN,
+ config::CONFIG_GET,
+ account::ACCOUNT_CREATE,
+ account::ACCOUNT_IMPORT,
+ account::ACCOUNT_ATTACH_SECRET,
+ account::ACCOUNT_GET,
+ account::ACCOUNT_LIST,
+ account::ACCOUNT_REMOVE,
+ account::ACCOUNT_SELECTION_GET,
+ account::ACCOUNT_SELECTION_UPDATE,
+ account::ACCOUNT_SELECTION_CLEAR,
+ signer::SIGNER_STATUS_GET,
+ relay::RELAY_LIST,
+ store::STORE_INIT,
+ store::STORE_STATUS_GET,
+ store::STORE_EXPORT,
+ store::STORE_BACKUP_CREATE,
+ sync::SYNC_STATUS_GET,
+ sync::SYNC_PULL,
+ sync::SYNC_PUSH,
+ sync::SYNC_WATCH,
+ farm::FARM_CREATE,
+ farm::FARM_GET,
+ farm::FARM_REBIND,
+ farm::FARM_PROFILE_UPDATE,
+ farm::FARM_LOCATION_UPDATE,
+ farm::FARM_FULFILLMENT_UPDATE,
+ farm::FARM_READINESS_CHECK,
+ farm::FARM_PUBLISH,
+ listing::LISTING_CREATE,
+ listing::LISTING_GET,
+ listing::LISTING_LIST,
+ listing::LISTING_APP_LIST,
+ listing::LISTING_APP_EXPORT,
+ listing::LISTING_UPDATE,
+ listing::LISTING_VALIDATE,
+ listing::LISTING_REBIND,
+ listing::LISTING_PUBLISH,
+ listing::LISTING_ARCHIVE,
+ market::MARKET_REFRESH,
+ market::MARKET_PRODUCT_SEARCH,
+ market::MARKET_LISTING_GET,
+ basket::BASKET_CREATE,
+ basket::BASKET_GET,
+ basket::BASKET_LIST,
+ basket::BASKET_ITEM_ADD,
+ basket::BASKET_ITEM_UPDATE,
+ basket::BASKET_ITEM_REMOVE,
+ basket::BASKET_ADJUSTMENT_ADD,
+ basket::BASKET_ADJUSTMENT_REMOVE,
+ basket::BASKET_VALIDATE,
+ basket::BASKET_QUOTE_CREATE,
+ order::ORDER_SUBMIT,
+ order::ORDER_GET,
+ order::ORDER_LIST,
+ order::ORDER_APP_LIST,
+ order::ORDER_APP_EXPORT,
+ order::ORDER_REBIND,
+ order::ORDER_ACCEPT,
+ order::ORDER_DECLINE,
+ order::ORDER_CANCEL,
+ order::ORDER_REVISION_PROPOSE,
+ order::ORDER_REVISION_ACCEPT,
+ order::ORDER_REVISION_DECLINE,
+ order::ORDER_FULFILLMENT_UPDATE,
+ order::ORDER_RECEIPT_RECORD,
+ order::ORDER_PAYMENT_RECORD,
+ order::ORDER_SETTLEMENT_ACCEPT,
+ order::ORDER_SETTLEMENT_REJECT,
+ order::ORDER_STATUS_GET,
+ order::ORDER_EVENT_LIST,
+ order::ORDER_EVENT_WATCH,
+ validation::VALIDATION_RECEIPT_GET,
+ validation::VALIDATION_RECEIPT_LIST,
+ validation::VALIDATION_RECEIPT_VERIFY,
];
pub fn get_operation(operation_id: &str) -> Option<&'static OperationSpec> {
diff --git a/src/registry/order.rs b/src/registry/order.rs
@@ -0,0 +1,321 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const ORDER_SUBMIT: OperationSpec = operation!(
+ "order.submit",
+ "radroots order submit",
+ "order",
+ "order_submit",
+ "OrderSubmitRequest",
+ "OrderSubmitResult",
+ "Submit quoted basket as an order.",
+ Buyer,
+ true,
+ Required,
+ Critical,
+ false,
+ true
+);
+
+pub const ORDER_GET: OperationSpec = operation!(
+ "order.get",
+ "radroots order get",
+ "order",
+ "order_get",
+ "OrderGetRequest",
+ "OrderGetResult",
+ "Get order details.",
+ Buyer,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const ORDER_LIST: OperationSpec = operation!(
+ "order.list",
+ "radroots order list",
+ "order",
+ "order_list",
+ "OrderListRequest",
+ "OrderListResult",
+ "List orders.",
+ Any,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
+
+pub const ORDER_APP_LIST: OperationSpec = operation!(
+ "order.app.list",
+ "radroots order app list",
+ "order",
+ "order_app_list",
+ "OrderAppListRequest",
+ "OrderAppListResult",
+ "List app-authored shared local order records.",
+ Buyer,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const ORDER_APP_EXPORT: OperationSpec = operation!(
+ "order.app.export",
+ "radroots order app export",
+ "order",
+ "order_app_export",
+ "OrderAppExportRequest",
+ "OrderAppExportResult",
+ "Export an app-authored shared order record as a CLI draft.",
+ Buyer,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const ORDER_REBIND: OperationSpec = operation!(
+ "order.rebind",
+ "radroots order rebind",
+ "order",
+ "order_rebind",
+ "OrderRebindRequest",
+ "OrderRebindResult",
+ "Rebind a local order draft to an explicit buyer actor.",
+ Buyer,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const ORDER_ACCEPT: OperationSpec = operation!(
+ "order.accept",
+ "radroots order accept",
+ "order",
+ "order_accept",
+ "OrderAcceptRequest",
+ "OrderAcceptResult",
+ "Accept a buyer order request.",
+ Seller,
+ true,
+ Required,
+ Critical,
+ false,
+ true
+);
+
+pub const ORDER_DECLINE: OperationSpec = operation!(
+ "order.decline",
+ "radroots order decline",
+ "order",
+ "order_decline",
+ "OrderDeclineRequest",
+ "OrderDeclineResult",
+ "Decline a buyer order request.",
+ Seller,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const ORDER_CANCEL: OperationSpec = operation!(
+ "order.cancel",
+ "radroots order cancel",
+ "order",
+ "order_cancel",
+ "OrderCancelRequest",
+ "OrderCancelResult",
+ "Cancel a buyer order before fulfillment.",
+ Buyer,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const ORDER_REVISION_PROPOSE: OperationSpec = operation!(
+ "order.revision.propose",
+ "radroots order revision propose",
+ "order",
+ "order_revision_propose",
+ "OrderRevisionProposeRequest",
+ "OrderRevisionProposeResult",
+ "Propose seller-authored order revision.",
+ Seller,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const ORDER_REVISION_ACCEPT: OperationSpec = operation!(
+ "order.revision.accept",
+ "radroots order revision accept",
+ "order",
+ "order_revision_accept",
+ "OrderRevisionAcceptRequest",
+ "OrderRevisionAcceptResult",
+ "Accept a seller-authored order revision.",
+ Buyer,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const ORDER_REVISION_DECLINE: OperationSpec = operation!(
+ "order.revision.decline",
+ "radroots order revision decline",
+ "order",
+ "order_revision_decline",
+ "OrderRevisionDeclineRequest",
+ "OrderRevisionDeclineResult",
+ "Decline a seller-authored order revision.",
+ Buyer,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const ORDER_FULFILLMENT_UPDATE: OperationSpec = operation!(
+ "order.fulfillment.update",
+ "radroots order fulfillment update",
+ "order",
+ "order_fulfillment_update",
+ "OrderFulfillmentUpdateRequest",
+ "OrderFulfillmentUpdateResult",
+ "Update seller-authored order fulfillment state.",
+ Seller,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const ORDER_RECEIPT_RECORD: OperationSpec = operation!(
+ "order.receipt.record",
+ "radroots order receipt record",
+ "order",
+ "order_receipt_record",
+ "OrderReceiptRecordRequest",
+ "OrderReceiptRecordResult",
+ "Record buyer receipt outcome.",
+ Buyer,
+ true,
+ Required,
+ High,
+ false,
+ true
+);
+
+pub const ORDER_PAYMENT_RECORD: OperationSpec = operation!(
+ "order.payment.record",
+ "radroots order payment record",
+ "order",
+ "order_payment_record",
+ "OrderPaymentRecordRequest",
+ "OrderPaymentRecordResult",
+ "Reserved future buyer manual payment command.",
+ Buyer,
+ false,
+ None,
+ Low,
+ false,
+ true
+);
+
+pub const ORDER_SETTLEMENT_ACCEPT: OperationSpec = operation!(
+ "order.settlement.accept",
+ "radroots order settlement accept",
+ "order",
+ "order_settlement_accept",
+ "OrderSettlementAcceptRequest",
+ "OrderSettlementAcceptResult",
+ "Reserved future seller settlement acceptance command.",
+ Seller,
+ false,
+ None,
+ Low,
+ false,
+ true
+);
+
+pub const ORDER_SETTLEMENT_REJECT: OperationSpec = operation!(
+ "order.settlement.reject",
+ "radroots order settlement reject",
+ "order",
+ "order_settlement_reject",
+ "OrderSettlementRejectRequest",
+ "OrderSettlementRejectResult",
+ "Reserved future seller settlement rejection command.",
+ Seller,
+ false,
+ None,
+ Low,
+ false,
+ true
+);
+
+pub const ORDER_STATUS_GET: OperationSpec = operation!(
+ "order.status.get",
+ "radroots order status get",
+ "order",
+ "order_status_get",
+ "OrderStatusGetRequest",
+ "OrderStatusGetResult",
+ "Get reducer-derived order status.",
+ Any,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const ORDER_EVENT_LIST: OperationSpec = operation!(
+ "order.event.list",
+ "radroots order event list",
+ "order",
+ "order_event_list",
+ "OrderEventListRequest",
+ "OrderEventListResult",
+ "List order events.",
+ Any,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
+
+pub const ORDER_EVENT_WATCH: OperationSpec = operation!(
+ "order.event.watch",
+ "radroots order event watch",
+ "order",
+ "order_event_watch",
+ "OrderEventWatchRequest",
+ "OrderEventWatchResult",
+ "Report deferred order event watch status.",
+ Any,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
diff --git a/src/registry/relay.rs b/src/registry/relay.rs
@@ -0,0 +1,17 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const RELAY_LIST: OperationSpec = operation!(
+ "relay.list",
+ "radroots relay list",
+ "relay",
+ "relay_list",
+ "RelayListRequest",
+ "RelayListResult",
+ "List configured relays.",
+ Any,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
diff --git a/src/registry/signer.rs b/src/registry/signer.rs
@@ -0,0 +1,17 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const SIGNER_STATUS_GET: OperationSpec = operation!(
+ "signer.status.get",
+ "radroots signer status get",
+ "signer",
+ "signer_status_get",
+ "SignerStatusGetRequest",
+ "SignerStatusGetResult",
+ "Get signer availability and permission status.",
+ Any,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
diff --git a/src/registry/store.rs b/src/registry/store.rs
@@ -0,0 +1,65 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const STORE_INIT: OperationSpec = operation!(
+ "store.init",
+ "radroots store init",
+ "store",
+ "store_init",
+ "StoreInitRequest",
+ "StoreInitResult",
+ "Initialize local store.",
+ Any,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const STORE_STATUS_GET: OperationSpec = operation!(
+ "store.status.get",
+ "radroots store status get",
+ "store",
+ "store_status_get",
+ "StoreStatusGetRequest",
+ "StoreStatusGetResult",
+ "Read local store status.",
+ Any,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const STORE_EXPORT: OperationSpec = operation!(
+ "store.export",
+ "radroots store export",
+ "store",
+ "store_export",
+ "StoreExportRequest",
+ "StoreExportResult",
+ "Export local store data according to filters/policy.",
+ Any,
+ false,
+ Conditional,
+ Medium,
+ false,
+ false
+);
+
+pub const STORE_BACKUP_CREATE: OperationSpec = operation!(
+ "store.backup.create",
+ "radroots store backup create",
+ "store",
+ "store_backup_create",
+ "StoreBackupCreateRequest",
+ "StoreBackupCreateResult",
+ "Create local store backup.",
+ Any,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
diff --git a/src/registry/sync.rs b/src/registry/sync.rs
@@ -0,0 +1,65 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const SYNC_STATUS_GET: OperationSpec = operation!(
+ "sync.status.get",
+ "radroots sync status get",
+ "sync",
+ "sync_status_get",
+ "SyncStatusGetRequest",
+ "SyncStatusGetResult",
+ "Read sync status.",
+ Any,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const SYNC_PULL: OperationSpec = operation!(
+ "sync.pull",
+ "radroots sync pull",
+ "sync",
+ "sync_pull",
+ "SyncPullRequest",
+ "SyncPullResult",
+ "Pull remote updates into local store.",
+ Any,
+ true,
+ None,
+ Medium,
+ true,
+ true
+);
+
+pub const SYNC_PUSH: OperationSpec = operation!(
+ "sync.push",
+ "radroots sync push",
+ "sync",
+ "sync_push",
+ "SyncPushRequest",
+ "SyncPushResult",
+ "Push local signed updates to relays.",
+ Any,
+ true,
+ Required,
+ High,
+ true,
+ true
+);
+
+pub const SYNC_WATCH: OperationSpec = operation!(
+ "sync.watch",
+ "radroots sync watch",
+ "sync",
+ "sync_watch",
+ "SyncWatchRequest",
+ "SyncWatchResult",
+ "Stream sync events.",
+ Any,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
diff --git a/src/registry/validation.rs b/src/registry/validation.rs
@@ -0,0 +1,49 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const VALIDATION_RECEIPT_GET: OperationSpec = operation!(
+ "validation.receipt.get",
+ "radroots validation receipt get",
+ "validation",
+ "validation_receipt_get",
+ "ValidationReceiptGetRequest",
+ "ValidationReceiptGetResult",
+ "Fetch and inspect one validation receipt event.",
+ Any,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
+
+pub const VALIDATION_RECEIPT_LIST: OperationSpec = operation!(
+ "validation.receipt.list",
+ "radroots validation receipt list",
+ "validation",
+ "validation_receipt_list",
+ "ValidationReceiptListRequest",
+ "ValidationReceiptListResult",
+ "List validation receipts for one order.",
+ Any,
+ false,
+ None,
+ Low,
+ true,
+ false
+);
+
+pub const VALIDATION_RECEIPT_VERIFY: OperationSpec = operation!(
+ "validation.receipt.verify",
+ "radroots validation receipt verify",
+ "validation",
+ "validation_receipt_verify",
+ "ValidationReceiptVerifyRequest",
+ "ValidationReceiptVerifyResult",
+ "Verify validation receipt tags, payload, and proof binding.",
+ Any,
+ false,
+ None,
+ Low,
+ false,
+ false
+);
diff --git a/src/registry/workspace.rs b/src/registry/workspace.rs
@@ -0,0 +1,33 @@
+use super::{ApprovalPolicy, OperationRole, OperationSpec, RiskLevel};
+
+pub const WORKSPACE_INIT: OperationSpec = operation!(
+ "workspace.init",
+ "radroots workspace init",
+ "workspace",
+ "workspace_init",
+ "WorkspaceInitRequest",
+ "WorkspaceInitResult",
+ "Initialize a local workspace/profile.",
+ Any,
+ true,
+ None,
+ Medium,
+ false,
+ true
+);
+
+pub const WORKSPACE_GET: OperationSpec = operation!(
+ "workspace.get",
+ "radroots workspace get",
+ "workspace",
+ "workspace_get",
+ "WorkspaceGetRequest",
+ "WorkspaceGetResult",
+ "Read workspace/profile configuration and current context.",
+ Any,
+ false,
+ None,
+ Low,
+ false,
+ false
+);