cli

Command-line interface for Radroots
git clone https://radroots.dev/git/cli.git
Log | Files | Refs | README | LICENSE

commit 6922ee248c652334bdd2ec43fe8cc1f2438cfc1f
parent b631bd4920080404e45e1336859abf82c2e39898
Author: triesap <tyson@radroots.org>
Date:   Tue, 26 May 2026 20:20:23 +0000

registry: split operation metadata

Diffstat:
Asrc/registry/account.rs | 145+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/registry/basket.rs | 161+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/registry/config.rs | 17+++++++++++++++++
Asrc/registry/farm.rs | 129+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/registry/health.rs | 33+++++++++++++++++++++++++++++++++
Asrc/registry/listing.rs | 161+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/registry/market.rs | 49+++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/registry/mod.rs | 1263++++++-------------------------------------------------------------------------
Asrc/registry/order.rs | 321+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/registry/relay.rs | 17+++++++++++++++++
Asrc/registry/signer.rs | 17+++++++++++++++++
Asrc/registry/store.rs | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/registry/sync.rs | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/registry/validation.rs | 49+++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/registry/workspace.rs | 33+++++++++++++++++++++++++++++++++
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 +);