Add execution pacing profiles to offers and marketplace API
This commit is contained in:
parent
d1c60fe44e
commit
6bd8a004c9
@ -46,6 +46,11 @@ func (a *app) marketplaceOffers() []marketplaceOffer {
|
||||
MultiTenant: false,
|
||||
EntitlementClass: "solo_core",
|
||||
},
|
||||
ExecutionProfile: marketplaceExecutionProfile{
|
||||
ConnectorSurface: "hybrid",
|
||||
PacingTier: "governed_human_pace",
|
||||
HumanPaceFloorMS: 1200,
|
||||
},
|
||||
SortOrder: 10,
|
||||
},
|
||||
{
|
||||
@ -68,6 +73,11 @@ func (a *app) marketplaceOffers() []marketplaceOffer {
|
||||
MultiTenant: false,
|
||||
EntitlementClass: "workspace_core",
|
||||
},
|
||||
ExecutionProfile: marketplaceExecutionProfile{
|
||||
ConnectorSurface: "hybrid",
|
||||
PacingTier: "governed_human_pace",
|
||||
HumanPaceFloorMS: 1200,
|
||||
},
|
||||
SortOrder: 20,
|
||||
},
|
||||
{
|
||||
@ -91,6 +101,11 @@ func (a *app) marketplaceOffers() []marketplaceOffer {
|
||||
EntitlementClass: "workspace_ai",
|
||||
RequiresOffers: []string{offerIDWorkspaceCore},
|
||||
},
|
||||
ExecutionProfile: marketplaceExecutionProfile{
|
||||
ConnectorSurface: "hybrid",
|
||||
PacingTier: "governed_human_pace",
|
||||
HumanPaceFloorMS: 1200,
|
||||
},
|
||||
SortOrder: 30,
|
||||
},
|
||||
{
|
||||
@ -114,6 +129,10 @@ func (a *app) marketplaceOffers() []marketplaceOffer {
|
||||
EntitlementClass: "workspace_lane24",
|
||||
RequiresOffers: []string{offerIDWorkspaceCore},
|
||||
},
|
||||
ExecutionProfile: marketplaceExecutionProfile{
|
||||
ConnectorSurface: "edut_native",
|
||||
PacingTier: "local_hardware_speed",
|
||||
},
|
||||
SortOrder: 40,
|
||||
},
|
||||
{
|
||||
@ -137,6 +156,10 @@ func (a *app) marketplaceOffers() []marketplaceOffer {
|
||||
EntitlementClass: "workspace_sovereign",
|
||||
RequiresOffers: []string{offerIDWorkspaceCore},
|
||||
},
|
||||
ExecutionProfile: marketplaceExecutionProfile{
|
||||
ConnectorSurface: "edut_native",
|
||||
PacingTier: "local_hardware_speed",
|
||||
},
|
||||
SortOrder: 50,
|
||||
},
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ type marketplaceOffer struct {
|
||||
Status string `json:"status"`
|
||||
Pricing marketplaceOfferPrice `json:"pricing"`
|
||||
Policies marketplaceOfferPolicy `json:"policies"`
|
||||
ExecutionProfile marketplaceExecutionProfile `json:"execution_profile,omitempty"`
|
||||
SortOrder int `json:"-"`
|
||||
}
|
||||
|
||||
@ -30,6 +31,12 @@ type marketplaceOfferPolicy struct {
|
||||
RequiresOffers []string `json:"requires_offers,omitempty"`
|
||||
}
|
||||
|
||||
type marketplaceExecutionProfile struct {
|
||||
ConnectorSurface string `json:"connector_surface"`
|
||||
PacingTier string `json:"pacing_tier"`
|
||||
HumanPaceFloorMS int `json:"human_pace_floor_ms,omitempty"`
|
||||
}
|
||||
|
||||
type marketplaceOffersResponse struct {
|
||||
Offers []marketplaceOffer `json:"offers"`
|
||||
}
|
||||
|
||||
@ -19,6 +19,11 @@ Success (`200`):
|
||||
"decimals": 6,
|
||||
"chain_id": 8453
|
||||
},
|
||||
"execution_profile": {
|
||||
"connector_surface": "hybrid",
|
||||
"pacing_tier": "governed_human_pace",
|
||||
"human_pace_floor_ms": 1200
|
||||
},
|
||||
"policies": {
|
||||
"member_only": true,
|
||||
"workspace_bound": true,
|
||||
@ -101,6 +106,7 @@ Success (`200`):
|
||||
1. `amount`/`amount_atomic` represent the license component.
|
||||
2. `total_amount`/`total_amount_atomic` represent the actual payable quote total.
|
||||
3. First checkout can include membership activation as a separate line item.
|
||||
4. `execution_profile.pacing_tier` distinguishes external human-governed cadence from native local-speed execution.
|
||||
|
||||
Error (`403`):
|
||||
|
||||
|
||||
@ -137,6 +137,19 @@ components:
|
||||
type: integer
|
||||
chain_id:
|
||||
type: integer
|
||||
execution_profile:
|
||||
type: object
|
||||
required: [connector_surface, pacing_tier]
|
||||
properties:
|
||||
connector_surface:
|
||||
type: string
|
||||
enum: [edut_native, external_connector, hybrid]
|
||||
pacing_tier:
|
||||
type: string
|
||||
enum: [governed_human_pace, local_hardware_speed]
|
||||
human_pace_floor_ms:
|
||||
type: integer
|
||||
minimum: 0
|
||||
policies:
|
||||
type: object
|
||||
required: [member_only, workspace_bound, transferable, internal_use_only, multi_tenant]
|
||||
|
||||
@ -12,7 +12,12 @@
|
||||
"workspace_bound": false,
|
||||
"transferable": false,
|
||||
"internal_use_only": true,
|
||||
"multi_tenant": false
|
||||
"multi_tenant": false,
|
||||
"execution_profile": {
|
||||
"connector_surface": "hybrid",
|
||||
"pacing_tier": "governed_human_pace",
|
||||
"human_pace_floor_ms": 1200
|
||||
}
|
||||
},
|
||||
{
|
||||
"offer_id": "edut.workspace.core",
|
||||
@ -24,7 +29,12 @@
|
||||
"workspace_bound": true,
|
||||
"transferable": false,
|
||||
"internal_use_only": true,
|
||||
"multi_tenant": false
|
||||
"multi_tenant": false,
|
||||
"execution_profile": {
|
||||
"connector_surface": "hybrid",
|
||||
"pacing_tier": "governed_human_pace",
|
||||
"human_pace_floor_ms": 1200
|
||||
}
|
||||
},
|
||||
{
|
||||
"offer_id": "edut.workspace.ai",
|
||||
@ -36,7 +46,12 @@
|
||||
"workspace_bound": true,
|
||||
"transferable": false,
|
||||
"internal_use_only": true,
|
||||
"multi_tenant": false
|
||||
"multi_tenant": false,
|
||||
"execution_profile": {
|
||||
"connector_surface": "hybrid",
|
||||
"pacing_tier": "governed_human_pace",
|
||||
"human_pace_floor_ms": 1200
|
||||
}
|
||||
},
|
||||
{
|
||||
"offer_id": "edut.workspace.lane24",
|
||||
@ -48,7 +63,11 @@
|
||||
"workspace_bound": true,
|
||||
"transferable": false,
|
||||
"internal_use_only": true,
|
||||
"multi_tenant": false
|
||||
"multi_tenant": false,
|
||||
"execution_profile": {
|
||||
"connector_surface": "edut_native",
|
||||
"pacing_tier": "local_hardware_speed"
|
||||
}
|
||||
},
|
||||
{
|
||||
"offer_id": "edut.workspace.sovereign",
|
||||
@ -60,7 +79,11 @@
|
||||
"workspace_bound": true,
|
||||
"transferable": false,
|
||||
"internal_use_only": true,
|
||||
"multi_tenant": false
|
||||
"multi_tenant": false,
|
||||
"execution_profile": {
|
||||
"connector_surface": "edut_native",
|
||||
"pacing_tier": "local_hardware_speed"
|
||||
}
|
||||
}
|
||||
],
|
||||
"published_at": "2026-02-17T00:00:00Z"
|
||||
|
||||
@ -21,10 +21,16 @@
|
||||
"requires_admin_approval": false
|
||||
},
|
||||
"entitlement": {
|
||||
"type": "runtime_license",
|
||||
"scope": "org_root",
|
||||
"type": "module_license",
|
||||
"scope": "workspace",
|
||||
"runtime_policy_ref": "policy.workspace.core.v1"
|
||||
},
|
||||
"execution_profile": {
|
||||
"connector_surface": "hybrid",
|
||||
"pacing_tier": "governed_human_pace",
|
||||
"human_pace_floor_ms": 1200,
|
||||
"notes": "External egress paths are paced at governed human cadence."
|
||||
},
|
||||
"created_at": "2026-02-17T00:00:00Z",
|
||||
"updated_at": "2026-02-17T00:00:00Z",
|
||||
"metadata": {
|
||||
|
||||
@ -35,7 +35,26 @@
|
||||
"workspace_bound": { "type": "boolean" },
|
||||
"transferable": { "type": "boolean" },
|
||||
"internal_use_only": { "type": "boolean" },
|
||||
"multi_tenant": { "type": "boolean" }
|
||||
"multi_tenant": { "type": "boolean" },
|
||||
"execution_profile": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["connector_surface", "pacing_tier"],
|
||||
"properties": {
|
||||
"connector_surface": {
|
||||
"type": "string",
|
||||
"enum": ["edut_native", "external_connector", "hybrid"]
|
||||
},
|
||||
"pacing_tier": {
|
||||
"type": "string",
|
||||
"enum": ["governed_human_pace", "local_hardware_speed"]
|
||||
},
|
||||
"human_pace_floor_ms": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -143,6 +143,39 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"execution_profile": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"connector_surface",
|
||||
"pacing_tier"
|
||||
],
|
||||
"properties": {
|
||||
"connector_surface": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"edut_native",
|
||||
"external_connector",
|
||||
"hybrid"
|
||||
]
|
||||
},
|
||||
"pacing_tier": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"governed_human_pace",
|
||||
"local_hardware_speed"
|
||||
]
|
||||
},
|
||||
"human_pace_floor_ms": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"notes": {
|
||||
"type": "string",
|
||||
"maxLength": 300
|
||||
}
|
||||
}
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
|
||||
@ -11,7 +11,12 @@
|
||||
"workspace_bound": true,
|
||||
"transferable": false,
|
||||
"internal_use_only": true,
|
||||
"multi_tenant": false
|
||||
"multi_tenant": false,
|
||||
"execution_profile": {
|
||||
"connector_surface": "hybrid",
|
||||
"pacing_tier": "governed_human_pace",
|
||||
"human_pace_floor_ms": 1200
|
||||
}
|
||||
},
|
||||
{
|
||||
"offer_id": "edut.workspace.core",
|
||||
@ -23,7 +28,12 @@
|
||||
"workspace_bound": true,
|
||||
"transferable": false,
|
||||
"internal_use_only": true,
|
||||
"multi_tenant": false
|
||||
"multi_tenant": false,
|
||||
"execution_profile": {
|
||||
"connector_surface": "hybrid",
|
||||
"pacing_tier": "governed_human_pace",
|
||||
"human_pace_floor_ms": 1200
|
||||
}
|
||||
},
|
||||
{
|
||||
"offer_id": "edut.workspace.ai",
|
||||
@ -35,7 +45,12 @@
|
||||
"workspace_bound": true,
|
||||
"transferable": false,
|
||||
"internal_use_only": true,
|
||||
"multi_tenant": false
|
||||
"multi_tenant": false,
|
||||
"execution_profile": {
|
||||
"connector_surface": "hybrid",
|
||||
"pacing_tier": "governed_human_pace",
|
||||
"human_pace_floor_ms": 1200
|
||||
}
|
||||
},
|
||||
{
|
||||
"offer_id": "edut.workspace.lane24",
|
||||
@ -47,7 +62,11 @@
|
||||
"workspace_bound": true,
|
||||
"transferable": false,
|
||||
"internal_use_only": true,
|
||||
"multi_tenant": false
|
||||
"multi_tenant": false,
|
||||
"execution_profile": {
|
||||
"connector_surface": "edut_native",
|
||||
"pacing_tier": "local_hardware_speed"
|
||||
}
|
||||
},
|
||||
{
|
||||
"offer_id": "edut.workspace.sovereign",
|
||||
@ -59,7 +78,11 @@
|
||||
"workspace_bound": true,
|
||||
"transferable": false,
|
||||
"internal_use_only": true,
|
||||
"multi_tenant": false
|
||||
"multi_tenant": false,
|
||||
"execution_profile": {
|
||||
"connector_surface": "edut_native",
|
||||
"pacing_tier": "local_hardware_speed"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user